From 5ddc99bfd1e223ca365577192950bcffd7fcdfc2 Mon Sep 17 00:00:00 2001
From: HENRIQUE MARGOTTE <hm19@inf.ufpr.br>
Date: Tue, 3 Dec 2024 19:22:15 -0300
Subject: [PATCH] boa sorte

---
 ALTERADO/MEPA              |   49 +-
 ALTERADO/compilador        |  Bin 0 -> 54240 bytes
 ALTERADO/compilador.h      |    2 +-
 ALTERADO/compilador.l      |    6 +
 ALTERADO/compilador.o      |  Bin 1736 -> 2424 bytes
 ALTERADO/compilador.output | 2563 ++++++++++++++++++-----------------
 ALTERADO/compilador.tab.c  | 2569 +++++++++++++++++-------------------
 ALTERADO/compilador.tab.h  |  181 ++-
 ALTERADO/compilador.y      |   88 +-
 ALTERADO/forward2.pas      |   18 +
 ALTERADO/lex.yy.c          |  300 +++--
 ALTERADO/stack/stack.o     |  Bin 2056 -> 2896 bytes
 ALTERADO/ts/ts.c           |    3 +-
 ALTERADO/ts/ts.o           |  Bin 11248 -> 11240 bytes
 AvaliaTrabs/MEPA           |   16 +-
 AvaliaTrabs/compilador     |  Bin 54640 -> 54240 bytes
 AvaliaTrabs/forward2.pas   |   12 +-
 ORIGNAL/compilador         |  Bin 54640 -> 54344 bytes
 ORIGNAL/compilador.o       |  Bin 2736 -> 2424 bytes
 ORIGNAL/compilador.output  | 2150 +++++++++++++++---------------
 ORIGNAL/compilador.tab.c   | 1016 ++++++--------
 ORIGNAL/compilador.tab.h   |  100 +-
 22 files changed, 4426 insertions(+), 4647 deletions(-)
 create mode 100755 ALTERADO/compilador
 create mode 100644 ALTERADO/forward2.pas

diff --git a/ALTERADO/MEPA b/ALTERADO/MEPA
index fff6568..5d41183 100644
--- a/ALTERADO/MEPA
+++ b/ALTERADO/MEPA
@@ -2,53 +2,24 @@
      AMEM 1
      DSVS R00
 R01: ENPR 1 
-     AMEM 2
+     AMEM 1
      DSVS R02
 R02: NADA 
-     CRVL 1, -5
-     CRCT 2
-     CMME
-     DSVF R03
-     CRVL 1, -5
-     ARMZ 1, -6
-     CRCT 0
-     ARMI 1, -4
-     DSVS R04
-R03: NADA 
-     AMEM 1
-     CRVL 1, -5
+     CRVI 1, -5
+     ARMZ 1, 0
      CRCT 1
-     SUBT
-     CREN 1, 0
-     CHPR R01, 1
-     AMEM 1
-     CRVL 1, -5
-     CRCT 2
-     SUBT
-     CREN 1, 1
-     CHPR R01, 1
-     SOMA
+     ARMI 1, -5
+     CRVI 1, -5
      ARMZ 1, -6
-     CRVL 1, 0
-     CRVL 1, 1
-     SOMA
-     CRCT 1
-     SOMA
-     ARMI 1, -4
-R04: NADA 
-     CRVL 1, -5
-     IMPR
-     CRVI 1, -4
-     IMPR
-     DMEM 2
+     DMEM 1
      RTPR 1, 2
 R00: NADA 
      AMEM 1
-     CRCT 3
      CREN 0, 0
+     CRCT 2
+     CRCT 3
+     SOMA
      CHPR R01, 0
-     IMPR
-     CRVL 0, 0
-     IMPR
+     ARMZ 0, 0
      DMEM 1
      PARA
diff --git a/ALTERADO/compilador b/ALTERADO/compilador
new file mode 100755
index 0000000000000000000000000000000000000000..f0a4fa320f79e0c0bfcfb12b4dc4b945e5afe584
GIT binary patch
literal 54240
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

literal 0
HcmV?d00001

diff --git a/ALTERADO/compilador.h b/ALTERADO/compilador.h
index 5e8d4e8..ddd0d4f 100644
--- a/ALTERADO/compilador.h
+++ b/ALTERADO/compilador.h
@@ -16,7 +16,7 @@
 typedef enum simbolos {
   simb_program, simb_var, simb_begin, simb_end,
   simb_identificador, simb_numero,
-  simb_ponto, simb_virgula, simb_ponto_e_virgula, simb_dois_pontos, simb_read, simb_write,
+  simb_ponto, simb_virgula, simb_ponto_e_virgula, simb_dois_pontos, simb_read, simb_write, simb_forward,
   simb_atribuicao, simb_abre_parenteses, simb_fecha_parenteses, simb_label, simb_type, simb_array, simb_procedure, simb_function, simb_goto, simb_if, simb_then, simb_else, simb_while, simb_do, simb_or, simb_div, simb_and, simb_not, simb_igual, simb_diferente, simb_menor_igual, simb_maior_igual, simb_menor, simb_maior, simb_mais, simb_menos, simb_asterisco
 } simbolos;
 
diff --git a/ALTERADO/compilador.l b/ALTERADO/compilador.l
index 0629b8c..ff7b256 100644
--- a/ALTERADO/compilador.l
+++ b/ALTERADO/compilador.l
@@ -155,6 +155,12 @@ function { simbolo  = simb_function;
           return FUNCTION;
  }
 
+forward { simbolo  = simb_forward;
+          strncpy (token, yytext, TAM_TOKEN);
+          IMPRIME("forward ");
+          return FORWARD;
+ }
+
 goto { simbolo  = simb_goto;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME("goto ");
diff --git a/ALTERADO/compilador.o b/ALTERADO/compilador.o
index 1de430514a29f2c3cac0f71bd10f5c6e8454f918..9543fbd891966276d2f63ea3267eff5c5b203fca 100644
GIT binary patch
literal 2424
zcmb<-^>JfjWMqH=Mg}_u1P><4z+l0KU^{@B4h*~uJPe^8oliZQ-w1eg*8cG5EdAio
z%?gtBXgyG>;L!_VcOHYYj=uoQc0weYYkx458pE`7hko$r<%P(f^XNRj1H^==hZ@=m
z(f-;9uEqC*M|bECk6u%dT6}sYoIH%|)NWC*2B^8+zF3Xe|NsC0|6m7z6hm-1gRg6V
zBZC46s1|cEs1{o(s1_@5F}M~L<tyYRD&%D5Wh5%7rYPttfaDq6ot>=|G+a`XG86L@
z42|@R^bB+jO*ElQ1`&v{42)Gl42%^5jM6;p91|EB7-SeA7$m(KL^$#Zv@tpJvN0{=
zVdsFz*?`0u7#OTUG)x}E#)Cm|%fj&SKQ<-ISYw`nftdjuT_{@k85kG@8Cc+AFqSw}
z9L9&y@=$RBs16vd3Kds?igQ3|4F(1VAtd*J!+?Q-!I*)80j3wK6iiv-5O>5O?g2F)
zW-d4k85kHsaHtQ*As&ZAoFO?sw;(eoF(tpqO)r_DI5RgXKPR7|C^aWBIWeE1BtJVf
zk0GsqAw9Jy(K$aQGd-UnEx!OPR+O1nlE#phmQz}s!H}6-P?VXQ3QAoJc{vQlB`K*z
zMGUDGnI&LvGYCT{1||ju26hGphCiS*`~UxcP<Vr+K;q0u;+h~q1_rQtkoZ5SdPAr<
zD84w6)LTHsLFOQv?}kG>5J?<lJ_v(^5<vt5131NSA(@{66-PI}04ff04>ywfN~k!x
z`VJ&<kexhG{!}OpG6&h-IZ$zQbCy8GLF$q1-3b*3sRxx&uy8(rB+iHA&eKTZAoqaF
z8wLi38&GkO`N-~hgd`5iTQKus`2u7w2t$=IK+0f9Jc7hw>6k&UxH7jSF^NI1xTFX|
zXTVsX#HUx1T2aEFmy%eL$e@>0T+E<Xln>z~=jZ08=9Mt$<>i;8>bd)c>K2zICTBC~
zfwiS(#HSS{=BC2zr<4Zy3se>%RV!d4Vg7ms<{=1>S_F@QK^mHtVCrFV2S9<%z`*bT
zssR+nASSF_k$@^xV_*Q6E>PuAQ3eJzkYYFw!9W+*VPIeYnTf970ICpFej#*YmRX?u
z22u)&J7je*{RYT_P`4rrfyz6OespySAVCHO22l7StA`4M{R|R!!eS;!yaA>V#6iO7
z!l3dHB!=#OnEnVPy&xtitUxpj2jPgn1<<Mn<}XnEf%JkfNG~k@u-OfgzX6h9U|@i`
x1C)nBc@14ZsEk98JCObes9-XPgM^{R!bJobK=mS=3ujz_x*t~F!6eZ20|1K$N&)}?

literal 1736
zcmX^A>+L@t1_nk31_;5zz`(%4#K6Fy01{zfkYr$B=m5(?_~_&csGJ5!4+8_k0w|xI
zfq?;pLFR$<#K)JUR+NBP5F8&L;u;YGVIz||Q2ikDKt`TmW?+y9DPUn}08ua;AD^6`
zo1349;JY}6IKp@ccW@wt7?_dRP;1~K@$t#UB}JKe=}-}L_rcs{0F@6xHjIIR0pwPw
z6qo|LuOKnGB)&ASJTosPKHkR#ECD4Fpbl_=@;jIr!0tQ10yhiANFxRY1_@{!F);8m
zFfj6ib%GRu#4oTgFo=Spjg5g}1p@;EHv<Dh09XYB11AFngPhC*WkaQirv5WCUi@3l
zyz=j1hKUQB<$o+>mjA)Qz%YS>(cvctBg4lR?DM5O7#YkN85l$u7#JonFfdGHWMG(}
z$iOg>fq`KPNG$^+!%vX>istwqFg-7zdO-3o_!)jOFgpBP!5shNB{RcB4TyTU887%9
z!15sT1Q-}Zz<RhLdR8^Z|A6V!Vr2NK!3wqup_dz>7vzS&)y^ybGc!&+z#M<=|6zuU
zf2)~R{%wZ%4P-9JUm&-@*c^-wJ6|z#tOB_m<Th+}FfcR-f!yZn8sNxK&Y%DSs>NIk
zs>N0cs>KRi46a2*`3iZ73OSj18Hoz2DGIs@AbI3SxC7z9vJHgCz`y_%hs7y|yapo!
z11|%Et^y+ig8&1At_&js11kfAj|7Ca{lmb(AjrUw^8-T1eqdl=;9+3Mc>|$iPcSer
z@G&sx9)Y9}pFIo^b9OK=Ft9K%_-ujDwsWBJQy{c$4^&?Vgzp2&q#*li7{KY-rvgIT
zW<cc=AhazgGjK96_<+(sCj*164Ffn;>smnal8*_5wgu%kMg|5S9Z1@@1*LV6K2Rb9
z=>rv0j0_BHpnw9=3qkII<}HvIs0`v`W?+Ej-x(lzW(EdBsG3eF-x$iTg7R&k{A?)S
z70RCk;xi%2mu3(j$$U@|$H&6J0L$N?@{=D)y)nq2P_sbplZEnO@yiGCCrAp6K}taw
z%wb?)h(eS1K;tK&@x##g_7FZ3ECFeu@%<ruP#S_*8J}8_S;CMLuUA}B#1J1JUtE%s
zT2xfP5T91S5TBV_P?VXQ3QE@u@x__BN%=YX4DsoyMTyS&DVgc{4Dm&&If==M`3&)C
z`30$Y4DluT*&r$}hao;KEvK|N17uK9W?o4e)DArphMbbz0%I807|b<-agD%SLm1Z(
J%r#(O007xl=tlqm

diff --git a/ALTERADO/compilador.output b/ALTERADO/compilador.output
index a8dc1fb..12513b9 100644
--- a/ALTERADO/compilador.output
+++ b/ALTERADO/compilador.output
@@ -1,48 +1,48 @@
-Terminals which are not used
+Terminais sem uso na gramática
 
-   TYPE
-   ARRAY
-   GOTO
-   OR
-   AND
-   NOT
+    TYPE
+    ARRAY
+    GOTO
+    OR
+    AND
+    NOT
 
 
-State 79 conflicts: 1 reduce/reduce
+Estado 88 conflitos: 1 de redução/redução
 
 
-Grammar
+Gramática
 
     0 $accept: programa $end
 
-    1 @1: /* empty */
+    1 $@1: ε
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    3 @2: /* empty */
+    3 $@2: ε
 
-    4 @3: /* empty */
+    4 $@3: ε
 
-    5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas @3 comando_composto
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto
 
     6 parte_declara_rotulos: LABEL VIRGULA
-    7                      | /* empty */
+    7                      | ε
 
     8 parte_declara_vars: var
 
-    9 @4: /* empty */
+    9 $@4: ε
 
-   10 var: @4 VAR declara_vars
-   11    | /* empty */
+   10 var: $@4 VAR declara_vars
+   11    | ε
 
    12 declara_vars: declara_vars declara_var
    13             | declara_var
 
-   14 @5: /* empty */
+   14 $@5: ε
 
-   15 @6: /* empty */
+   15 $@6: ε
 
-   16 declara_var: @5 lista_id_var DOIS_PONTOS tipo @6 PONTO_E_VIRGULA
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
 
    17 tipo: IDENT
 
@@ -52,2039 +52,2192 @@ Grammar
    20 lista_idents: lista_idents VIRGULA IDENT
    21             | IDENT
 
-   22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento
-   23                         | declaracao_funcao
-   24                         | /* empty */
+   22 parte_declara_subrotinas: declaracao_procedimento inicializa_procedimento parte_declara_subrotinas
+   23                         | declaracao_funcao parte_declara_subrotinas
+   24                         | ε
 
-   25 @7: /* empty */
+   25 $@7: ε
 
-   26 @8: /* empty */
+   26 $@8: ε
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada $@8 PONTO_E_VIRGULA
 
-   28 @9: /* empty */
+   28 inicializa_procedimento: FORWARD PONTO_E_VIRGULA
 
-   29 @10: /* empty */
+   29 $@9: ε
 
-   30 @11: /* empty */
+   30 $@10: ε
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+   31 inicializa_procedimento: $@9 bloco $@10 PONTO_E_VIRGULA
 
-   32 @12: /* empty */
+   32 $@11: ε
 
-   33 @13: /* empty */
+   33 $@12: ε
 
-   34 parametros_ou_nada: ABRE_PARENTESES @12 paramentros_formais @13 FECHA_PARENTESES
-   35                   | /* empty */
+   34 $@13: ε
 
-   36 paramentros_formais: secao_pfs
-   37                    | paramentros_formais PONTO_E_VIRGULA secao_pfs
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-   38 @14: /* empty */
+   36 $@14: ε
 
-   39 secao_pfs: VAR @14 lista_id_pf DOIS_PONTOS tipo
+   37 $@15: ε
 
-   40 @15: /* empty */
+   38 parametros_ou_nada: ABRE_PARENTESES $@14 paramentros_formais $@15 FECHA_PARENTESES
+   39                   | ε
 
-   41 secao_pfs: @15 lista_id_pf DOIS_PONTOS tipo
+   40 paramentros_formais: secao_pfs
+   41                    | paramentros_formais PONTO_E_VIRGULA secao_pfs
 
-   42 lista_id_pf: parametro VIRGULA lista_id_pf
-   43            | parametro
+   42 $@16: ε
 
-   44 parametro: IDENT
+   43 secao_pfs: VAR $@16 lista_id_pf DOIS_PONTOS tipo
 
-   45 comando_composto: T_BEGIN comandos T_END
+   44 $@17: ε
 
-   46 comandos: comando PONTO_E_VIRGULA comandos
-   47         | comando PONTO_E_VIRGULA
-   48         | /* empty */
+   45 secao_pfs: $@17 lista_id_pf DOIS_PONTOS tipo
 
-   49 comando: numero DOIS_PONTOS comando_sem_rotulo
-   50        | comando_sem_rotulo
+   46 lista_id_pf: parametro VIRGULA lista_id_pf
+   47            | parametro
 
-   51 comando_sem_rotulo: atribuicao_ou_procedimento
-   52                   | comando_composto
-   53                   | comando_condicional
-   54                   | comando_repetitivo
-   55                   | leitura
-   56                   | escrita
+   48 parametro: IDENT
 
-   57 @16: /* empty */
+   49 comando_composto: T_BEGIN comandos T_END
 
-   58 atribuicao_ou_procedimento: IDENT @16 atribuicao_ou_procedimento_token
+   50 comandos: comando PONTO_E_VIRGULA comandos
+   51         | comando PONTO_E_VIRGULA
+   52         | ε
 
-   59 atribuicao_ou_procedimento_token: atribuicao
-   60                                 | chamada_procedimento
+   53 comando: numero DOIS_PONTOS comando_sem_rotulo
+   54        | comando_sem_rotulo
 
-   61 @17: /* empty */
+   55 comando_sem_rotulo: atribuicao_ou_procedimento
+   56                   | comando_composto
+   57                   | comando_condicional
+   58                   | comando_repetitivo
+   59                   | leitura
+   60                   | escrita
 
-   62 atribuicao: @17 ATRIBUICAO expressao_simples
+   61 $@18: ε
 
-   63 @18: /* empty */
+   62 atribuicao_ou_procedimento: IDENT $@18 atribuicao_ou_procedimento_token
 
-   64 chamada_procedimento: @18 lista_parametros
+   63 atribuicao_ou_procedimento_token: atribuicao
+   64                                 | chamada_procedimento
 
-   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES
-   66                 | /* empty */
+   65 $@19: ε
 
-   67 @19: /* empty */
+   66 atribuicao: $@19 ATRIBUICAO expressao_simples
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA @19 expressao_simples
+   67 $@20: ε
 
-   69 @20: /* empty */
+   68 chamada_procedimento: $@20 lista_parametros
 
-   70 lista_parametros_parenteses: @20 expressao_simples
+   69 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES
+   70                 | ε
 
-   71 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES
+   71 $@21: ε
 
-   72 lista_leituras: lista_leituras VIRGULA simb_leitura
-   73               | simb_leitura
+   72 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@21 expressao_simples
 
-   74 simb_leitura: IDENT
+   73 $@22: ε
 
-   75 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES
+   74 lista_parametros_parenteses: $@22 expressao_simples
 
-   76 lista_escritas: lista_escritas VIRGULA expressao_simples
-   77               | expressao_simples
+   75 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES
 
-   78 expressao: expressao IGUAL expressao_simples
-   79          | expressao DIFERENTE expressao_simples
-   80          | expressao MENOR expressao_simples
-   81          | expressao MENOR_IGUAL expressao_simples
-   82          | expressao MAIOR expressao_simples
-   83          | expressao MAIOR_IGUAL expressao_simples
-   84          | expressao_simples
+   76 lista_leituras: lista_leituras VIRGULA simb_leitura
+   77               | simb_leitura
 
-   85 expressao_simples: expressao_simples MAIS termo
-   86                  | expressao_simples MENOS termo
-   87                  | termo
+   78 simb_leitura: IDENT
 
-   88 termo: termo ASTERISCO fator
-   89      | termo DIV fator
-   90      | fator
+   79 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES
 
-   91 @21: /* empty */
+   80 lista_escritas: lista_escritas VIRGULA expressao_simples
+   81               | expressao_simples
 
-   92 fator: IDENT @21 chamada_procedimento
-   93      | NUMERO
-   94      | ABRE_PARENTESES expressao FECHA_PARENTESES
+   82 expressao: expressao_simples IGUAL expressao_simples
+   83          | expressao_simples DIFERENTE expressao_simples
+   84          | expressao_simples MENOR expressao_simples
+   85          | expressao_simples MENOR_IGUAL expressao_simples
+   86          | expressao_simples MAIOR expressao_simples
+   87          | expressao_simples MAIOR_IGUAL expressao_simples
 
-   95 numero: NUMERO
-
-   96 @22: /* empty */
-
-   97 @23: /* empty */
-
-   98 comando_repetitivo: @22 WHILE expressao DO @23 comando_sem_rotulo
-
-   99 comando_condicional: if_then cond_else
-
-  100 cond_else: ELSE comando_sem_rotulo
-  101          | /* empty */
-
-  102 @24: /* empty */
-
-  103 if_then: IF expressao @24 THEN comando_sem_rotulo
-
-
-Terminals, with rules where they appear
-
-$end (0) 0
-error (256)
-PROGRAM (258) 2
-ABRE_PARENTESES (259) 2 34 65 71 75 94
-FECHA_PARENTESES (260) 2 34 65 71 75 94
-VIRGULA (261) 6 18 20 42 68 72 76
-PONTO_E_VIRGULA (262) 2 16 27 31 37 46 47
-DOIS_PONTOS (263) 16 31 39 41 49
-PONTO (264) 2
-T_BEGIN (265) 45
-T_END (266) 45
-VAR (267) 10 39
-IDENT (268) 2 17 18 19 20 21 27 31 44 58 74 92
-ATRIBUICAO (269) 62
-LABEL (270) 6
-TYPE (271)
-ARRAY (272)
-PROCEDURE (273) 27
-FUNCTION (274) 31
-GOTO (275)
-IF (276) 103
-THEN (277) 103
-ELSE (278) 100
-WHILE (279) 98
-DO (280) 98
-OR (281)
-DIV (282) 89
-AND (283)
-NOT (284)
-IGUAL (285) 78
-DIFERENTE (286) 79
-MENOR_IGUAL (287) 81
-MAIOR_IGUAL (288) 83
-MENOR (289) 80
-MAIOR (290) 82
-MAIS (291) 85
-MENOS (292) 86
-ASTERISCO (293) 88
-NUMERO (294) 93 95
-READ (295) 71
-WRITE (296) 75
-LOWER_THAN_ELSE (297)
-
-
-Nonterminals, with rules where they appear
-
-$accept (43)
-    on left: 0
-programa (44)
-    on left: 2, on right: 0
-@1 (45)
-    on left: 1, on right: 2
-bloco (46)
-    on left: 5, on right: 2 27 31
-@2 (47)
-    on left: 3, on right: 5
-@3 (48)
-    on left: 4, on right: 5
-parte_declara_rotulos (49)
-    on left: 6 7, on right: 5
-parte_declara_vars (50)
-    on left: 8, on right: 5
-var (51)
-    on left: 10 11, on right: 8
-@4 (52)
-    on left: 9, on right: 10
-declara_vars (53)
-    on left: 12 13, on right: 10 12
-declara_var (54)
-    on left: 16, on right: 12 13
-@5 (55)
-    on left: 14, on right: 16
-@6 (56)
-    on left: 15, on right: 16
-tipo (57)
-    on left: 17, on right: 16 31 39 41
-lista_id_var (58)
-    on left: 18 19, on right: 16 18
-lista_idents (59)
-    on left: 20 21, on right: 2 20
-parte_declara_subrotinas (60)
-    on left: 22 23 24, on right: 5 22
-declaracao_procedimento (61)
-    on left: 27, on right: 22
-@7 (62)
-    on left: 25, on right: 27
-@8 (63)
-    on left: 26, on right: 27
-declaracao_funcao (64)
-    on left: 31, on right: 23
-@9 (65)
-    on left: 28, on right: 31
-@10 (66)
-    on left: 29, on right: 31
-@11 (67)
-    on left: 30, on right: 31
-parametros_ou_nada (68)
-    on left: 34 35, on right: 27 31
-@12 (69)
-    on left: 32, on right: 34
-@13 (70)
-    on left: 33, on right: 34
-paramentros_formais (71)
-    on left: 36 37, on right: 34 37
-secao_pfs (72)
-    on left: 39 41, on right: 36 37
-@14 (73)
-    on left: 38, on right: 39
-@15 (74)
-    on left: 40, on right: 41
-lista_id_pf (75)
-    on left: 42 43, on right: 39 41 42
-parametro (76)
-    on left: 44, on right: 42 43
-comando_composto (77)
-    on left: 45, on right: 5 52
-comandos (78)
-    on left: 46 47 48, on right: 45 46
-comando (79)
-    on left: 49 50, on right: 46 47
-comando_sem_rotulo (80)
-    on left: 51 52 53 54 55 56, on right: 49 50 98 100 103
-atribuicao_ou_procedimento (81)
-    on left: 58, on right: 51
-@16 (82)
-    on left: 57, on right: 58
-atribuicao_ou_procedimento_token (83)
-    on left: 59 60, on right: 58
-atribuicao (84)
-    on left: 62, on right: 59
-@17 (85)
-    on left: 61, on right: 62
-chamada_procedimento (86)
-    on left: 64, on right: 60 92
-@18 (87)
-    on left: 63, on right: 64
-lista_parametros (88)
-    on left: 65 66, on right: 64
-lista_parametros_parenteses (89)
-    on left: 68 70, on right: 65 68
-@19 (90)
-    on left: 67, on right: 68
-@20 (91)
-    on left: 69, on right: 70
-leitura (92)
-    on left: 71, on right: 55
-lista_leituras (93)
-    on left: 72 73, on right: 71 72
-simb_leitura (94)
-    on left: 74, on right: 72 73
-escrita (95)
-    on left: 75, on right: 56
-lista_escritas (96)
-    on left: 76 77, on right: 75 76
-expressao (97)
-    on left: 78 79 80 81 82 83 84, on right: 78 79 80 81 82 83 94 98
-    103
-expressao_simples (98)
-    on left: 85 86 87, on right: 62 68 70 76 77 78 79 80 81 82 83 84
-    85 86
-termo (99)
-    on left: 88 89 90, on right: 85 86 87 88 89
-fator (100)
-    on left: 92 93 94, on right: 88 89 90
-@21 (101)
-    on left: 91, on right: 92
-numero (102)
-    on left: 95, on right: 49
-comando_repetitivo (103)
-    on left: 98, on right: 54
-@22 (104)
-    on left: 96, on right: 98
-@23 (105)
-    on left: 97, on right: 98
-comando_condicional (106)
-    on left: 99, on right: 53
-cond_else (107)
-    on left: 100 101, on right: 99
-if_then (108)
-    on left: 103, on right: 99
-@24 (109)
-    on left: 102, on right: 103
+   88 expressao_simples: expressao_simples MAIS termo
+   89                  | expressao_simples MENOS termo
+   90                  | termo
 
+   91 termo: termo ASTERISCO fator
+   92      | termo DIV fator
+   93      | fator
 
-state 0
+   94 $@23: ε
 
-    0 $accept: . programa $end
+   95 fator: IDENT $@23 chamada_procedimento
+   96      | NUMERO
+   97      | ABRE_PARENTESES expressao FECHA_PARENTESES
+   98      | ABRE_PARENTESES expressao_simples FECHA_PARENTESES
 
-    $default  reduce using rule 1 (@1)
+   99 numero: NUMERO
+
+  100 $@24: ε
+
+  101 $@25: ε
+
+  102 comando_repetitivo: $@24 WHILE expressao DO $@25 comando_sem_rotulo
+
+  103 comando_condicional: if_then cond_else
+
+  104 cond_else: ELSE comando_sem_rotulo
+  105          | ε
+
+  106 $@26: ε
+
+  107 if_then: IF expressao $@26 THEN comando_sem_rotulo
+
+
+Terminais, com as regras onde eles aparecem
+
+    $end (0) 0
+    error (256)
+    PROGRAM (258) 2
+    ABRE_PARENTESES (259) 2 38 69 75 79 97 98
+    FECHA_PARENTESES (260) 2 38 69 75 79 97 98
+    VIRGULA (261) 6 18 20 46 72 76 80
+    PONTO_E_VIRGULA (262) 2 16 27 28 31 35 41 50 51
+    DOIS_PONTOS (263) 16 35 43 45 53
+    PONTO (264) 2
+    T_BEGIN (265) 49
+    T_END (266) 49
+    VAR (267) 10 43
+    IDENT (268) 2 17 18 19 20 21 27 35 48 62 78 95
+    ATRIBUICAO (269) 66
+    LABEL (270) 6
+    TYPE (271)
+    ARRAY (272)
+    PROCEDURE (273) 27
+    FUNCTION (274) 35
+    GOTO (275)
+    IF (276) 107
+    THEN (277) 107
+    ELSE (278) 104
+    WHILE (279) 102
+    DO (280) 102
+    OR (281)
+    DIV (282) 92
+    AND (283)
+    NOT (284)
+    IGUAL (285) 82
+    DIFERENTE (286) 83
+    MENOR_IGUAL (287) 85
+    MAIOR_IGUAL (288) 87
+    MENOR (289) 84
+    MAIOR (290) 86
+    MAIS (291) 88
+    MENOS (292) 89
+    ASTERISCO (293) 91
+    NUMERO (294) 96 99
+    READ (295) 75
+    WRITE (296) 79
+    FORWARD (297) 28
+    LOWER_THAN_ELSE (298)
+
+
+Não terminais com as regras onde eles aparecem
+
+    $accept (44)
+        à esquerda: 0
+    programa (45)
+        à esquerda: 2
+        à direita: 0
+    $@1 (46)
+        à esquerda: 1
+        à direita: 2
+    bloco (47)
+        à esquerda: 5
+        à direita: 2 31 35
+    $@2 (48)
+        à esquerda: 3
+        à direita: 5
+    $@3 (49)
+        à esquerda: 4
+        à direita: 5
+    parte_declara_rotulos (50)
+        à esquerda: 6 7
+        à direita: 5
+    parte_declara_vars (51)
+        à esquerda: 8
+        à direita: 5
+    var (52)
+        à esquerda: 10 11
+        à direita: 8
+    $@4 (53)
+        à esquerda: 9
+        à direita: 10
+    declara_vars (54)
+        à esquerda: 12 13
+        à direita: 10 12
+    declara_var (55)
+        à esquerda: 16
+        à direita: 12 13
+    $@5 (56)
+        à esquerda: 14
+        à direita: 16
+    $@6 (57)
+        à esquerda: 15
+        à direita: 16
+    tipo (58)
+        à esquerda: 17
+        à direita: 16 35 43 45
+    lista_id_var (59)
+        à esquerda: 18 19
+        à direita: 16 18
+    lista_idents (60)
+        à esquerda: 20 21
+        à direita: 2 20
+    parte_declara_subrotinas (61)
+        à esquerda: 22 23 24
+        à direita: 5 22 23
+    declaracao_procedimento (62)
+        à esquerda: 27
+        à direita: 22
+    $@7 (63)
+        à esquerda: 25
+        à direita: 27
+    $@8 (64)
+        à esquerda: 26
+        à direita: 27
+    inicializa_procedimento (65)
+        à esquerda: 28 31
+        à direita: 22
+    $@9 (66)
+        à esquerda: 29
+        à direita: 31
+    $@10 (67)
+        à esquerda: 30
+        à direita: 31
+    declaracao_funcao (68)
+        à esquerda: 35
+        à direita: 23
+    $@11 (69)
+        à esquerda: 32
+        à direita: 35
+    $@12 (70)
+        à esquerda: 33
+        à direita: 35
+    $@13 (71)
+        à esquerda: 34
+        à direita: 35
+    parametros_ou_nada (72)
+        à esquerda: 38 39
+        à direita: 27 35
+    $@14 (73)
+        à esquerda: 36
+        à direita: 38
+    $@15 (74)
+        à esquerda: 37
+        à direita: 38
+    paramentros_formais (75)
+        à esquerda: 40 41
+        à direita: 38 41
+    secao_pfs (76)
+        à esquerda: 43 45
+        à direita: 40 41
+    $@16 (77)
+        à esquerda: 42
+        à direita: 43
+    $@17 (78)
+        à esquerda: 44
+        à direita: 45
+    lista_id_pf (79)
+        à esquerda: 46 47
+        à direita: 43 45 46
+    parametro (80)
+        à esquerda: 48
+        à direita: 46 47
+    comando_composto (81)
+        à esquerda: 49
+        à direita: 5 56
+    comandos (82)
+        à esquerda: 50 51 52
+        à direita: 49 50
+    comando (83)
+        à esquerda: 53 54
+        à direita: 50 51
+    comando_sem_rotulo (84)
+        à esquerda: 55 56 57 58 59 60
+        à direita: 53 54 102 104 107
+    atribuicao_ou_procedimento (85)
+        à esquerda: 62
+        à direita: 55
+    $@18 (86)
+        à esquerda: 61
+        à direita: 62
+    atribuicao_ou_procedimento_token (87)
+        à esquerda: 63 64
+        à direita: 62
+    atribuicao (88)
+        à esquerda: 66
+        à direita: 63
+    $@19 (89)
+        à esquerda: 65
+        à direita: 66
+    chamada_procedimento (90)
+        à esquerda: 68
+        à direita: 64 95
+    $@20 (91)
+        à esquerda: 67
+        à direita: 68
+    lista_parametros (92)
+        à esquerda: 69 70
+        à direita: 68
+    lista_parametros_parenteses (93)
+        à esquerda: 72 74
+        à direita: 69 72
+    $@21 (94)
+        à esquerda: 71
+        à direita: 72
+    $@22 (95)
+        à esquerda: 73
+        à direita: 74
+    leitura (96)
+        à esquerda: 75
+        à direita: 59
+    lista_leituras (97)
+        à esquerda: 76 77
+        à direita: 75 76
+    simb_leitura (98)
+        à esquerda: 78
+        à direita: 76 77
+    escrita (99)
+        à esquerda: 79
+        à direita: 60
+    lista_escritas (100)
+        à esquerda: 80 81
+        à direita: 79 80
+    expressao (101)
+        à esquerda: 82 83 84 85 86 87
+        à direita: 97 102 107
+    expressao_simples (102)
+        à esquerda: 88 89 90
+        à direita: 66 72 74 80 81 82 83 84 85 86 87 88 89 98
+    termo (103)
+        à esquerda: 91 92 93
+        à direita: 88 89 90 91 92
+    fator (104)
+        à esquerda: 95 96 97 98
+        à direita: 91 92 93
+    $@23 (105)
+        à esquerda: 94
+        à direita: 95
+    numero (106)
+        à esquerda: 99
+        à direita: 53
+    comando_repetitivo (107)
+        à esquerda: 102
+        à direita: 58
+    $@24 (108)
+        à esquerda: 100
+        à direita: 102
+    $@25 (109)
+        à esquerda: 101
+        à direita: 102
+    comando_condicional (110)
+        à esquerda: 103
+        à direita: 57
+    cond_else (111)
+        à esquerda: 104 105
+        à direita: 103
+    if_then (112)
+        à esquerda: 107
+        à direita: 103
+    $@26 (113)
+        à esquerda: 106
+        à direita: 107
 
-    programa  go to state 1
-    @1        go to state 2
 
+Estado 0
 
-state 1
+    0 $accept: • programa $end
 
-    0 $accept: programa . $end
+    $padrão  reduzir usando a regra 1 ($@1)
 
-    $end  shift, and go to state 3
+    programa  ir ao estado 1
+    $@1       ir ao estado 2
 
 
-state 2
+Estado 1
 
-    2 programa: @1 . PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    0 $accept: programa • $end
 
-    PROGRAM  shift, and go to state 4
+    $end  deslocar, e ir ao estado 3
 
 
-state 3
+Estado 2
 
-    0 $accept: programa $end .
+    2 programa: $@1 • PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    $default  accept
+    PROGRAM  deslocar, e ir ao estado 4
 
 
-state 4
+Estado 3
 
-    2 programa: @1 PROGRAM . IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    0 $accept: programa $end •
 
-    IDENT  shift, and go to state 5
+    $padrão  aceitar
 
 
-state 5
+Estado 4
 
-    2 programa: @1 PROGRAM IDENT . ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM • IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    ABRE_PARENTESES  shift, and go to state 6
+    IDENT  deslocar, e ir ao estado 5
 
 
-state 6
+Estado 5
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES . lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM IDENT • ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    IDENT  shift, and go to state 7
+    ABRE_PARENTESES  deslocar, e ir ao estado 6
 
-    lista_idents  go to state 8
 
+Estado 6
 
-state 7
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES • lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-   21 lista_idents: IDENT .
+    IDENT  deslocar, e ir ao estado 7
 
-    $default  reduce using rule 21 (lista_idents)
+    lista_idents  ir ao estado 8
 
 
-state 8
+Estado 7
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents . FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
-   20 lista_idents: lista_idents . VIRGULA IDENT
+   21 lista_idents: IDENT •
 
-    FECHA_PARENTESES  shift, and go to state 9
-    VIRGULA           shift, and go to state 10
+    $padrão  reduzir usando a regra 21 (lista_idents)
 
 
-state 9
+Estado 8
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES . PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents • FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+   20 lista_idents: lista_idents • VIRGULA IDENT
 
-    PONTO_E_VIRGULA  shift, and go to state 11
+    FECHA_PARENTESES  deslocar, e ir ao estado 9
+    VIRGULA           deslocar, e ir ao estado 10
 
 
-state 10
+Estado 9
 
-   20 lista_idents: lista_idents VIRGULA . IDENT
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES • PONTO_E_VIRGULA bloco PONTO
 
-    IDENT  shift, and go to state 12
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 11
 
 
-state 11
+Estado 10
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA . bloco PONTO
+   20 lista_idents: lista_idents VIRGULA • IDENT
 
-    LABEL  shift, and go to state 13
+    IDENT  deslocar, e ir ao estado 12
 
-    $default  reduce using rule 7 (parte_declara_rotulos)
 
-    bloco                  go to state 14
-    parte_declara_rotulos  go to state 15
+Estado 11
 
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA • bloco PONTO
 
-state 12
+    LABEL  deslocar, e ir ao estado 13
 
-   20 lista_idents: lista_idents VIRGULA IDENT .
+    $padrão  reduzir usando a regra 7 (parte_declara_rotulos)
 
-    $default  reduce using rule 20 (lista_idents)
+    bloco                  ir ao estado 14
+    parte_declara_rotulos  ir ao estado 15
 
 
-state 13
+Estado 12
 
-    6 parte_declara_rotulos: LABEL . VIRGULA
+   20 lista_idents: lista_idents VIRGULA IDENT •
 
-    VIRGULA  shift, and go to state 16
+    $padrão  reduzir usando a regra 20 (lista_idents)
 
 
-state 14
+Estado 13
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco . PONTO
+    6 parte_declara_rotulos: LABEL • VIRGULA
 
-    PONTO  shift, and go to state 17
+    VIRGULA  deslocar, e ir ao estado 16
 
 
-state 15
+Estado 14
 
-    5 bloco: parte_declara_rotulos . parte_declara_vars @2 parte_declara_subrotinas @3 comando_composto
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco • PONTO
 
-    VAR       reduce using rule 9 (@4)
-    $default  reduce using rule 11 (var)
+    PONTO  deslocar, e ir ao estado 17
 
-    parte_declara_vars  go to state 18
-    var                 go to state 19
-    @4                  go to state 20
 
+Estado 15
 
-state 16
+    5 bloco: parte_declara_rotulos • parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto
 
-    6 parte_declara_rotulos: LABEL VIRGULA .
+    VAR      reduzir usando a regra 9 ($@4)
+    $padrão  reduzir usando a regra 11 (var)
 
-    $default  reduce using rule 6 (parte_declara_rotulos)
+    parte_declara_vars  ir ao estado 18
+    var                 ir ao estado 19
+    $@4                 ir ao estado 20
 
 
-state 17
+Estado 16
 
-    2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO .
+    6 parte_declara_rotulos: LABEL VIRGULA •
 
-    $default  reduce using rule 2 (programa)
+    $padrão  reduzir usando a regra 6 (parte_declara_rotulos)
 
 
-state 18
+Estado 17
 
-    5 bloco: parte_declara_rotulos parte_declara_vars . @2 parte_declara_subrotinas @3 comando_composto
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO •
 
-    $default  reduce using rule 3 (@2)
+    $padrão  reduzir usando a regra 2 (programa)
 
-    @2  go to state 21
 
+Estado 18
 
-state 19
+    5 bloco: parte_declara_rotulos parte_declara_vars • $@2 parte_declara_subrotinas $@3 comando_composto
 
-    8 parte_declara_vars: var .
+    $padrão  reduzir usando a regra 3 ($@2)
 
-    $default  reduce using rule 8 (parte_declara_vars)
+    $@2  ir ao estado 21
 
 
-state 20
+Estado 19
 
-   10 var: @4 . VAR declara_vars
+    8 parte_declara_vars: var •
 
-    VAR  shift, and go to state 22
+    $padrão  reduzir usando a regra 8 (parte_declara_vars)
 
 
-state 21
+Estado 20
 
-    5 bloco: parte_declara_rotulos parte_declara_vars @2 . parte_declara_subrotinas @3 comando_composto
+   10 var: $@4 • VAR declara_vars
 
-    FUNCTION  shift, and go to state 23
+    VAR  deslocar, e ir ao estado 22
 
-    $default  reduce using rule 24 (parte_declara_subrotinas)
 
-    parte_declara_subrotinas  go to state 24
-    declaracao_funcao         go to state 25
+Estado 21
 
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 • parte_declara_subrotinas $@3 comando_composto
 
-state 22
+    PROCEDURE  deslocar, e ir ao estado 23
+    FUNCTION   deslocar, e ir ao estado 24
 
-   10 var: @4 VAR . declara_vars
+    $padrão  reduzir usando a regra 24 (parte_declara_subrotinas)
 
-    $default  reduce using rule 14 (@5)
+    parte_declara_subrotinas  ir ao estado 25
+    declaracao_procedimento   ir ao estado 26
+    declaracao_funcao         ir ao estado 27
 
-    declara_vars  go to state 26
-    declara_var   go to state 27
-    @5            go to state 28
 
+Estado 22
 
-state 23
+   10 var: $@4 VAR • declara_vars
 
-   31 declaracao_funcao: FUNCTION . IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+    $padrão  reduzir usando a regra 14 ($@5)
 
-    IDENT  shift, and go to state 29
+    declara_vars  ir ao estado 28
+    declara_var   ir ao estado 29
+    $@5           ir ao estado 30
 
 
-state 24
+Estado 23
 
-    5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas . @3 comando_composto
-   22 parte_declara_subrotinas: parte_declara_subrotinas . declaracao_procedimento
+   27 declaracao_procedimento: PROCEDURE • IDENT $@7 parametros_ou_nada $@8 PONTO_E_VIRGULA
 
-    PROCEDURE  shift, and go to state 30
+    IDENT  deslocar, e ir ao estado 31
 
-    $default  reduce using rule 4 (@3)
 
-    @3                       go to state 31
-    declaracao_procedimento  go to state 32
+Estado 24
 
+   35 declaracao_funcao: FUNCTION • IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-state 25
+    IDENT  deslocar, e ir ao estado 32
 
-   23 parte_declara_subrotinas: declaracao_funcao .
 
-    $default  reduce using rule 23 (parte_declara_subrotinas)
+Estado 25
 
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas • $@3 comando_composto
 
-state 26
+    $padrão  reduzir usando a regra 4 ($@3)
 
-   10 var: @4 VAR declara_vars .
-   12 declara_vars: declara_vars . declara_var
+    $@3  ir ao estado 33
 
-    IDENT     reduce using rule 14 (@5)
-    $default  reduce using rule 10 (var)
 
-    declara_var  go to state 33
-    @5           go to state 28
+Estado 26
 
+   22 parte_declara_subrotinas: declaracao_procedimento • inicializa_procedimento parte_declara_subrotinas
 
-state 27
+    FORWARD  deslocar, e ir ao estado 34
 
-   13 declara_vars: declara_var .
+    $padrão  reduzir usando a regra 29 ($@9)
 
-    $default  reduce using rule 13 (declara_vars)
+    inicializa_procedimento  ir ao estado 35
+    $@9                      ir ao estado 36
 
 
-state 28
+Estado 27
 
-   16 declara_var: @5 . lista_id_var DOIS_PONTOS tipo @6 PONTO_E_VIRGULA
+   23 parte_declara_subrotinas: declaracao_funcao • parte_declara_subrotinas
 
-    IDENT  shift, and go to state 34
+    PROCEDURE  deslocar, e ir ao estado 23
+    FUNCTION   deslocar, e ir ao estado 24
 
-    lista_id_var  go to state 35
+    $padrão  reduzir usando a regra 24 (parte_declara_subrotinas)
 
+    parte_declara_subrotinas  ir ao estado 37
+    declaracao_procedimento   ir ao estado 26
+    declaracao_funcao         ir ao estado 27
 
-state 29
 
-   31 declaracao_funcao: FUNCTION IDENT . @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+Estado 28
 
-    $default  reduce using rule 28 (@9)
+   10 var: $@4 VAR declara_vars •
+   12 declara_vars: declara_vars • declara_var
 
-    @9  go to state 36
+    IDENT    reduzir usando a regra 14 ($@5)
+    $padrão  reduzir usando a regra 10 (var)
 
+    declara_var  ir ao estado 38
+    $@5          ir ao estado 30
 
-state 30
 
-   27 declaracao_procedimento: PROCEDURE . IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
+Estado 29
 
-    IDENT  shift, and go to state 37
+   13 declara_vars: declara_var •
 
+    $padrão  reduzir usando a regra 13 (declara_vars)
 
-state 31
 
-    5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas @3 . comando_composto
+Estado 30
 
-    T_BEGIN  shift, and go to state 38
+   16 declara_var: $@5 • lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
 
-    comando_composto  go to state 39
+    IDENT  deslocar, e ir ao estado 39
 
+    lista_id_var  ir ao estado 40
 
-state 32
 
-   22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento .
+Estado 31
 
-    $default  reduce using rule 22 (parte_declara_subrotinas)
+   27 declaracao_procedimento: PROCEDURE IDENT • $@7 parametros_ou_nada $@8 PONTO_E_VIRGULA
 
+    $padrão  reduzir usando a regra 25 ($@7)
 
-state 33
+    $@7  ir ao estado 41
 
-   12 declara_vars: declara_vars declara_var .
 
-    $default  reduce using rule 12 (declara_vars)
+Estado 32
 
+   35 declaracao_funcao: FUNCTION IDENT • $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-state 34
+    $padrão  reduzir usando a regra 32 ($@11)
 
-   19 lista_id_var: IDENT .
+    $@11  ir ao estado 42
 
-    $default  reduce using rule 19 (lista_id_var)
 
+Estado 33
 
-state 35
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 • comando_composto
 
-   16 declara_var: @5 lista_id_var . DOIS_PONTOS tipo @6 PONTO_E_VIRGULA
-   18 lista_id_var: lista_id_var . VIRGULA IDENT
+    T_BEGIN  deslocar, e ir ao estado 43
 
-    VIRGULA      shift, and go to state 40
-    DOIS_PONTOS  shift, and go to state 41
+    comando_composto  ir ao estado 44
 
 
-state 36
+Estado 34
 
-   31 declaracao_funcao: FUNCTION IDENT @9 . parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+   28 inicializa_procedimento: FORWARD • PONTO_E_VIRGULA
 
-    ABRE_PARENTESES  shift, and go to state 42
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 45
 
-    $default  reduce using rule 35 (parametros_ou_nada)
 
-    parametros_ou_nada  go to state 43
+Estado 35
 
+   22 parte_declara_subrotinas: declaracao_procedimento inicializa_procedimento • parte_declara_subrotinas
 
-state 37
+    PROCEDURE  deslocar, e ir ao estado 23
+    FUNCTION   deslocar, e ir ao estado 24
 
-   27 declaracao_procedimento: PROCEDURE IDENT . @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
+    $padrão  reduzir usando a regra 24 (parte_declara_subrotinas)
 
-    $default  reduce using rule 25 (@7)
+    parte_declara_subrotinas  ir ao estado 46
+    declaracao_procedimento   ir ao estado 26
+    declaracao_funcao         ir ao estado 27
 
-    @7  go to state 44
 
+Estado 36
 
-state 38
+   31 inicializa_procedimento: $@9 • bloco $@10 PONTO_E_VIRGULA
 
-   45 comando_composto: T_BEGIN . comandos T_END
+    LABEL  deslocar, e ir ao estado 13
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    NUMERO   shift, and go to state 47
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    $padrão  reduzir usando a regra 7 (parte_declara_rotulos)
 
-    WHILE     reduce using rule 96 (@22)
-    $default  reduce using rule 48 (comandos)
+    bloco                  ir ao estado 47
+    parte_declara_rotulos  ir ao estado 15
 
-    comando_composto            go to state 50
-    comandos                    go to state 51
-    comando                     go to state 52
-    comando_sem_rotulo          go to state 53
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    numero                      go to state 57
-    comando_repetitivo          go to state 58
-    @22                         go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
 
+Estado 37
 
-state 39
+   23 parte_declara_subrotinas: declaracao_funcao parte_declara_subrotinas •
 
-    5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas @3 comando_composto .
+    $padrão  reduzir usando a regra 23 (parte_declara_subrotinas)
 
-    $default  reduce using rule 5 (bloco)
 
+Estado 38
 
-state 40
+   12 declara_vars: declara_vars declara_var •
 
-   18 lista_id_var: lista_id_var VIRGULA . IDENT
+    $padrão  reduzir usando a regra 12 (declara_vars)
 
-    IDENT  shift, and go to state 62
 
+Estado 39
 
-state 41
+   19 lista_id_var: IDENT •
 
-   16 declara_var: @5 lista_id_var DOIS_PONTOS . tipo @6 PONTO_E_VIRGULA
+    $padrão  reduzir usando a regra 19 (lista_id_var)
 
-    IDENT  shift, and go to state 63
 
-    tipo  go to state 64
+Estado 40
 
+   16 declara_var: $@5 lista_id_var • DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
+   18 lista_id_var: lista_id_var • VIRGULA IDENT
 
-state 42
+    VIRGULA      deslocar, e ir ao estado 48
+    DOIS_PONTOS  deslocar, e ir ao estado 49
 
-   34 parametros_ou_nada: ABRE_PARENTESES . @12 paramentros_formais @13 FECHA_PARENTESES
 
-    $default  reduce using rule 32 (@12)
+Estado 41
 
-    @12  go to state 65
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 • parametros_ou_nada $@8 PONTO_E_VIRGULA
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 50
 
-state 43
+    $padrão  reduzir usando a regra 39 (parametros_ou_nada)
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada . DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+    parametros_ou_nada  ir ao estado 51
 
-    DOIS_PONTOS  shift, and go to state 66
 
+Estado 42
 
-state 44
+   35 declaracao_funcao: FUNCTION IDENT $@11 • parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 . parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
+    ABRE_PARENTESES  deslocar, e ir ao estado 50
 
-    ABRE_PARENTESES  shift, and go to state 42
+    $padrão  reduzir usando a regra 39 (parametros_ou_nada)
 
-    $default  reduce using rule 35 (parametros_ou_nada)
+    parametros_ou_nada  ir ao estado 52
 
-    parametros_ou_nada  go to state 67
 
+Estado 43
 
-state 45
+   49 comando_composto: T_BEGIN • comandos T_END
 
-   58 atribuicao_ou_procedimento: IDENT . @16 atribuicao_ou_procedimento_token
+    T_BEGIN  deslocar, e ir ao estado 43
+    IDENT    deslocar, e ir ao estado 53
+    IF       deslocar, e ir ao estado 54
+    NUMERO   deslocar, e ir ao estado 55
+    READ     deslocar, e ir ao estado 56
+    WRITE    deslocar, e ir ao estado 57
 
-    $default  reduce using rule 57 (@16)
+    WHILE    reduzir usando a regra 100 ($@24)
+    $padrão  reduzir usando a regra 52 (comandos)
 
-    @16  go to state 68
+    comando_composto            ir ao estado 58
+    comandos                    ir ao estado 59
+    comando                     ir ao estado 60
+    comando_sem_rotulo          ir ao estado 61
+    atribuicao_ou_procedimento  ir ao estado 62
+    leitura                     ir ao estado 63
+    escrita                     ir ao estado 64
+    numero                      ir ao estado 65
+    comando_repetitivo          ir ao estado 66
+    $@24                        ir ao estado 67
+    comando_condicional         ir ao estado 68
+    if_then                     ir ao estado 69
 
 
-state 46
+Estado 44
 
-  103 if_then: IF . expressao @24 THEN comando_sem_rotulo
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto •
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    $padrão  reduzir usando a regra 5 (bloco)
 
-    expressao          go to state 72
-    expressao_simples  go to state 73
-    termo              go to state 74
-    fator              go to state 75
 
+Estado 45
 
-state 47
+   28 inicializa_procedimento: FORWARD PONTO_E_VIRGULA •
 
-   95 numero: NUMERO .
+    $padrão  reduzir usando a regra 28 (inicializa_procedimento)
 
-    $default  reduce using rule 95 (numero)
 
+Estado 46
 
-state 48
+   22 parte_declara_subrotinas: declaracao_procedimento inicializa_procedimento parte_declara_subrotinas •
 
-   71 leitura: READ . ABRE_PARENTESES lista_leituras FECHA_PARENTESES
+    $padrão  reduzir usando a regra 22 (parte_declara_subrotinas)
 
-    ABRE_PARENTESES  shift, and go to state 76
 
+Estado 47
 
-state 49
+   31 inicializa_procedimento: $@9 bloco • $@10 PONTO_E_VIRGULA
 
-   75 escrita: WRITE . ABRE_PARENTESES lista_escritas FECHA_PARENTESES
+    $padrão  reduzir usando a regra 30 ($@10)
 
-    ABRE_PARENTESES  shift, and go to state 77
+    $@10  ir ao estado 70
 
 
-state 50
+Estado 48
 
-   52 comando_sem_rotulo: comando_composto .
+   18 lista_id_var: lista_id_var VIRGULA • IDENT
 
-    $default  reduce using rule 52 (comando_sem_rotulo)
+    IDENT  deslocar, e ir ao estado 71
 
 
-state 51
+Estado 49
 
-   45 comando_composto: T_BEGIN comandos . T_END
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS • tipo $@6 PONTO_E_VIRGULA
 
-    T_END  shift, and go to state 78
+    IDENT  deslocar, e ir ao estado 72
 
+    tipo  ir ao estado 73
 
-state 52
 
-   46 comandos: comando . PONTO_E_VIRGULA comandos
-   47         | comando . PONTO_E_VIRGULA
+Estado 50
 
-    PONTO_E_VIRGULA  shift, and go to state 79
+   38 parametros_ou_nada: ABRE_PARENTESES • $@14 paramentros_formais $@15 FECHA_PARENTESES
 
+    $padrão  reduzir usando a regra 36 ($@14)
 
-state 53
+    $@14  ir ao estado 74
 
-   50 comando: comando_sem_rotulo .
 
-    $default  reduce using rule 50 (comando)
+Estado 51
 
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada • $@8 PONTO_E_VIRGULA
 
-state 54
+    $padrão  reduzir usando a regra 26 ($@8)
 
-   51 comando_sem_rotulo: atribuicao_ou_procedimento .
+    $@8  ir ao estado 75
 
-    $default  reduce using rule 51 (comando_sem_rotulo)
 
+Estado 52
 
-state 55
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada • DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-   55 comando_sem_rotulo: leitura .
+    DOIS_PONTOS  deslocar, e ir ao estado 76
 
-    $default  reduce using rule 55 (comando_sem_rotulo)
 
+Estado 53
 
-state 56
+   62 atribuicao_ou_procedimento: IDENT • $@18 atribuicao_ou_procedimento_token
 
-   56 comando_sem_rotulo: escrita .
+    $padrão  reduzir usando a regra 61 ($@18)
 
-    $default  reduce using rule 56 (comando_sem_rotulo)
+    $@18  ir ao estado 77
 
 
-state 57
+Estado 54
 
-   49 comando: numero . DOIS_PONTOS comando_sem_rotulo
+  107 if_then: IF • expressao $@26 THEN comando_sem_rotulo
 
-    DOIS_PONTOS  shift, and go to state 80
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    expressao          ir ao estado 81
+    expressao_simples  ir ao estado 82
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-state 58
 
-   54 comando_sem_rotulo: comando_repetitivo .
+Estado 55
 
-    $default  reduce using rule 54 (comando_sem_rotulo)
+   99 numero: NUMERO •
 
+    $padrão  reduzir usando a regra 99 (numero)
 
-state 59
 
-   98 comando_repetitivo: @22 . WHILE expressao DO @23 comando_sem_rotulo
+Estado 56
 
-    WHILE  shift, and go to state 81
+   75 leitura: READ • ABRE_PARENTESES lista_leituras FECHA_PARENTESES
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 85
 
-state 60
 
-   53 comando_sem_rotulo: comando_condicional .
+Estado 57
 
-    $default  reduce using rule 53 (comando_sem_rotulo)
+   79 escrita: WRITE • ABRE_PARENTESES lista_escritas FECHA_PARENTESES
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 86
 
-state 61
 
-   99 comando_condicional: if_then . cond_else
+Estado 58
 
-    ELSE  shift, and go to state 82
+   56 comando_sem_rotulo: comando_composto •
 
-    $default  reduce using rule 101 (cond_else)
+    $padrão  reduzir usando a regra 56 (comando_sem_rotulo)
 
-    cond_else  go to state 83
 
+Estado 59
 
-state 62
+   49 comando_composto: T_BEGIN comandos • T_END
 
-   18 lista_id_var: lista_id_var VIRGULA IDENT .
+    T_END  deslocar, e ir ao estado 87
 
-    $default  reduce using rule 18 (lista_id_var)
 
+Estado 60
 
-state 63
+   50 comandos: comando • PONTO_E_VIRGULA comandos
+   51         | comando • PONTO_E_VIRGULA
 
-   17 tipo: IDENT .
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 88
 
-    $default  reduce using rule 17 (tipo)
 
+Estado 61
 
-state 64
+   54 comando: comando_sem_rotulo •
 
-   16 declara_var: @5 lista_id_var DOIS_PONTOS tipo . @6 PONTO_E_VIRGULA
+    $padrão  reduzir usando a regra 54 (comando)
 
-    $default  reduce using rule 15 (@6)
 
-    @6  go to state 84
+Estado 62
 
+   55 comando_sem_rotulo: atribuicao_ou_procedimento •
 
-state 65
+    $padrão  reduzir usando a regra 55 (comando_sem_rotulo)
 
-   34 parametros_ou_nada: ABRE_PARENTESES @12 . paramentros_formais @13 FECHA_PARENTESES
 
-    VAR  shift, and go to state 85
+Estado 63
 
-    $default  reduce using rule 40 (@15)
+   59 comando_sem_rotulo: leitura •
 
-    paramentros_formais  go to state 86
-    secao_pfs            go to state 87
-    @15                  go to state 88
+    $padrão  reduzir usando a regra 59 (comando_sem_rotulo)
 
 
-state 66
+Estado 64
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS . @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+   60 comando_sem_rotulo: escrita •
 
-    $default  reduce using rule 29 (@10)
+    $padrão  reduzir usando a regra 60 (comando_sem_rotulo)
 
-    @10  go to state 89
 
+Estado 65
 
-state 67
+   53 comando: numero • DOIS_PONTOS comando_sem_rotulo
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada . PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
+    DOIS_PONTOS  deslocar, e ir ao estado 89
 
-    PONTO_E_VIRGULA  shift, and go to state 90
 
+Estado 66
 
-state 68
+   58 comando_sem_rotulo: comando_repetitivo •
 
-   58 atribuicao_ou_procedimento: IDENT @16 . atribuicao_ou_procedimento_token
+    $padrão  reduzir usando a regra 58 (comando_sem_rotulo)
 
-    ATRIBUICAO  reduce using rule 61 (@17)
-    $default    reduce using rule 63 (@18)
 
-    atribuicao_ou_procedimento_token  go to state 91
-    atribuicao                        go to state 92
-    @17                               go to state 93
-    chamada_procedimento              go to state 94
-    @18                               go to state 95
+Estado 67
 
+  102 comando_repetitivo: $@24 • WHILE expressao DO $@25 comando_sem_rotulo
 
-state 69
+    WHILE  deslocar, e ir ao estado 90
 
-   94 fator: ABRE_PARENTESES . expressao FECHA_PARENTESES
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+Estado 68
 
-    expressao          go to state 96
-    expressao_simples  go to state 73
-    termo              go to state 74
-    fator              go to state 75
+   57 comando_sem_rotulo: comando_condicional •
 
+    $padrão  reduzir usando a regra 57 (comando_sem_rotulo)
 
-state 70
 
-   92 fator: IDENT . @21 chamada_procedimento
+Estado 69
 
-    $default  reduce using rule 91 (@21)
+  103 comando_condicional: if_then • cond_else
 
-    @21  go to state 97
+    ELSE  deslocar, e ir ao estado 91
 
+    $padrão  reduzir usando a regra 105 (cond_else)
 
-state 71
+    cond_else  ir ao estado 92
 
-   93 fator: NUMERO .
 
-    $default  reduce using rule 93 (fator)
+Estado 70
 
+   31 inicializa_procedimento: $@9 bloco $@10 • PONTO_E_VIRGULA
 
-state 72
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 93
 
-   78 expressao: expressao . IGUAL expressao_simples
-   79          | expressao . DIFERENTE expressao_simples
-   80          | expressao . MENOR expressao_simples
-   81          | expressao . MENOR_IGUAL expressao_simples
-   82          | expressao . MAIOR expressao_simples
-   83          | expressao . MAIOR_IGUAL expressao_simples
-  103 if_then: IF expressao . @24 THEN comando_sem_rotulo
 
-    IGUAL        shift, and go to state 98
-    DIFERENTE    shift, and go to state 99
-    MENOR_IGUAL  shift, and go to state 100
-    MAIOR_IGUAL  shift, and go to state 101
-    MENOR        shift, and go to state 102
-    MAIOR        shift, and go to state 103
+Estado 71
 
-    $default  reduce using rule 102 (@24)
+   18 lista_id_var: lista_id_var VIRGULA IDENT •
 
-    @24  go to state 104
+    $padrão  reduzir usando a regra 18 (lista_id_var)
 
 
-state 73
+Estado 72
 
-   84 expressao: expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+   17 tipo: IDENT •
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+    $padrão  reduzir usando a regra 17 (tipo)
 
-    $default  reduce using rule 84 (expressao)
 
+Estado 73
 
-state 74
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo • $@6 PONTO_E_VIRGULA
 
-   87 expressao_simples: termo .
-   88 termo: termo . ASTERISCO fator
-   89      | termo . DIV fator
+    $padrão  reduzir usando a regra 15 ($@6)
 
-    DIV        shift, and go to state 107
-    ASTERISCO  shift, and go to state 108
+    $@6  ir ao estado 94
 
-    $default  reduce using rule 87 (expressao_simples)
 
+Estado 74
 
-state 75
+   38 parametros_ou_nada: ABRE_PARENTESES $@14 • paramentros_formais $@15 FECHA_PARENTESES
 
-   90 termo: fator .
+    VAR  deslocar, e ir ao estado 95
 
-    $default  reduce using rule 90 (termo)
+    $padrão  reduzir usando a regra 44 ($@17)
 
+    paramentros_formais  ir ao estado 96
+    secao_pfs            ir ao estado 97
+    $@17                 ir ao estado 98
 
-state 76
 
-   71 leitura: READ ABRE_PARENTESES . lista_leituras FECHA_PARENTESES
+Estado 75
 
-    IDENT  shift, and go to state 109
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada $@8 • PONTO_E_VIRGULA
 
-    lista_leituras  go to state 110
-    simb_leitura    go to state 111
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 99
 
 
-state 77
+Estado 76
 
-   75 escrita: WRITE ABRE_PARENTESES . lista_escritas FECHA_PARENTESES
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS • $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    $padrão  reduzir usando a regra 33 ($@12)
 
-    lista_escritas     go to state 112
-    expressao_simples  go to state 113
-    termo              go to state 74
-    fator              go to state 75
+    $@12  ir ao estado 100
 
 
-state 78
+Estado 77
 
-   45 comando_composto: T_BEGIN comandos T_END .
+   62 atribuicao_ou_procedimento: IDENT $@18 • atribuicao_ou_procedimento_token
 
-    $default  reduce using rule 45 (comando_composto)
+    ATRIBUICAO  reduzir usando a regra 65 ($@19)
+    $padrão     reduzir usando a regra 67 ($@20)
 
+    atribuicao_ou_procedimento_token  ir ao estado 101
+    atribuicao                        ir ao estado 102
+    $@19                              ir ao estado 103
+    chamada_procedimento              ir ao estado 104
+    $@20                              ir ao estado 105
 
-state 79
 
-   46 comandos: comando PONTO_E_VIRGULA . comandos
-   47         | comando PONTO_E_VIRGULA .
+Estado 78
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    NUMERO   shift, and go to state 47
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+   97 fator: ABRE_PARENTESES • expressao FECHA_PARENTESES
+   98      | ABRE_PARENTESES • expressao_simples FECHA_PARENTESES
 
-    T_END     reduce using rule 47 (comandos)
-    T_END     [reduce using rule 48 (comandos)]
-    WHILE     reduce using rule 96 (@22)
-    $default  reduce using rule 47 (comandos)
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-    comando_composto            go to state 50
-    comandos                    go to state 114
-    comando                     go to state 52
-    comando_sem_rotulo          go to state 53
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    numero                      go to state 57
-    comando_repetitivo          go to state 58
-    @22                         go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    expressao          ir ao estado 106
+    expressao_simples  ir ao estado 107
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
 
-state 80
+Estado 79
 
-   49 comando: numero DOIS_PONTOS . comando_sem_rotulo
+   95 fator: IDENT • $@23 chamada_procedimento
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    $padrão  reduzir usando a regra 94 ($@23)
 
-    $default  reduce using rule 96 (@22)
+    $@23  ir ao estado 108
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 115
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    @22                         go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
 
+Estado 80
 
-state 81
+   96 fator: NUMERO •
 
-   98 comando_repetitivo: @22 WHILE . expressao DO @23 comando_sem_rotulo
+    $padrão  reduzir usando a regra 96 (fator)
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
 
-    expressao          go to state 116
-    expressao_simples  go to state 73
-    termo              go to state 74
-    fator              go to state 75
+Estado 81
 
+  107 if_then: IF expressao • $@26 THEN comando_sem_rotulo
 
-state 82
+    $padrão  reduzir usando a regra 106 ($@26)
 
-  100 cond_else: ELSE . comando_sem_rotulo
+    $@26  ir ao estado 109
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
 
-    $default  reduce using rule 96 (@22)
+Estado 82
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 117
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    @22                         go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+   82 expressao: expressao_simples • IGUAL expressao_simples
+   83          | expressao_simples • DIFERENTE expressao_simples
+   84          | expressao_simples • MENOR expressao_simples
+   85          | expressao_simples • MENOR_IGUAL expressao_simples
+   86          | expressao_simples • MAIOR expressao_simples
+   87          | expressao_simples • MAIOR_IGUAL expressao_simples
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
+    IGUAL        deslocar, e ir ao estado 110
+    DIFERENTE    deslocar, e ir ao estado 111
+    MENOR_IGUAL  deslocar, e ir ao estado 112
+    MAIOR_IGUAL  deslocar, e ir ao estado 113
+    MENOR        deslocar, e ir ao estado 114
+    MAIOR        deslocar, e ir ao estado 115
+    MAIS         deslocar, e ir ao estado 116
+    MENOS        deslocar, e ir ao estado 117
 
-state 83
 
-   99 comando_condicional: if_then cond_else .
+Estado 83
 
-    $default  reduce using rule 99 (comando_condicional)
+   90 expressao_simples: termo •
+   91 termo: termo • ASTERISCO fator
+   92      | termo • DIV fator
 
+    DIV        deslocar, e ir ao estado 118
+    ASTERISCO  deslocar, e ir ao estado 119
 
-state 84
+    $padrão  reduzir usando a regra 90 (expressao_simples)
 
-   16 declara_var: @5 lista_id_var DOIS_PONTOS tipo @6 . PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 118
+Estado 84
 
+   93 termo: fator •
 
-state 85
+    $padrão  reduzir usando a regra 93 (termo)
 
-   39 secao_pfs: VAR . @14 lista_id_pf DOIS_PONTOS tipo
 
-    $default  reduce using rule 38 (@14)
+Estado 85
 
-    @14  go to state 119
+   75 leitura: READ ABRE_PARENTESES • lista_leituras FECHA_PARENTESES
 
+    IDENT  deslocar, e ir ao estado 120
 
-state 86
+    lista_leituras  ir ao estado 121
+    simb_leitura    ir ao estado 122
 
-   34 parametros_ou_nada: ABRE_PARENTESES @12 paramentros_formais . @13 FECHA_PARENTESES
-   37 paramentros_formais: paramentros_formais . PONTO_E_VIRGULA secao_pfs
 
-    PONTO_E_VIRGULA  shift, and go to state 120
+Estado 86
 
-    $default  reduce using rule 33 (@13)
+   79 escrita: WRITE ABRE_PARENTESES • lista_escritas FECHA_PARENTESES
 
-    @13  go to state 121
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    lista_escritas     ir ao estado 123
+    expressao_simples  ir ao estado 124
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-state 87
 
-   36 paramentros_formais: secao_pfs .
+Estado 87
 
-    $default  reduce using rule 36 (paramentros_formais)
+   49 comando_composto: T_BEGIN comandos T_END •
 
+    $padrão  reduzir usando a regra 49 (comando_composto)
 
-state 88
 
-   41 secao_pfs: @15 . lista_id_pf DOIS_PONTOS tipo
+Estado 88
 
-    IDENT  shift, and go to state 122
+   50 comandos: comando PONTO_E_VIRGULA • comandos
+   51         | comando PONTO_E_VIRGULA •
 
-    lista_id_pf  go to state 123
-    parametro    go to state 124
+    T_BEGIN  deslocar, e ir ao estado 43
+    IDENT    deslocar, e ir ao estado 53
+    IF       deslocar, e ir ao estado 54
+    NUMERO   deslocar, e ir ao estado 55
+    READ     deslocar, e ir ao estado 56
+    WRITE    deslocar, e ir ao estado 57
 
+    T_END    reduzir usando a regra 51 (comandos)
+    T_END    [reduzir usando a regra 52 (comandos)]
+    WHILE    reduzir usando a regra 100 ($@24)
+    $padrão  reduzir usando a regra 51 (comandos)
 
-state 89
+    comando_composto            ir ao estado 58
+    comandos                    ir ao estado 125
+    comando                     ir ao estado 60
+    comando_sem_rotulo          ir ao estado 61
+    atribuicao_ou_procedimento  ir ao estado 62
+    leitura                     ir ao estado 63
+    escrita                     ir ao estado 64
+    numero                      ir ao estado 65
+    comando_repetitivo          ir ao estado 66
+    $@24                        ir ao estado 67
+    comando_condicional         ir ao estado 68
+    if_then                     ir ao estado 69
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 . tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
 
-    IDENT  shift, and go to state 63
+Estado 89
 
-    tipo  go to state 125
+   53 comando: numero DOIS_PONTOS • comando_sem_rotulo
 
+    T_BEGIN  deslocar, e ir ao estado 43
+    IDENT    deslocar, e ir ao estado 53
+    IF       deslocar, e ir ao estado 54
+    READ     deslocar, e ir ao estado 56
+    WRITE    deslocar, e ir ao estado 57
 
-state 90
+    $padrão  reduzir usando a regra 100 ($@24)
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA . bloco @8 PONTO_E_VIRGULA
+    comando_composto            ir ao estado 58
+    comando_sem_rotulo          ir ao estado 126
+    atribuicao_ou_procedimento  ir ao estado 62
+    leitura                     ir ao estado 63
+    escrita                     ir ao estado 64
+    comando_repetitivo          ir ao estado 66
+    $@24                        ir ao estado 67
+    comando_condicional         ir ao estado 68
+    if_then                     ir ao estado 69
 
-    LABEL  shift, and go to state 13
 
-    $default  reduce using rule 7 (parte_declara_rotulos)
+Estado 90
 
-    bloco                  go to state 126
-    parte_declara_rotulos  go to state 15
+  102 comando_repetitivo: $@24 WHILE • expressao DO $@25 comando_sem_rotulo
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-state 91
+    expressao          ir ao estado 127
+    expressao_simples  ir ao estado 82
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-   58 atribuicao_ou_procedimento: IDENT @16 atribuicao_ou_procedimento_token .
 
-    $default  reduce using rule 58 (atribuicao_ou_procedimento)
+Estado 91
 
+  104 cond_else: ELSE • comando_sem_rotulo
 
-state 92
+    T_BEGIN  deslocar, e ir ao estado 43
+    IDENT    deslocar, e ir ao estado 53
+    IF       deslocar, e ir ao estado 54
+    READ     deslocar, e ir ao estado 56
+    WRITE    deslocar, e ir ao estado 57
 
-   59 atribuicao_ou_procedimento_token: atribuicao .
+    $padrão  reduzir usando a regra 100 ($@24)
 
-    $default  reduce using rule 59 (atribuicao_ou_procedimento_token)
+    comando_composto            ir ao estado 58
+    comando_sem_rotulo          ir ao estado 128
+    atribuicao_ou_procedimento  ir ao estado 62
+    leitura                     ir ao estado 63
+    escrita                     ir ao estado 64
+    comando_repetitivo          ir ao estado 66
+    $@24                        ir ao estado 67
+    comando_condicional         ir ao estado 68
+    if_then                     ir ao estado 69
 
 
-state 93
+Estado 92
 
-   62 atribuicao: @17 . ATRIBUICAO expressao_simples
+  103 comando_condicional: if_then cond_else •
 
-    ATRIBUICAO  shift, and go to state 127
+    $padrão  reduzir usando a regra 103 (comando_condicional)
 
 
-state 94
+Estado 93
 
-   60 atribuicao_ou_procedimento_token: chamada_procedimento .
+   31 inicializa_procedimento: $@9 bloco $@10 PONTO_E_VIRGULA •
 
-    $default  reduce using rule 60 (atribuicao_ou_procedimento_token)
+    $padrão  reduzir usando a regra 31 (inicializa_procedimento)
 
 
-state 95
+Estado 94
 
-   64 chamada_procedimento: @18 . lista_parametros
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 • PONTO_E_VIRGULA
 
-    ABRE_PARENTESES  shift, and go to state 128
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 129
 
-    $default  reduce using rule 66 (lista_parametros)
 
-    lista_parametros  go to state 129
+Estado 95
 
+   43 secao_pfs: VAR • $@16 lista_id_pf DOIS_PONTOS tipo
 
-state 96
+    $padrão  reduzir usando a regra 42 ($@16)
 
-   78 expressao: expressao . IGUAL expressao_simples
-   79          | expressao . DIFERENTE expressao_simples
-   80          | expressao . MENOR expressao_simples
-   81          | expressao . MENOR_IGUAL expressao_simples
-   82          | expressao . MAIOR expressao_simples
-   83          | expressao . MAIOR_IGUAL expressao_simples
-   94 fator: ABRE_PARENTESES expressao . FECHA_PARENTESES
+    $@16  ir ao estado 130
 
-    FECHA_PARENTESES  shift, and go to state 130
-    IGUAL             shift, and go to state 98
-    DIFERENTE         shift, and go to state 99
-    MENOR_IGUAL       shift, and go to state 100
-    MAIOR_IGUAL       shift, and go to state 101
-    MENOR             shift, and go to state 102
-    MAIOR             shift, and go to state 103
 
+Estado 96
 
-state 97
+   38 parametros_ou_nada: ABRE_PARENTESES $@14 paramentros_formais • $@15 FECHA_PARENTESES
+   41 paramentros_formais: paramentros_formais • PONTO_E_VIRGULA secao_pfs
 
-   92 fator: IDENT @21 . chamada_procedimento
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 131
 
-    $default  reduce using rule 63 (@18)
+    $padrão  reduzir usando a regra 37 ($@15)
 
-    chamada_procedimento  go to state 131
-    @18                   go to state 95
+    $@15  ir ao estado 132
 
 
-state 98
+Estado 97
 
-   78 expressao: expressao IGUAL . expressao_simples
+   40 paramentros_formais: secao_pfs •
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    $padrão  reduzir usando a regra 40 (paramentros_formais)
 
-    expressao_simples  go to state 132
-    termo              go to state 74
-    fator              go to state 75
 
+Estado 98
 
-state 99
+   45 secao_pfs: $@17 • lista_id_pf DOIS_PONTOS tipo
 
-   79 expressao: expressao DIFERENTE . expressao_simples
+    IDENT  deslocar, e ir ao estado 133
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    lista_id_pf  ir ao estado 134
+    parametro    ir ao estado 135
 
-    expressao_simples  go to state 133
-    termo              go to state 74
-    fator              go to state 75
 
+Estado 99
 
-state 100
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada $@8 PONTO_E_VIRGULA •
 
-   81 expressao: expressao MENOR_IGUAL . expressao_simples
+    $padrão  reduzir usando a regra 27 (declaracao_procedimento)
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
 
-    expressao_simples  go to state 134
-    termo              go to state 74
-    fator              go to state 75
+Estado 100
 
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 • tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
-state 101
+    IDENT  deslocar, e ir ao estado 72
 
-   83 expressao: expressao MAIOR_IGUAL . expressao_simples
+    tipo  ir ao estado 136
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
 
-    expressao_simples  go to state 135
-    termo              go to state 74
-    fator              go to state 75
+Estado 101
 
+   62 atribuicao_ou_procedimento: IDENT $@18 atribuicao_ou_procedimento_token •
 
-state 102
+    $padrão  reduzir usando a regra 62 (atribuicao_ou_procedimento)
 
-   80 expressao: expressao MENOR . expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+Estado 102
 
-    expressao_simples  go to state 136
-    termo              go to state 74
-    fator              go to state 75
+   63 atribuicao_ou_procedimento_token: atribuicao •
 
+    $padrão  reduzir usando a regra 63 (atribuicao_ou_procedimento_token)
 
-state 103
 
-   82 expressao: expressao MAIOR . expressao_simples
+Estado 103
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+   66 atribuicao: $@19 • ATRIBUICAO expressao_simples
 
-    expressao_simples  go to state 137
-    termo              go to state 74
-    fator              go to state 75
+    ATRIBUICAO  deslocar, e ir ao estado 137
 
 
-state 104
+Estado 104
 
-  103 if_then: IF expressao @24 . THEN comando_sem_rotulo
+   64 atribuicao_ou_procedimento_token: chamada_procedimento •
 
-    THEN  shift, and go to state 138
+    $padrão  reduzir usando a regra 64 (atribuicao_ou_procedimento_token)
 
 
-state 105
+Estado 105
 
-   85 expressao_simples: expressao_simples MAIS . termo
+   68 chamada_procedimento: $@20 • lista_parametros
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 138
 
-    termo  go to state 139
-    fator  go to state 75
+    $padrão  reduzir usando a regra 70 (lista_parametros)
 
+    lista_parametros  ir ao estado 139
 
-state 106
 
-   86 expressao_simples: expressao_simples MENOS . termo
+Estado 106
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+   97 fator: ABRE_PARENTESES expressao • FECHA_PARENTESES
 
-    termo  go to state 140
-    fator  go to state 75
+    FECHA_PARENTESES  deslocar, e ir ao estado 140
 
 
-state 107
+Estado 107
 
-   89 termo: termo DIV . fator
+   82 expressao: expressao_simples • IGUAL expressao_simples
+   83          | expressao_simples • DIFERENTE expressao_simples
+   84          | expressao_simples • MENOR expressao_simples
+   85          | expressao_simples • MENOR_IGUAL expressao_simples
+   86          | expressao_simples • MAIOR expressao_simples
+   87          | expressao_simples • MAIOR_IGUAL expressao_simples
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
+   98 fator: ABRE_PARENTESES expressao_simples • FECHA_PARENTESES
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    FECHA_PARENTESES  deslocar, e ir ao estado 141
+    IGUAL             deslocar, e ir ao estado 110
+    DIFERENTE         deslocar, e ir ao estado 111
+    MENOR_IGUAL       deslocar, e ir ao estado 112
+    MAIOR_IGUAL       deslocar, e ir ao estado 113
+    MENOR             deslocar, e ir ao estado 114
+    MAIOR             deslocar, e ir ao estado 115
+    MAIS              deslocar, e ir ao estado 116
+    MENOS             deslocar, e ir ao estado 117
 
-    fator  go to state 141
 
+Estado 108
 
-state 108
+   95 fator: IDENT $@23 • chamada_procedimento
 
-   88 termo: termo ASTERISCO . fator
+    $padrão  reduzir usando a regra 67 ($@20)
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    chamada_procedimento  ir ao estado 142
+    $@20                  ir ao estado 105
 
-    fator  go to state 142
 
+Estado 109
 
-state 109
+  107 if_then: IF expressao $@26 • THEN comando_sem_rotulo
 
-   74 simb_leitura: IDENT .
+    THEN  deslocar, e ir ao estado 143
 
-    $default  reduce using rule 74 (simb_leitura)
 
+Estado 110
 
-state 110
+   82 expressao: expressao_simples IGUAL • expressao_simples
 
-   71 leitura: READ ABRE_PARENTESES lista_leituras . FECHA_PARENTESES
-   72 lista_leituras: lista_leituras . VIRGULA simb_leitura
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-    FECHA_PARENTESES  shift, and go to state 143
-    VIRGULA           shift, and go to state 144
+    expressao_simples  ir ao estado 144
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
 
-state 111
+Estado 111
 
-   73 lista_leituras: simb_leitura .
+   83 expressao: expressao_simples DIFERENTE • expressao_simples
 
-    $default  reduce using rule 73 (lista_leituras)
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    expressao_simples  ir ao estado 145
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-state 112
 
-   75 escrita: WRITE ABRE_PARENTESES lista_escritas . FECHA_PARENTESES
-   76 lista_escritas: lista_escritas . VIRGULA expressao_simples
+Estado 112
 
-    FECHA_PARENTESES  shift, and go to state 145
-    VIRGULA           shift, and go to state 146
+   85 expressao: expressao_simples MENOR_IGUAL • expressao_simples
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-state 113
+    expressao_simples  ir ao estado 146
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-   77 lista_escritas: expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+Estado 113
 
-    $default  reduce using rule 77 (lista_escritas)
+   87 expressao: expressao_simples MAIOR_IGUAL • expressao_simples
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-state 114
+    expressao_simples  ir ao estado 147
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-   46 comandos: comando PONTO_E_VIRGULA comandos .
 
-    $default  reduce using rule 46 (comandos)
+Estado 114
 
+   84 expressao: expressao_simples MENOR • expressao_simples
 
-state 115
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-   49 comando: numero DOIS_PONTOS comando_sem_rotulo .
+    expressao_simples  ir ao estado 148
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-    $default  reduce using rule 49 (comando)
 
+Estado 115
 
-state 116
+   86 expressao: expressao_simples MAIOR • expressao_simples
 
-   78 expressao: expressao . IGUAL expressao_simples
-   79          | expressao . DIFERENTE expressao_simples
-   80          | expressao . MENOR expressao_simples
-   81          | expressao . MENOR_IGUAL expressao_simples
-   82          | expressao . MAIOR expressao_simples
-   83          | expressao . MAIOR_IGUAL expressao_simples
-   98 comando_repetitivo: @22 WHILE expressao . DO @23 comando_sem_rotulo
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-    DO           shift, and go to state 147
-    IGUAL        shift, and go to state 98
-    DIFERENTE    shift, and go to state 99
-    MENOR_IGUAL  shift, and go to state 100
-    MAIOR_IGUAL  shift, and go to state 101
-    MENOR        shift, and go to state 102
-    MAIOR        shift, and go to state 103
+    expressao_simples  ir ao estado 149
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
 
-state 117
+Estado 116
 
-  100 cond_else: ELSE comando_sem_rotulo .
+   88 expressao_simples: expressao_simples MAIS • termo
 
-    $default  reduce using rule 100 (cond_else)
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    termo  ir ao estado 150
+    fator  ir ao estado 84
 
-state 118
 
-   16 declara_var: @5 lista_id_var DOIS_PONTOS tipo @6 PONTO_E_VIRGULA .
+Estado 117
 
-    $default  reduce using rule 16 (declara_var)
+   89 expressao_simples: expressao_simples MENOS • termo
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-state 119
+    termo  ir ao estado 151
+    fator  ir ao estado 84
 
-   39 secao_pfs: VAR @14 . lista_id_pf DOIS_PONTOS tipo
 
-    IDENT  shift, and go to state 122
+Estado 118
 
-    lista_id_pf  go to state 148
-    parametro    go to state 124
+   92 termo: termo DIV • fator
 
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-state 120
+    fator  ir ao estado 152
 
-   37 paramentros_formais: paramentros_formais PONTO_E_VIRGULA . secao_pfs
 
-    VAR  shift, and go to state 85
+Estado 119
 
-    $default  reduce using rule 40 (@15)
+   91 termo: termo ASTERISCO • fator
 
-    secao_pfs  go to state 149
-    @15        go to state 88
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    fator  ir ao estado 153
 
-state 121
 
-   34 parametros_ou_nada: ABRE_PARENTESES @12 paramentros_formais @13 . FECHA_PARENTESES
+Estado 120
 
-    FECHA_PARENTESES  shift, and go to state 150
+   78 simb_leitura: IDENT •
 
+    $padrão  reduzir usando a regra 78 (simb_leitura)
 
-state 122
 
-   44 parametro: IDENT .
+Estado 121
 
-    $default  reduce using rule 44 (parametro)
+   75 leitura: READ ABRE_PARENTESES lista_leituras • FECHA_PARENTESES
+   76 lista_leituras: lista_leituras • VIRGULA simb_leitura
 
+    FECHA_PARENTESES  deslocar, e ir ao estado 154
+    VIRGULA           deslocar, e ir ao estado 155
 
-state 123
 
-   41 secao_pfs: @15 lista_id_pf . DOIS_PONTOS tipo
+Estado 122
 
-    DOIS_PONTOS  shift, and go to state 151
+   77 lista_leituras: simb_leitura •
 
+    $padrão  reduzir usando a regra 77 (lista_leituras)
 
-state 124
 
-   42 lista_id_pf: parametro . VIRGULA lista_id_pf
-   43            | parametro .
+Estado 123
 
-    VIRGULA  shift, and go to state 152
+   79 escrita: WRITE ABRE_PARENTESES lista_escritas • FECHA_PARENTESES
+   80 lista_escritas: lista_escritas • VIRGULA expressao_simples
 
-    $default  reduce using rule 43 (lista_id_pf)
+    FECHA_PARENTESES  deslocar, e ir ao estado 156
+    VIRGULA           deslocar, e ir ao estado 157
 
 
-state 125
+Estado 124
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo . PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA
+   81 lista_escritas: expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
-    PONTO_E_VIRGULA  shift, and go to state 153
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
+    $padrão  reduzir usando a regra 81 (lista_escritas)
 
-state 126
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco . @8 PONTO_E_VIRGULA
+Estado 125
 
-    $default  reduce using rule 26 (@8)
+   50 comandos: comando PONTO_E_VIRGULA comandos •
 
-    @8  go to state 154
+    $padrão  reduzir usando a regra 50 (comandos)
 
 
-state 127
+Estado 126
 
-   62 atribuicao: @17 ATRIBUICAO . expressao_simples
+   53 comando: numero DOIS_PONTOS comando_sem_rotulo •
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    $padrão  reduzir usando a regra 53 (comando)
 
-    expressao_simples  go to state 155
-    termo              go to state 74
-    fator              go to state 75
 
+Estado 127
 
-state 128
+  102 comando_repetitivo: $@24 WHILE expressao • DO $@25 comando_sem_rotulo
 
-   65 lista_parametros: ABRE_PARENTESES . lista_parametros_parenteses FECHA_PARENTESES
+    DO  deslocar, e ir ao estado 158
 
-    $default  reduce using rule 69 (@20)
 
-    lista_parametros_parenteses  go to state 156
-    @20                          go to state 157
+Estado 128
 
+  104 cond_else: ELSE comando_sem_rotulo •
 
-state 129
+    $padrão  reduzir usando a regra 104 (cond_else)
 
-   64 chamada_procedimento: @18 lista_parametros .
 
-    $default  reduce using rule 64 (chamada_procedimento)
+Estado 129
 
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA •
 
-state 130
+    $padrão  reduzir usando a regra 16 (declara_var)
 
-   94 fator: ABRE_PARENTESES expressao FECHA_PARENTESES .
 
-    $default  reduce using rule 94 (fator)
+Estado 130
 
+   43 secao_pfs: VAR $@16 • lista_id_pf DOIS_PONTOS tipo
 
-state 131
+    IDENT  deslocar, e ir ao estado 133
 
-   92 fator: IDENT @21 chamada_procedimento .
+    lista_id_pf  ir ao estado 159
+    parametro    ir ao estado 135
 
-    $default  reduce using rule 92 (fator)
 
+Estado 131
 
-state 132
+   41 paramentros_formais: paramentros_formais PONTO_E_VIRGULA • secao_pfs
 
-   78 expressao: expressao IGUAL expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+    VAR  deslocar, e ir ao estado 95
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+    $padrão  reduzir usando a regra 44 ($@17)
 
-    $default  reduce using rule 78 (expressao)
+    secao_pfs  ir ao estado 160
+    $@17       ir ao estado 98
 
 
-state 133
+Estado 132
 
-   79 expressao: expressao DIFERENTE expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+   38 parametros_ou_nada: ABRE_PARENTESES $@14 paramentros_formais $@15 • FECHA_PARENTESES
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+    FECHA_PARENTESES  deslocar, e ir ao estado 161
 
-    $default  reduce using rule 79 (expressao)
 
+Estado 133
 
-state 134
+   48 parametro: IDENT •
 
-   81 expressao: expressao MENOR_IGUAL expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+    $padrão  reduzir usando a regra 48 (parametro)
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
 
-    $default  reduce using rule 81 (expressao)
+Estado 134
 
+   45 secao_pfs: $@17 lista_id_pf • DOIS_PONTOS tipo
 
-state 135
+    DOIS_PONTOS  deslocar, e ir ao estado 162
 
-   83 expressao: expressao MAIOR_IGUAL expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+Estado 135
 
-    $default  reduce using rule 83 (expressao)
+   46 lista_id_pf: parametro • VIRGULA lista_id_pf
+   47            | parametro •
 
+    VIRGULA  deslocar, e ir ao estado 163
 
-state 136
+    $padrão  reduzir usando a regra 47 (lista_id_pf)
 
-   80 expressao: expressao MENOR expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+Estado 136
 
-    $default  reduce using rule 80 (expressao)
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo • PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA
 
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 164
 
-state 137
 
-   82 expressao: expressao MAIOR expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+Estado 137
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+   66 atribuicao: $@19 ATRIBUICAO • expressao_simples
 
-    $default  reduce using rule 82 (expressao)
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    expressao_simples  ir ao estado 165
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-state 138
 
-  103 if_then: IF expressao @24 THEN . comando_sem_rotulo
+Estado 138
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+   69 lista_parametros: ABRE_PARENTESES • lista_parametros_parenteses FECHA_PARENTESES
 
-    $default  reduce using rule 96 (@22)
+    $padrão  reduzir usando a regra 73 ($@22)
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 158
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    @22                         go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    lista_parametros_parenteses  ir ao estado 166
+    $@22                         ir ao estado 167
 
 
-state 139
+Estado 139
 
-   85 expressao_simples: expressao_simples MAIS termo .
-   88 termo: termo . ASTERISCO fator
-   89      | termo . DIV fator
+   68 chamada_procedimento: $@20 lista_parametros •
 
-    DIV        shift, and go to state 107
-    ASTERISCO  shift, and go to state 108
+    $padrão  reduzir usando a regra 68 (chamada_procedimento)
 
-    $default  reduce using rule 85 (expressao_simples)
 
+Estado 140
 
-state 140
+   97 fator: ABRE_PARENTESES expressao FECHA_PARENTESES •
 
-   86 expressao_simples: expressao_simples MENOS termo .
-   88 termo: termo . ASTERISCO fator
-   89      | termo . DIV fator
+    $padrão  reduzir usando a regra 97 (fator)
 
-    DIV        shift, and go to state 107
-    ASTERISCO  shift, and go to state 108
 
-    $default  reduce using rule 86 (expressao_simples)
+Estado 141
 
+   98 fator: ABRE_PARENTESES expressao_simples FECHA_PARENTESES •
 
-state 141
+    $padrão  reduzir usando a regra 98 (fator)
 
-   89 termo: termo DIV fator .
 
-    $default  reduce using rule 89 (termo)
+Estado 142
 
+   95 fator: IDENT $@23 chamada_procedimento •
 
-state 142
+    $padrão  reduzir usando a regra 95 (fator)
 
-   88 termo: termo ASTERISCO fator .
 
-    $default  reduce using rule 88 (termo)
+Estado 143
 
+  107 if_then: IF expressao $@26 THEN • comando_sem_rotulo
 
-state 143
+    T_BEGIN  deslocar, e ir ao estado 43
+    IDENT    deslocar, e ir ao estado 53
+    IF       deslocar, e ir ao estado 54
+    READ     deslocar, e ir ao estado 56
+    WRITE    deslocar, e ir ao estado 57
 
-   71 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES .
+    $padrão  reduzir usando a regra 100 ($@24)
 
-    $default  reduce using rule 71 (leitura)
+    comando_composto            ir ao estado 58
+    comando_sem_rotulo          ir ao estado 168
+    atribuicao_ou_procedimento  ir ao estado 62
+    leitura                     ir ao estado 63
+    escrita                     ir ao estado 64
+    comando_repetitivo          ir ao estado 66
+    $@24                        ir ao estado 67
+    comando_condicional         ir ao estado 68
+    if_then                     ir ao estado 69
 
 
-state 144
+Estado 144
 
-   72 lista_leituras: lista_leituras VIRGULA . simb_leitura
+   82 expressao: expressao_simples IGUAL expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
-    IDENT  shift, and go to state 109
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
-    simb_leitura  go to state 159
+    $padrão  reduzir usando a regra 82 (expressao)
 
 
-state 145
+Estado 145
 
-   75 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES .
+   83 expressao: expressao_simples DIFERENTE expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
-    $default  reduce using rule 75 (escrita)
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
+    $padrão  reduzir usando a regra 83 (expressao)
 
-state 146
 
-   76 lista_escritas: lista_escritas VIRGULA . expressao_simples
+Estado 146
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+   85 expressao: expressao_simples MENOR_IGUAL expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
-    expressao_simples  go to state 160
-    termo              go to state 74
-    fator              go to state 75
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
+    $padrão  reduzir usando a regra 85 (expressao)
 
-state 147
 
-   98 comando_repetitivo: @22 WHILE expressao DO . @23 comando_sem_rotulo
+Estado 147
 
-    $default  reduce using rule 97 (@23)
+   87 expressao: expressao_simples MAIOR_IGUAL expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
-    @23  go to state 161
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
+    $padrão  reduzir usando a regra 87 (expressao)
 
-state 148
 
-   39 secao_pfs: VAR @14 lista_id_pf . DOIS_PONTOS tipo
+Estado 148
 
-    DOIS_PONTOS  shift, and go to state 162
+   84 expressao: expressao_simples MENOR expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
-state 149
+    $padrão  reduzir usando a regra 84 (expressao)
 
-   37 paramentros_formais: paramentros_formais PONTO_E_VIRGULA secao_pfs .
 
-    $default  reduce using rule 37 (paramentros_formais)
+Estado 149
 
+   86 expressao: expressao_simples MAIOR expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
-state 150
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
-   34 parametros_ou_nada: ABRE_PARENTESES @12 paramentros_formais @13 FECHA_PARENTESES .
+    $padrão  reduzir usando a regra 86 (expressao)
 
-    $default  reduce using rule 34 (parametros_ou_nada)
 
+Estado 150
 
-state 151
+   88 expressao_simples: expressao_simples MAIS termo •
+   91 termo: termo • ASTERISCO fator
+   92      | termo • DIV fator
 
-   41 secao_pfs: @15 lista_id_pf DOIS_PONTOS . tipo
+    DIV        deslocar, e ir ao estado 118
+    ASTERISCO  deslocar, e ir ao estado 119
 
-    IDENT  shift, and go to state 63
+    $padrão  reduzir usando a regra 88 (expressao_simples)
 
-    tipo  go to state 163
 
+Estado 151
 
-state 152
+   89 expressao_simples: expressao_simples MENOS termo •
+   91 termo: termo • ASTERISCO fator
+   92      | termo • DIV fator
 
-   42 lista_id_pf: parametro VIRGULA . lista_id_pf
+    DIV        deslocar, e ir ao estado 118
+    ASTERISCO  deslocar, e ir ao estado 119
 
-    IDENT  shift, and go to state 122
+    $padrão  reduzir usando a regra 89 (expressao_simples)
 
-    lista_id_pf  go to state 164
-    parametro    go to state 124
 
+Estado 152
 
-state 153
+   92 termo: termo DIV fator •
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA . bloco @11 PONTO_E_VIRGULA
+    $padrão  reduzir usando a regra 92 (termo)
 
-    LABEL  shift, and go to state 13
 
-    $default  reduce using rule 7 (parte_declara_rotulos)
+Estado 153
 
-    bloco                  go to state 165
-    parte_declara_rotulos  go to state 15
+   91 termo: termo ASTERISCO fator •
 
+    $padrão  reduzir usando a regra 91 (termo)
 
-state 154
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 . PONTO_E_VIRGULA
+Estado 154
 
-    PONTO_E_VIRGULA  shift, and go to state 166
+   75 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES •
 
+    $padrão  reduzir usando a regra 75 (leitura)
 
-state 155
 
-   62 atribuicao: @17 ATRIBUICAO expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+Estado 155
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+   76 lista_leituras: lista_leituras VIRGULA • simb_leitura
 
-    $default  reduce using rule 62 (atribuicao)
+    IDENT  deslocar, e ir ao estado 120
 
+    simb_leitura  ir ao estado 169
 
-state 156
 
-   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses . FECHA_PARENTESES
-   68 lista_parametros_parenteses: lista_parametros_parenteses . VIRGULA @19 expressao_simples
+Estado 156
 
-    FECHA_PARENTESES  shift, and go to state 167
-    VIRGULA           shift, and go to state 168
+   79 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES •
 
+    $padrão  reduzir usando a regra 79 (escrita)
 
-state 157
 
-   70 lista_parametros_parenteses: @20 . expressao_simples
+Estado 157
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+   80 lista_escritas: lista_escritas VIRGULA • expressao_simples
 
-    expressao_simples  go to state 169
-    termo              go to state 74
-    fator              go to state 75
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
+    expressao_simples  ir ao estado 170
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-state 158
 
-  103 if_then: IF expressao @24 THEN comando_sem_rotulo .
+Estado 158
 
-    $default  reduce using rule 103 (if_then)
+  102 comando_repetitivo: $@24 WHILE expressao DO • $@25 comando_sem_rotulo
 
+    $padrão  reduzir usando a regra 101 ($@25)
 
-state 159
+    $@25  ir ao estado 171
 
-   72 lista_leituras: lista_leituras VIRGULA simb_leitura .
 
-    $default  reduce using rule 72 (lista_leituras)
+Estado 159
 
+   43 secao_pfs: VAR $@16 lista_id_pf • DOIS_PONTOS tipo
 
-state 160
+    DOIS_PONTOS  deslocar, e ir ao estado 172
 
-   76 lista_escritas: lista_escritas VIRGULA expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+Estado 160
 
-    $default  reduce using rule 76 (lista_escritas)
+   41 paramentros_formais: paramentros_formais PONTO_E_VIRGULA secao_pfs •
 
+    $padrão  reduzir usando a regra 41 (paramentros_formais)
 
-state 161
 
-   98 comando_repetitivo: @22 WHILE expressao DO @23 . comando_sem_rotulo
+Estado 161
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+   38 parametros_ou_nada: ABRE_PARENTESES $@14 paramentros_formais $@15 FECHA_PARENTESES •
 
-    $default  reduce using rule 96 (@22)
+    $padrão  reduzir usando a regra 38 (parametros_ou_nada)
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 170
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    @22                         go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
 
+Estado 162
 
-state 162
+   45 secao_pfs: $@17 lista_id_pf DOIS_PONTOS • tipo
 
-   39 secao_pfs: VAR @14 lista_id_pf DOIS_PONTOS . tipo
+    IDENT  deslocar, e ir ao estado 72
 
-    IDENT  shift, and go to state 63
+    tipo  ir ao estado 173
 
-    tipo  go to state 171
 
+Estado 163
 
-state 163
+   46 lista_id_pf: parametro VIRGULA • lista_id_pf
 
-   41 secao_pfs: @15 lista_id_pf DOIS_PONTOS tipo .
+    IDENT  deslocar, e ir ao estado 133
 
-    $default  reduce using rule 41 (secao_pfs)
+    lista_id_pf  ir ao estado 174
+    parametro    ir ao estado 135
 
 
-state 164
+Estado 164
 
-   42 lista_id_pf: parametro VIRGULA lista_id_pf .
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA • bloco $@13 PONTO_E_VIRGULA
 
-    $default  reduce using rule 42 (lista_id_pf)
+    LABEL  deslocar, e ir ao estado 13
 
+    $padrão  reduzir usando a regra 7 (parte_declara_rotulos)
 
-state 165
+    bloco                  ir ao estado 175
+    parte_declara_rotulos  ir ao estado 15
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco . @11 PONTO_E_VIRGULA
 
-    $default  reduce using rule 30 (@11)
+Estado 165
 
-    @11  go to state 172
+   66 atribuicao: $@19 ATRIBUICAO expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
-state 166
+    $padrão  reduzir usando a regra 66 (atribuicao)
 
-   27 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA .
 
-    $default  reduce using rule 27 (declaracao_procedimento)
+Estado 166
 
+   69 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses • FECHA_PARENTESES
+   72 lista_parametros_parenteses: lista_parametros_parenteses • VIRGULA $@21 expressao_simples
 
-state 167
+    FECHA_PARENTESES  deslocar, e ir ao estado 176
+    VIRGULA           deslocar, e ir ao estado 177
 
-   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES .
 
-    $default  reduce using rule 65 (lista_parametros)
+Estado 167
 
+   74 lista_parametros_parenteses: $@22 • expressao_simples
 
-state 168
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA . @19 expressao_simples
+    expressao_simples  ir ao estado 178
+    termo              ir ao estado 83
+    fator              ir ao estado 84
 
-    $default  reduce using rule 67 (@19)
 
-    @19  go to state 173
+Estado 168
 
+  107 if_then: IF expressao $@26 THEN comando_sem_rotulo •
 
-state 169
+    $padrão  reduzir usando a regra 107 (if_then)
 
-   70 lista_parametros_parenteses: @20 expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+Estado 169
 
-    $default  reduce using rule 70 (lista_parametros_parenteses)
+   76 lista_leituras: lista_leituras VIRGULA simb_leitura •
 
+    $padrão  reduzir usando a regra 76 (lista_leituras)
 
-state 170
 
-   98 comando_repetitivo: @22 WHILE expressao DO @23 comando_sem_rotulo .
+Estado 170
 
-    $default  reduce using rule 98 (comando_repetitivo)
+   80 lista_escritas: lista_escritas VIRGULA expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
 
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
 
-state 171
+    $padrão  reduzir usando a regra 80 (lista_escritas)
 
-   39 secao_pfs: VAR @14 lista_id_pf DOIS_PONTOS tipo .
 
-    $default  reduce using rule 39 (secao_pfs)
+Estado 171
 
+  102 comando_repetitivo: $@24 WHILE expressao DO $@25 • comando_sem_rotulo
 
-state 172
+    T_BEGIN  deslocar, e ir ao estado 43
+    IDENT    deslocar, e ir ao estado 53
+    IF       deslocar, e ir ao estado 54
+    READ     deslocar, e ir ao estado 56
+    WRITE    deslocar, e ir ao estado 57
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 . PONTO_E_VIRGULA
+    $padrão  reduzir usando a regra 100 ($@24)
 
-    PONTO_E_VIRGULA  shift, and go to state 174
+    comando_composto            ir ao estado 58
+    comando_sem_rotulo          ir ao estado 179
+    atribuicao_ou_procedimento  ir ao estado 62
+    leitura                     ir ao estado 63
+    escrita                     ir ao estado 64
+    comando_repetitivo          ir ao estado 66
+    $@24                        ir ao estado 67
+    comando_condicional         ir ao estado 68
+    if_then                     ir ao estado 69
 
 
-state 173
+Estado 172
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA @19 . expressao_simples
+   43 secao_pfs: VAR $@16 lista_id_pf DOIS_PONTOS • tipo
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    IDENT  deslocar, e ir ao estado 72
 
-    expressao_simples  go to state 175
-    termo              go to state 74
-    fator              go to state 75
+    tipo  ir ao estado 180
 
 
-state 174
+Estado 173
 
-   31 declaracao_funcao: FUNCTION IDENT @9 parametros_ou_nada DOIS_PONTOS @10 tipo PONTO_E_VIRGULA bloco @11 PONTO_E_VIRGULA .
+   45 secao_pfs: $@17 lista_id_pf DOIS_PONTOS tipo •
 
-    $default  reduce using rule 31 (declaracao_funcao)
+    $padrão  reduzir usando a regra 45 (secao_pfs)
 
 
-state 175
+Estado 174
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA @19 expressao_simples .
-   85 expressao_simples: expressao_simples . MAIS termo
-   86                  | expressao_simples . MENOS termo
+   46 lista_id_pf: parametro VIRGULA lista_id_pf •
 
-    MAIS   shift, and go to state 105
-    MENOS  shift, and go to state 106
+    $padrão  reduzir usando a regra 46 (lista_id_pf)
 
-    $default  reduce using rule 68 (lista_parametros_parenteses)
+
+Estado 175
+
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco • $@13 PONTO_E_VIRGULA
+
+    $padrão  reduzir usando a regra 34 ($@13)
+
+    $@13  ir ao estado 181
+
+
+Estado 176
+
+   69 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES •
+
+    $padrão  reduzir usando a regra 69 (lista_parametros)
+
+
+Estado 177
+
+   72 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA • $@21 expressao_simples
+
+    $padrão  reduzir usando a regra 71 ($@21)
+
+    $@21  ir ao estado 182
+
+
+Estado 178
+
+   74 lista_parametros_parenteses: $@22 expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
+
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
+
+    $padrão  reduzir usando a regra 74 (lista_parametros_parenteses)
+
+
+Estado 179
+
+  102 comando_repetitivo: $@24 WHILE expressao DO $@25 comando_sem_rotulo •
+
+    $padrão  reduzir usando a regra 102 (comando_repetitivo)
+
+
+Estado 180
+
+   43 secao_pfs: VAR $@16 lista_id_pf DOIS_PONTOS tipo •
+
+    $padrão  reduzir usando a regra 43 (secao_pfs)
+
+
+Estado 181
+
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 • PONTO_E_VIRGULA
+
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 183
+
+
+Estado 182
+
+   72 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@21 • expressao_simples
+
+    ABRE_PARENTESES  deslocar, e ir ao estado 78
+    IDENT            deslocar, e ir ao estado 79
+    NUMERO           deslocar, e ir ao estado 80
+
+    expressao_simples  ir ao estado 184
+    termo              ir ao estado 83
+    fator              ir ao estado 84
+
+
+Estado 183
+
+   35 declaracao_funcao: FUNCTION IDENT $@11 parametros_ou_nada DOIS_PONTOS $@12 tipo PONTO_E_VIRGULA bloco $@13 PONTO_E_VIRGULA •
+
+    $padrão  reduzir usando a regra 35 (declaracao_funcao)
+
+
+Estado 184
+
+   72 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@21 expressao_simples •
+   88 expressao_simples: expressao_simples • MAIS termo
+   89                  | expressao_simples • MENOS termo
+
+    MAIS   deslocar, e ir ao estado 116
+    MENOS  deslocar, e ir ao estado 117
+
+    $padrão  reduzir usando a regra 72 (lista_parametros_parenteses)
diff --git a/ALTERADO/compilador.tab.c b/ALTERADO/compilador.tab.c
index 98a160e..6f95354 100644
--- a/ALTERADO/compilador.tab.c
+++ b/ALTERADO/compilador.tab.c
@@ -1,14 +1,14 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+   Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,9 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -36,6 +34,10 @@
 /* C LALR(1) parser skeleton written by Richard Stallman, by
    simplifying the original so-called "semantic" parser.  */
 
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+   especially those whose name start with YY_ or yy_.  They are
+   private implementation details that can be changed or removed.  */
+
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
    variables, as they might otherwise be expanded by user macros.
@@ -43,11 +45,11 @@
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
-/* Identify Bison output.  */
-#define YYBISON 1
+/* Identify Bison output, and Bison version.  */
+#define YYBISON 30802
 
-/* Bison version.  */
-#define YYBISON_VERSION "2.3"
+/* Bison version string.  */
+#define YYBISON_VERSION "3.8.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -55,105 +57,16 @@
 /* Pure parsers.  */
 #define YYPURE 0
 
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     PROGRAM = 258,
-     ABRE_PARENTESES = 259,
-     FECHA_PARENTESES = 260,
-     VIRGULA = 261,
-     PONTO_E_VIRGULA = 262,
-     DOIS_PONTOS = 263,
-     PONTO = 264,
-     T_BEGIN = 265,
-     T_END = 266,
-     VAR = 267,
-     IDENT = 268,
-     ATRIBUICAO = 269,
-     LABEL = 270,
-     TYPE = 271,
-     ARRAY = 272,
-     PROCEDURE = 273,
-     FUNCTION = 274,
-     GOTO = 275,
-     IF = 276,
-     THEN = 277,
-     ELSE = 278,
-     WHILE = 279,
-     DO = 280,
-     OR = 281,
-     DIV = 282,
-     AND = 283,
-     NOT = 284,
-     IGUAL = 285,
-     DIFERENTE = 286,
-     MENOR_IGUAL = 287,
-     MAIOR_IGUAL = 288,
-     MENOR = 289,
-     MAIOR = 290,
-     MAIS = 291,
-     MENOS = 292,
-     ASTERISCO = 293,
-     NUMERO = 294,
-     READ = 295,
-     WRITE = 296,
-     LOWER_THAN_ELSE = 297
-   };
-#endif
-/* Tokens.  */
-#define PROGRAM 258
-#define ABRE_PARENTESES 259
-#define FECHA_PARENTESES 260
-#define VIRGULA 261
-#define PONTO_E_VIRGULA 262
-#define DOIS_PONTOS 263
-#define PONTO 264
-#define T_BEGIN 265
-#define T_END 266
-#define VAR 267
-#define IDENT 268
-#define ATRIBUICAO 269
-#define LABEL 270
-#define TYPE 271
-#define ARRAY 272
-#define PROCEDURE 273
-#define FUNCTION 274
-#define GOTO 275
-#define IF 276
-#define THEN 277
-#define ELSE 278
-#define WHILE 279
-#define DO 280
-#define OR 281
-#define DIV 282
-#define AND 283
-#define NOT 284
-#define IGUAL 285
-#define DIFERENTE 286
-#define MENOR_IGUAL 287
-#define MAIOR_IGUAL 288
-#define MENOR 289
-#define MAIOR 290
-#define MAIS 291
-#define MENOS 292
-#define ASTERISCO 293
-#define NUMERO 294
-#define READ 295
-#define WRITE 296
-#define LOWER_THAN_ELSE 297
-
-
-
-
-/* Copy the first part of user declarations.  */
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
+
+
+
+/* First part of user prologue.  */
 #line 6 "compilador.y"
 
 #include <stdio.h>
@@ -180,69 +93,239 @@ int val_ou_ref;
 int atr_indireto;
 
 
+#line 97 "compilador.tab.c"
 
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
+# ifndef YY_CAST
+#  ifdef __cplusplus
+#   define YY_CAST(Type, Val) static_cast<Type> (Val)
+#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
+#  else
+#   define YY_CAST(Type, Val) ((Type) (Val))
+#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
+#  endif
+# endif
+# ifndef YY_NULLPTR
+#  if defined __cplusplus
+#   if 201103L <= __cplusplus
+#    define YY_NULLPTR nullptr
+#   else
+#    define YY_NULLPTR 0
+#   endif
+#  else
+#   define YY_NULLPTR ((void*)0)
+#  endif
+# endif
 
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
+#include "compilador.tab.h"
+/* Symbol kind.  */
+enum yysymbol_kind_t
+{
+  YYSYMBOL_YYEMPTY = -2,
+  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
+  YYSYMBOL_YYerror = 1,                    /* error  */
+  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
+  YYSYMBOL_PROGRAM = 3,                    /* PROGRAM  */
+  YYSYMBOL_ABRE_PARENTESES = 4,            /* ABRE_PARENTESES  */
+  YYSYMBOL_FECHA_PARENTESES = 5,           /* FECHA_PARENTESES  */
+  YYSYMBOL_VIRGULA = 6,                    /* VIRGULA  */
+  YYSYMBOL_PONTO_E_VIRGULA = 7,            /* PONTO_E_VIRGULA  */
+  YYSYMBOL_DOIS_PONTOS = 8,                /* DOIS_PONTOS  */
+  YYSYMBOL_PONTO = 9,                      /* PONTO  */
+  YYSYMBOL_T_BEGIN = 10,                   /* T_BEGIN  */
+  YYSYMBOL_T_END = 11,                     /* T_END  */
+  YYSYMBOL_VAR = 12,                       /* VAR  */
+  YYSYMBOL_IDENT = 13,                     /* IDENT  */
+  YYSYMBOL_ATRIBUICAO = 14,                /* ATRIBUICAO  */
+  YYSYMBOL_LABEL = 15,                     /* LABEL  */
+  YYSYMBOL_TYPE = 16,                      /* TYPE  */
+  YYSYMBOL_ARRAY = 17,                     /* ARRAY  */
+  YYSYMBOL_PROCEDURE = 18,                 /* PROCEDURE  */
+  YYSYMBOL_FUNCTION = 19,                  /* FUNCTION  */
+  YYSYMBOL_GOTO = 20,                      /* GOTO  */
+  YYSYMBOL_IF = 21,                        /* IF  */
+  YYSYMBOL_THEN = 22,                      /* THEN  */
+  YYSYMBOL_ELSE = 23,                      /* ELSE  */
+  YYSYMBOL_WHILE = 24,                     /* WHILE  */
+  YYSYMBOL_DO = 25,                        /* DO  */
+  YYSYMBOL_OR = 26,                        /* OR  */
+  YYSYMBOL_DIV = 27,                       /* DIV  */
+  YYSYMBOL_AND = 28,                       /* AND  */
+  YYSYMBOL_NOT = 29,                       /* NOT  */
+  YYSYMBOL_IGUAL = 30,                     /* IGUAL  */
+  YYSYMBOL_DIFERENTE = 31,                 /* DIFERENTE  */
+  YYSYMBOL_MENOR_IGUAL = 32,               /* MENOR_IGUAL  */
+  YYSYMBOL_MAIOR_IGUAL = 33,               /* MAIOR_IGUAL  */
+  YYSYMBOL_MENOR = 34,                     /* MENOR  */
+  YYSYMBOL_MAIOR = 35,                     /* MAIOR  */
+  YYSYMBOL_MAIS = 36,                      /* MAIS  */
+  YYSYMBOL_MENOS = 37,                     /* MENOS  */
+  YYSYMBOL_ASTERISCO = 38,                 /* ASTERISCO  */
+  YYSYMBOL_NUMERO = 39,                    /* NUMERO  */
+  YYSYMBOL_READ = 40,                      /* READ  */
+  YYSYMBOL_WRITE = 41,                     /* WRITE  */
+  YYSYMBOL_FORWARD = 42,                   /* FORWARD  */
+  YYSYMBOL_LOWER_THAN_ELSE = 43,           /* LOWER_THAN_ELSE  */
+  YYSYMBOL_YYACCEPT = 44,                  /* $accept  */
+  YYSYMBOL_programa = 45,                  /* programa  */
+  YYSYMBOL_46_1 = 46,                      /* $@1  */
+  YYSYMBOL_bloco = 47,                     /* bloco  */
+  YYSYMBOL_48_2 = 48,                      /* $@2  */
+  YYSYMBOL_49_3 = 49,                      /* $@3  */
+  YYSYMBOL_parte_declara_rotulos = 50,     /* parte_declara_rotulos  */
+  YYSYMBOL_parte_declara_vars = 51,        /* parte_declara_vars  */
+  YYSYMBOL_var = 52,                       /* var  */
+  YYSYMBOL_53_4 = 53,                      /* $@4  */
+  YYSYMBOL_declara_vars = 54,              /* declara_vars  */
+  YYSYMBOL_declara_var = 55,               /* declara_var  */
+  YYSYMBOL_56_5 = 56,                      /* $@5  */
+  YYSYMBOL_57_6 = 57,                      /* $@6  */
+  YYSYMBOL_tipo = 58,                      /* tipo  */
+  YYSYMBOL_lista_id_var = 59,              /* lista_id_var  */
+  YYSYMBOL_lista_idents = 60,              /* lista_idents  */
+  YYSYMBOL_parte_declara_subrotinas = 61,  /* parte_declara_subrotinas  */
+  YYSYMBOL_declaracao_procedimento = 62,   /* declaracao_procedimento  */
+  YYSYMBOL_63_7 = 63,                      /* $@7  */
+  YYSYMBOL_64_8 = 64,                      /* $@8  */
+  YYSYMBOL_inicializa_procedimento = 65,   /* inicializa_procedimento  */
+  YYSYMBOL_66_9 = 66,                      /* $@9  */
+  YYSYMBOL_67_10 = 67,                     /* $@10  */
+  YYSYMBOL_declaracao_funcao = 68,         /* declaracao_funcao  */
+  YYSYMBOL_69_11 = 69,                     /* $@11  */
+  YYSYMBOL_70_12 = 70,                     /* $@12  */
+  YYSYMBOL_71_13 = 71,                     /* $@13  */
+  YYSYMBOL_parametros_ou_nada = 72,        /* parametros_ou_nada  */
+  YYSYMBOL_73_14 = 73,                     /* $@14  */
+  YYSYMBOL_74_15 = 74,                     /* $@15  */
+  YYSYMBOL_paramentros_formais = 75,       /* paramentros_formais  */
+  YYSYMBOL_secao_pfs = 76,                 /* secao_pfs  */
+  YYSYMBOL_77_16 = 77,                     /* $@16  */
+  YYSYMBOL_78_17 = 78,                     /* $@17  */
+  YYSYMBOL_lista_id_pf = 79,               /* lista_id_pf  */
+  YYSYMBOL_parametro = 80,                 /* parametro  */
+  YYSYMBOL_comando_composto = 81,          /* comando_composto  */
+  YYSYMBOL_comandos = 82,                  /* comandos  */
+  YYSYMBOL_comando = 83,                   /* comando  */
+  YYSYMBOL_comando_sem_rotulo = 84,        /* comando_sem_rotulo  */
+  YYSYMBOL_atribuicao_ou_procedimento = 85, /* atribuicao_ou_procedimento  */
+  YYSYMBOL_86_18 = 86,                     /* $@18  */
+  YYSYMBOL_atribuicao_ou_procedimento_token = 87, /* atribuicao_ou_procedimento_token  */
+  YYSYMBOL_atribuicao = 88,                /* atribuicao  */
+  YYSYMBOL_89_19 = 89,                     /* $@19  */
+  YYSYMBOL_chamada_procedimento = 90,      /* chamada_procedimento  */
+  YYSYMBOL_91_20 = 91,                     /* $@20  */
+  YYSYMBOL_lista_parametros = 92,          /* lista_parametros  */
+  YYSYMBOL_lista_parametros_parenteses = 93, /* lista_parametros_parenteses  */
+  YYSYMBOL_94_21 = 94,                     /* $@21  */
+  YYSYMBOL_95_22 = 95,                     /* $@22  */
+  YYSYMBOL_leitura = 96,                   /* leitura  */
+  YYSYMBOL_lista_leituras = 97,            /* lista_leituras  */
+  YYSYMBOL_simb_leitura = 98,              /* simb_leitura  */
+  YYSYMBOL_escrita = 99,                   /* escrita  */
+  YYSYMBOL_lista_escritas = 100,           /* lista_escritas  */
+  YYSYMBOL_expressao = 101,                /* expressao  */
+  YYSYMBOL_expressao_simples = 102,        /* expressao_simples  */
+  YYSYMBOL_termo = 103,                    /* termo  */
+  YYSYMBOL_fator = 104,                    /* fator  */
+  YYSYMBOL_105_23 = 105,                   /* $@23  */
+  YYSYMBOL_numero = 106,                   /* numero  */
+  YYSYMBOL_comando_repetitivo = 107,       /* comando_repetitivo  */
+  YYSYMBOL_108_24 = 108,                   /* $@24  */
+  YYSYMBOL_109_25 = 109,                   /* $@25  */
+  YYSYMBOL_comando_condicional = 110,      /* comando_condicional  */
+  YYSYMBOL_cond_else = 111,                /* cond_else  */
+  YYSYMBOL_if_then = 112,                  /* if_then  */
+  YYSYMBOL_113_26 = 113                    /* $@26  */
+};
+typedef enum yysymbol_kind_t yysymbol_kind_t;
 
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
 
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
 
 
+#ifdef short
+# undef short
+#endif
 
-/* Copy the second part of user declarations.  */
+/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
+   <limits.h> and (if available) <stdint.h> are included
+   so that the code can choose integer types of a good width.  */
 
+#ifndef __PTRDIFF_MAX__
+# include <limits.h> /* INFRINGES ON USER NAME SPACE */
+# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
+#  define YY_STDINT_H
+# endif
+#endif
 
-/* Line 216 of yacc.c.  */
-#line 216 "compilador.tab.c"
+/* Narrow types that promote to a signed type and that can represent a
+   signed or unsigned integer of at least N bits.  In tables they can
+   save space and decrease cache pressure.  Promoting to a signed type
+   helps avoid bugs in integer arithmetic.  */
 
-#ifdef short
-# undef short
+#ifdef __INT_LEAST8_MAX__
+typedef __INT_LEAST8_TYPE__ yytype_int8;
+#elif defined YY_STDINT_H
+typedef int_least8_t yytype_int8;
+#else
+typedef signed char yytype_int8;
 #endif
 
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
+#ifdef __INT_LEAST16_MAX__
+typedef __INT_LEAST16_TYPE__ yytype_int16;
+#elif defined YY_STDINT_H
+typedef int_least16_t yytype_int16;
 #else
-typedef unsigned char yytype_uint8;
+typedef short yytype_int16;
 #endif
 
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
+/* Work around bug in HP-UX 11.23, which defines these macros
+   incorrectly for preprocessor constants.  This workaround can likely
+   be removed in 2023, as HPE has promised support for HP-UX 11.23
+   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
 #endif
 
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
+#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST8_TYPE__ yytype_uint8;
+#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
+       && UINT_LEAST8_MAX <= INT_MAX)
+typedef uint_least8_t yytype_uint8;
+#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
+typedef unsigned char yytype_uint8;
 #else
-typedef unsigned short int yytype_uint16;
+typedef short yytype_uint8;
 #endif
 
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
+#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST16_TYPE__ yytype_uint16;
+#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
+       && UINT_LEAST16_MAX <= INT_MAX)
+typedef uint_least16_t yytype_uint16;
+#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
+typedef unsigned short yytype_uint16;
 #else
-typedef short int yytype_int16;
+typedef int yytype_uint16;
+#endif
+
+#ifndef YYPTRDIFF_T
+# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
+#  define YYPTRDIFF_T __PTRDIFF_TYPE__
+#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
+# elif defined PTRDIFF_MAX
+#  ifndef ptrdiff_t
+#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  endif
+#  define YYPTRDIFF_T ptrdiff_t
+#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
+# else
+#  define YYPTRDIFF_T long
+#  define YYPTRDIFF_MAXIMUM LONG_MAX
+# endif
 #endif
 
 #ifndef YYSIZE_T
@@ -250,55 +333,106 @@ typedef short int yytype_int16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
-#  define YYSIZE_T unsigned int
+#  define YYSIZE_T unsigned
 # endif
 #endif
 
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+#define YYSIZE_MAXIMUM                                  \
+  YY_CAST (YYPTRDIFF_T,                                 \
+           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
+            ? YYPTRDIFF_MAXIMUM                         \
+            : YY_CAST (YYSIZE_T, -1)))
+
+#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
+
+
+/* Stored state numbers (used for stacks). */
+typedef yytype_uint8 yy_state_t;
+
+/* State numbers in computations.  */
+typedef int yy_state_fast_t;
 
 #ifndef YY_
 # if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
 #  endif
 # endif
 # ifndef YY_
-#  define YY_(msgid) msgid
+#  define YY_(Msgid) Msgid
+# endif
+#endif
+
+
+#ifndef YY_ATTRIBUTE_PURE
+# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
+#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define YY_ATTRIBUTE_PURE
+# endif
+#endif
+
+#ifndef YY_ATTRIBUTE_UNUSED
+# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
+#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+# else
+#  define YY_ATTRIBUTE_UNUSED
 # endif
 #endif
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
+# define YY_USE(E) ((void) (E))
 #else
-# define YYUSE(e) /* empty */
+# define YY_USE(E) /* empty */
 #endif
 
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
+/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
+    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
+    _Pragma ("GCC diagnostic pop")
 #else
-static int
-YYID (i)
-    int i;
+# define YY_INITIAL_VALUE(Value) Value
 #endif
-{
-  return i;
-}
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
 #endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
+#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
+# define YY_IGNORE_USELESS_CAST_BEGIN                          \
+    _Pragma ("GCC diagnostic push")                            \
+    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
+# define YY_IGNORE_USELESS_CAST_END            \
+    _Pragma ("GCC diagnostic pop")
+#endif
+#ifndef YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_END
+#endif
+
+
+#define YY_ASSERT(E) ((void) (0 && (E)))
 
-#if ! defined yyoverflow || YYERROR_VERBOSE
+#if !defined yyoverflow
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -315,11 +449,11 @@ YYID (i)
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef _STDLIB_H
-#      define _STDLIB_H 1
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
+#     ifndef EXIT_SUCCESS
+#      define EXIT_SUCCESS 0
 #     endif
 #    endif
 #   endif
@@ -327,8 +461,8 @@ YYID (i)
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+   /* Pacify GCC's 'empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
@@ -342,111 +476,117 @@ YYID (i)
 #  ifndef YYSTACK_ALLOC_MAXIMUM
 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif
-#  if (defined __cplusplus && ! defined _STDLIB_H \
+#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-	     && (defined YYFREE || defined free)))
+             && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef _STDLIB_H
-#    define _STDLIB_H 1
+#   ifndef EXIT_SUCCESS
+#    define EXIT_SUCCESS 0
 #   endif
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined malloc && ! defined EXIT_SUCCESS
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
+#   if ! defined free && ! defined EXIT_SUCCESS
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 # endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
+#endif /* !defined yyoverflow */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yy_state_t yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
 
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  YYSIZE_T yyi;				\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (YYID (0))
-#  endif
-# endif
+# define YYCOPY_NEEDED 1
 
 /* Relocate STACK from its old location to the new one.  The
    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack)					\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack, Stack, yysize);				\
-	Stack = &yyptr->Stack;						\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (YYID (0))
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
+    do                                                                  \
+      {                                                                 \
+        YYPTRDIFF_T yynewbytes;                                         \
+        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+        Stack = &yyptr->Stack_alloc;                                    \
+        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
+        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
+      }                                                                 \
+    while (0)
 
 #endif
 
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
+#  else
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYPTRDIFF_T yyi;                      \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
+      while (0)
+#  endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  3
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   140
+#define YYLAST   141
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  43
+#define YYNTOKENS  44
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  67
+#define YYNNTS  70
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  104
-/* YYNRULES -- Number of states.  */
-#define YYNSTATES  176
+#define YYNRULES  108
+/* YYNSTATES -- Number of states.  */
+#define YYNSTATES  185
+
+/* YYMAXUTOK -- Last valid token kind.  */
+#define YYMAXUTOK   298
 
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   297
 
-#define YYTRANSLATE(YYX)						\
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, with out-of-bounds checking.  */
+#define YYTRANSLATE(YYX)                                \
+  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
+   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
+   : YYSYMBOL_YYUNDEF)
 
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const yytype_uint8 yytranslate[] =
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex.  */
+static const yytype_int8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -477,383 +617,289 @@ static const yytype_uint8 yytranslate[] =
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42
+      35,    36,    37,    38,    39,    40,    41,    42,    43
 };
 
 #if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint16 yyprhs[] =
-{
-       0,     0,     3,     4,    14,    15,    16,    23,    26,    27,
-      29,    30,    34,    35,    38,    40,    41,    42,    49,    51,
-      55,    57,    61,    63,    66,    68,    69,    70,    71,    80,
-      81,    82,    83,    95,    96,    97,   103,   104,   106,   110,
-     111,   117,   118,   123,   127,   129,   131,   135,   139,   142,
-     143,   147,   149,   151,   153,   155,   157,   159,   161,   162,
-     166,   168,   170,   171,   175,   176,   179,   183,   184,   185,
-     190,   191,   194,   199,   203,   205,   207,   212,   216,   218,
-     222,   226,   230,   234,   238,   242,   244,   248,   252,   254,
-     258,   262,   264,   265,   269,   271,   275,   277,   278,   279,
-     286,   289,   292,   293,   294
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int8 yyrhs[] =
-{
-      44,     0,    -1,    -1,    45,     3,    13,     4,    59,     5,
-       7,    46,     9,    -1,    -1,    -1,    49,    50,    47,    60,
-      48,    77,    -1,    15,     6,    -1,    -1,    51,    -1,    -1,
-      52,    12,    53,    -1,    -1,    53,    54,    -1,    54,    -1,
-      -1,    -1,    55,    58,     8,    57,    56,     7,    -1,    13,
-      -1,    58,     6,    13,    -1,    13,    -1,    59,     6,    13,
-      -1,    13,    -1,    60,    61,    -1,    64,    -1,    -1,    -1,
-      -1,    18,    13,    62,    68,     7,    46,    63,     7,    -1,
-      -1,    -1,    -1,    19,    13,    65,    68,     8,    66,    57,
-       7,    46,    67,     7,    -1,    -1,    -1,     4,    69,    71,
-      70,     5,    -1,    -1,    72,    -1,    71,     7,    72,    -1,
-      -1,    12,    73,    75,     8,    57,    -1,    -1,    74,    75,
-       8,    57,    -1,    76,     6,    75,    -1,    76,    -1,    13,
-      -1,    10,    78,    11,    -1,    79,     7,    78,    -1,    79,
-       7,    -1,    -1,   102,     8,    80,    -1,    80,    -1,    81,
-      -1,    77,    -1,   106,    -1,   103,    -1,    92,    -1,    95,
-      -1,    -1,    13,    82,    83,    -1,    84,    -1,    86,    -1,
-      -1,    85,    14,    98,    -1,    -1,    87,    88,    -1,     4,
-      89,     5,    -1,    -1,    -1,    89,     6,    90,    98,    -1,
-      -1,    91,    98,    -1,    40,     4,    93,     5,    -1,    93,
-       6,    94,    -1,    94,    -1,    13,    -1,    41,     4,    96,
-       5,    -1,    96,     6,    98,    -1,    98,    -1,    97,    30,
-      98,    -1,    97,    31,    98,    -1,    97,    34,    98,    -1,
-      97,    32,    98,    -1,    97,    35,    98,    -1,    97,    33,
-      98,    -1,    98,    -1,    98,    36,    99,    -1,    98,    37,
-      99,    -1,    99,    -1,    99,    38,   100,    -1,    99,    27,
-     100,    -1,   100,    -1,    -1,    13,   101,    86,    -1,    39,
-      -1,     4,    97,     5,    -1,    39,    -1,    -1,    -1,   104,
-      24,    97,    25,   105,    80,    -1,   108,   107,    -1,    23,
-      80,    -1,    -1,    -1,    21,    97,   109,    22,    80,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+static const yytype_int16 yyrline[] =
 {
        0,    47,    47,    47,    63,    74,    60,    93,    94,    97,
      101,   101,   102,   105,   106,   110,   113,   110,   121,   134,
-     143,   154,   155,   159,   161,   162,   167,   191,   167,   205,
-     229,   233,   205,   246,   247,   245,   255,   258,   259,   263,
-     262,   272,   272,   280,   281,   284,   294,   297,   298,   299,
-     302,   303,   306,   307,   308,   309,   310,   311,   314,   314,
-     318,   319,   322,   322,   353,   353,   395,   398,   402,   401,
-     414,   414,   428,   431,   432,   435,   444,   447,   450,   455,
-     458,   461,   464,   467,   470,   473,   476,   482,   488,   491,
-     494,   497,   500,   500,   542,   552,   555,   557,   564,   557,
-     590,   597,   599,   602,   602
+     143,   154,   155,   159,   160,   161,   166,   193,   166,   203,
+     204,   217,   204,   232,   256,   260,   232,   273,   274,   272,
+     282,   285,   286,   290,   289,   299,   299,   307,   308,   311,
+     321,   324,   325,   326,   329,   330,   333,   334,   335,   336,
+     337,   338,   341,   341,   345,   346,   349,   349,   380,   380,
+     422,   425,   429,   428,   441,   441,   455,   458,   459,   462,
+     471,   474,   477,   482,   485,   488,   491,   494,   497,   502,
+     508,   514,   517,   520,   523,   526,   526,   571,   581,   582,
+     585,   587,   594,   587,   620,   627,   629,   632,   632
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/** Accessing symbol of state STATE.  */
+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
+
+#if YYDEBUG || 0
+/* The user-facing name of the symbol whose (internal) number is
+   YYSYMBOL.  No bounds checking.  */
+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
+
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "PROGRAM", "ABRE_PARENTESES",
-  "FECHA_PARENTESES", "VIRGULA", "PONTO_E_VIRGULA", "DOIS_PONTOS", "PONTO",
-  "T_BEGIN", "T_END", "VAR", "IDENT", "ATRIBUICAO", "LABEL", "TYPE",
-  "ARRAY", "PROCEDURE", "FUNCTION", "GOTO", "IF", "THEN", "ELSE", "WHILE",
-  "DO", "OR", "DIV", "AND", "NOT", "IGUAL", "DIFERENTE", "MENOR_IGUAL",
-  "MAIOR_IGUAL", "MENOR", "MAIOR", "MAIS", "MENOS", "ASTERISCO", "NUMERO",
-  "READ", "WRITE", "LOWER_THAN_ELSE", "$accept", "programa", "@1", "bloco",
-  "@2", "@3", "parte_declara_rotulos", "parte_declara_vars", "var", "@4",
-  "declara_vars", "declara_var", "@5", "@6", "tipo", "lista_id_var",
+  "\"end of file\"", "error", "\"invalid token\"", "PROGRAM",
+  "ABRE_PARENTESES", "FECHA_PARENTESES", "VIRGULA", "PONTO_E_VIRGULA",
+  "DOIS_PONTOS", "PONTO", "T_BEGIN", "T_END", "VAR", "IDENT", "ATRIBUICAO",
+  "LABEL", "TYPE", "ARRAY", "PROCEDURE", "FUNCTION", "GOTO", "IF", "THEN",
+  "ELSE", "WHILE", "DO", "OR", "DIV", "AND", "NOT", "IGUAL", "DIFERENTE",
+  "MENOR_IGUAL", "MAIOR_IGUAL", "MENOR", "MAIOR", "MAIS", "MENOS",
+  "ASTERISCO", "NUMERO", "READ", "WRITE", "FORWARD", "LOWER_THAN_ELSE",
+  "$accept", "programa", "$@1", "bloco", "$@2", "$@3",
+  "parte_declara_rotulos", "parte_declara_vars", "var", "$@4",
+  "declara_vars", "declara_var", "$@5", "$@6", "tipo", "lista_id_var",
   "lista_idents", "parte_declara_subrotinas", "declaracao_procedimento",
-  "@7", "@8", "declaracao_funcao", "@9", "@10", "@11",
-  "parametros_ou_nada", "@12", "@13", "paramentros_formais", "secao_pfs",
-  "@14", "@15", "lista_id_pf", "parametro", "comando_composto", "comandos",
-  "comando", "comando_sem_rotulo", "atribuicao_ou_procedimento", "@16",
-  "atribuicao_ou_procedimento_token", "atribuicao", "@17",
-  "chamada_procedimento", "@18", "lista_parametros",
-  "lista_parametros_parenteses", "@19", "@20", "leitura", "lista_leituras",
-  "simb_leitura", "escrita", "lista_escritas", "expressao",
-  "expressao_simples", "termo", "fator", "@21", "numero",
-  "comando_repetitivo", "@22", "@23", "comando_condicional", "cond_else",
-  "if_then", "@24", 0
+  "$@7", "$@8", "inicializa_procedimento", "$@9", "$@10",
+  "declaracao_funcao", "$@11", "$@12", "$@13", "parametros_ou_nada",
+  "$@14", "$@15", "paramentros_formais", "secao_pfs", "$@16", "$@17",
+  "lista_id_pf", "parametro", "comando_composto", "comandos", "comando",
+  "comando_sem_rotulo", "atribuicao_ou_procedimento", "$@18",
+  "atribuicao_ou_procedimento_token", "atribuicao", "$@19",
+  "chamada_procedimento", "$@20", "lista_parametros",
+  "lista_parametros_parenteses", "$@21", "$@22", "leitura",
+  "lista_leituras", "simb_leitura", "escrita", "lista_escritas",
+  "expressao", "expressao_simples", "termo", "fator", "$@23", "numero",
+  "comando_repetitivo", "$@24", "$@25", "comando_condicional", "cond_else",
+  "if_then", "$@26", YY_NULLPTR
 };
-#endif
 
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const yytype_uint16 yytoknum[] =
+static const char *
+yysymbol_name (yysymbol_kind_t yysymbol)
 {
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297
-};
-# endif
+  return yytname[yysymbol];
+}
+#endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    43,    45,    44,    47,    48,    46,    49,    49,    50,
-      52,    51,    51,    53,    53,    55,    56,    54,    57,    58,
-      58,    59,    59,    60,    60,    60,    62,    63,    61,    65,
-      66,    67,    64,    69,    70,    68,    68,    71,    71,    73,
-      72,    74,    72,    75,    75,    76,    77,    78,    78,    78,
-      79,    79,    80,    80,    80,    80,    80,    80,    82,    81,
-      83,    83,    85,    84,    87,    86,    88,    88,    90,    89,
-      91,    89,    92,    93,    93,    94,    95,    96,    96,    97,
-      97,    97,    97,    97,    97,    97,    98,    98,    98,    99,
-      99,    99,   101,   100,   100,   100,   102,   104,   105,   103,
-     106,   107,   107,   109,   108
-};
+#define YYPACT_NINF (-125)
+
+#define yypact_value_is_default(Yyn) \
+  ((Yyn) == YYPACT_NINF)
+
+#define YYTABLE_NINF (-102)
+
+#define yytable_value_is_error(Yyn) \
+  0
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+static const yytype_int8 yypact[] =
 {
-       0,     2,     0,     9,     0,     0,     6,     2,     0,     1,
-       0,     3,     0,     2,     1,     0,     0,     6,     1,     3,
-       1,     3,     1,     2,     1,     0,     0,     0,     8,     0,
-       0,     0,    11,     0,     0,     5,     0,     1,     3,     0,
-       5,     0,     4,     3,     1,     1,     3,     3,     2,     0,
-       3,     1,     1,     1,     1,     1,     1,     1,     0,     3,
-       1,     1,     0,     3,     0,     2,     3,     0,     0,     4,
-       0,     2,     4,     3,     1,     1,     4,     3,     1,     3,
-       3,     3,     3,     3,     3,     1,     3,     3,     1,     3,
-       3,     1,     0,     3,     1,     3,     1,     0,     0,     6,
-       2,     2,     0,     0,     5
+    -125,    15,     8,  -125,    16,    13,    38,  -125,    18,    57,
+      46,    63,  -125,    73,    76,    74,  -125,  -125,  -125,  -125,
+      75,     7,  -125,    78,    79,  -125,    47,     7,    80,  -125,
+      81,  -125,  -125,    85,    89,     7,    63,  -125,  -125,  -125,
+       4,    84,    84,    42,  -125,  -125,  -125,  -125,    86,    87,
+    -125,  -125,    90,  -125,     1,  -125,    93,    97,  -125,    91,
+      96,  -125,  -125,  -125,  -125,    98,  -125,    83,  -125,    88,
+     101,  -125,  -125,  -125,    92,   102,  -125,    99,     1,  -125,
+    -125,  -125,    37,   -20,  -125,   103,     1,  -125,    42,     9,
+       1,     9,  -125,  -125,   105,  -125,   107,  -125,   104,  -125,
+      87,  -125,  -125,   106,  -125,   111,   113,    11,  -125,   100,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+    -125,    22,  -125,    26,    17,  -125,  -125,    94,  -125,  -125,
+     104,    92,   116,  -125,   115,   118,   119,     1,  -125,  -125,
+    -125,  -125,  -125,     9,    17,    17,    17,    17,    17,    17,
+     -20,   -20,  -125,  -125,  -125,   103,  -125,     1,  -125,   117,
+    -125,  -125,    87,   104,    63,    17,    52,     1,  -125,  -125,
+      17,     9,    87,  -125,  -125,  -125,  -125,  -125,    17,  -125,
+    -125,   120,     1,  -125,    17
 };
 
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE does not specify something else to do.  Zero
    means the default is an error.  */
-static const yytype_uint8 yydefact[] =
+static const yytype_int8 yydefact[] =
 {
        2,     0,     0,     1,     0,     0,     0,    22,     0,     0,
        0,     8,    21,     0,     0,    12,     7,     3,     4,     9,
-       0,    25,    15,     0,     5,    24,    11,    14,     0,    29,
-       0,     0,    23,    13,    20,     0,    36,    26,    49,     6,
-       0,     0,    33,     0,    36,    58,     0,    96,     0,     0,
-      53,     0,     0,    51,    52,    56,    57,     0,    55,     0,
-      54,   102,    19,    18,    16,    41,    30,     0,    64,     0,
-      92,    94,   103,    85,    88,    91,     0,     0,    46,    48,
-      97,     0,    97,   100,     0,    39,    34,    37,     0,     0,
-       8,    59,    60,     0,    61,    67,     0,    64,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
-       0,    74,     0,    78,    47,    50,     0,   101,    17,     0,
-      41,     0,    45,     0,    44,     0,    27,     0,    70,    65,
-      95,    93,    79,    80,    82,    84,    81,    83,    97,    86,
-      87,    90,    89,    72,     0,    76,     0,    98,     0,    38,
-      35,     0,     0,     8,     0,    63,     0,     0,   104,    73,
-      77,    97,     0,    42,    43,    31,    28,    66,    68,    71,
-      99,    40,     0,     0,    32,    69
+       0,    25,    15,     0,     0,     5,    30,    25,    11,    14,
+       0,    26,    33,     0,     0,    25,     8,    24,    13,    20,
+       0,    40,    40,    53,     6,    29,    23,    31,     0,     0,
+      37,    27,     0,    62,     0,   100,     0,     0,    57,     0,
+       0,    55,    56,    60,    61,     0,    59,     0,    58,   106,
+       0,    19,    18,    16,    45,     0,    34,    68,     0,    95,
+      97,   107,     0,    91,    94,     0,     0,    50,    52,   101,
+       0,   101,   104,    32,     0,    43,    38,    41,     0,    28,
+       0,    63,    64,     0,    65,    71,     0,     0,    68,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      79,     0,    78,     0,    82,    51,    54,     0,   105,    17,
+       0,    45,     0,    49,     0,    48,     0,     0,    74,    69,
+      98,    99,    96,   101,    83,    84,    86,    88,    85,    87,
+      89,    90,    93,    92,    76,     0,    80,     0,   102,     0,
+      42,    39,     0,     0,     8,    67,     0,     0,   108,    77,
+      81,   101,     0,    46,    47,    35,    70,    72,    75,   103,
+      44,     0,     0,    36,    73
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int8 yypgoto[] =
+{
+    -125,  -125,  -125,   -36,  -125,  -125,  -125,  -125,  -125,  -125,
+    -125,    82,  -125,  -125,   -97,  -125,  -125,   -14,  -125,  -125,
+    -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,    95,  -125,
+    -125,  -125,    -2,  -125,  -125,  -124,  -125,   108,    43,  -125,
+     -87,  -125,  -125,  -125,  -125,  -125,    24,  -125,  -125,  -125,
+    -125,  -125,  -125,  -125,   -25,  -125,  -125,   -70,   -77,   -55,
+     -42,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
+static const yytype_uint8 yydefgoto[] =
 {
-      -1,     1,     2,    14,    21,    31,    15,    18,    19,    20,
-      26,    27,    28,    84,    64,    35,     8,    24,    32,    44,
-     154,    25,    36,    89,   172,    43,    65,   121,    86,    87,
-     119,    88,   123,   124,    50,    51,    52,    53,    54,    68,
-      91,    92,    93,    94,    95,   129,   156,   173,   157,    55,
-     110,   111,    56,   112,    72,    73,    74,    75,    97,    57,
-      58,    59,   161,    60,    83,    61,   104
+       0,     1,     2,    14,    21,    33,    15,    18,    19,    20,
+      28,    29,    30,    94,    73,    40,     8,    25,    26,    41,
+      75,    35,    36,    70,    27,    42,   100,   181,    51,    74,
+     132,    96,    97,   130,    98,   134,   135,    58,    59,    60,
+      61,    62,    77,   101,   102,   103,   104,   105,   139,   166,
+     182,   167,    63,   121,   122,    64,   123,    81,    82,    83,
+      84,   108,    65,    66,    67,   171,    68,    92,    69,   109
 };
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -114
-static const yytype_int8 yypact[] =
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule whose
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+static const yytype_int16 yytable[] =
 {
-    -114,    15,    14,  -114,    16,    32,    28,  -114,     7,    55,
-      50,    51,  -114,    62,    56,    58,  -114,  -114,  -114,  -114,
-      60,    52,  -114,    61,    63,  -114,    64,  -114,    66,  -114,
-      82,    87,  -114,  -114,  -114,     3,    69,  -114,     6,  -114,
-      85,    86,  -114,    68,    69,  -114,     1,  -114,    96,    97,
-    -114,    91,    98,  -114,  -114,  -114,  -114,    95,  -114,    80,
-    -114,    83,  -114,  -114,  -114,    99,  -114,   100,    94,     1,
-    -114,  -114,    59,    -4,     4,  -114,   101,     1,  -114,     6,
-      -3,     1,    -3,  -114,   102,  -114,   103,  -114,   104,    86,
-      51,  -114,  -114,   105,  -114,   108,    23,  -114,     1,     1,
-       1,     1,     1,     1,    93,     1,     1,     1,     1,  -114,
-      29,  -114,    38,    -4,  -114,  -114,    53,  -114,  -114,   104,
-      99,   111,  -114,   110,   107,   113,  -114,     1,  -114,  -114,
-    -114,  -114,    -4,    -4,    -4,    -4,    -4,    -4,    -3,     4,
-       4,  -114,  -114,  -114,   101,  -114,     1,  -114,   114,  -114,
-    -114,    86,   104,    51,   116,    -4,    43,     1,  -114,  -114,
-      -4,    -3,    86,  -114,  -114,  -114,  -114,  -114,  -114,    -4,
-    -114,  -114,   117,     1,  -114,    -4
+      47,   107,   126,   136,   128,    78,   159,   118,   106,   124,
+      48,     4,    49,    37,    79,     3,   141,     6,   119,    43,
+     127,    46,    53,     9,    10,    23,    24,   154,   155,     5,
+      54,   156,   157,   144,   145,   146,   147,   148,   149,   174,
+      80,   110,   111,   112,   113,   114,   115,   116,   117,    56,
+      57,     7,    43,   116,   117,    53,   168,   176,   177,    12,
+     165,   150,   151,    54,    11,   173,  -101,   110,   111,   112,
+     113,   114,   115,   116,   117,   180,   152,   153,    13,    16,
+     170,    55,    56,    57,   179,    17,   -10,    22,    50,    34,
+     178,    31,    32,   -15,    39,    43,    45,    85,    76,    71,
+      72,    86,    87,    88,    95,   184,    89,    90,    93,    99,
+      38,    91,   129,   -66,   131,   138,   120,   133,   140,   158,
+     137,   161,   143,   162,   163,   172,   164,   183,   175,   160,
+     169,   125,   142,     0,     0,     0,     0,    52,     0,     0,
+       0,    44
 };
 
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
+static const yytype_int16 yycheck[] =
 {
-    -114,  -114,  -114,   -86,  -114,  -114,  -114,  -114,  -114,  -114,
-    -114,   106,  -114,  -114,   -87,  -114,  -114,  -114,  -114,  -114,
-    -114,  -114,  -114,  -114,  -114,    77,  -114,  -114,  -114,     5,
-    -114,  -114,  -113,  -114,   109,    47,  -114,   -79,  -114,  -114,
-    -114,  -114,  -114,    30,  -114,  -114,  -114,  -114,  -114,  -114,
-    -114,   -16,  -114,  -114,   -61,   -77,   -54,   -47,  -114,  -114,
-    -114,  -114,  -114,  -114,  -114,  -114,  -114
+      36,    78,    89,   100,    91,     4,   130,    27,    78,    86,
+       6,     3,     8,    27,    13,     0,     5,     4,    38,    10,
+      90,    35,    13,     5,     6,    18,    19,     5,     6,    13,
+      21,     5,     6,   110,   111,   112,   113,   114,   115,   163,
+      39,    30,    31,    32,    33,    34,    35,    36,    37,    40,
+      41,    13,    10,    36,    37,    13,   143,     5,     6,    13,
+     137,   116,   117,    21,     7,   162,    24,    30,    31,    32,
+      33,    34,    35,    36,    37,   172,   118,   119,    15,     6,
+     157,    39,    40,    41,   171,     9,    12,    12,     4,    42,
+     167,    13,    13,    13,    13,    10,     7,     4,     8,    13,
+      13,     4,    11,     7,    12,   182,     8,    24,     7,     7,
+      28,    23,     7,    14,     7,     4,    13,    13,     5,    25,
+      14,     5,    22,     8,     6,     8,     7,     7,   164,   131,
+     155,    88,   108,    -1,    -1,    -1,    -1,    42,    -1,    -1,
+      -1,    33
 };
 
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -98
-static const yytype_int16 yytable[] =
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+   state STATE-NUM.  */
+static const yytype_int8 yystos[] =
 {
-     113,   115,   125,   117,   126,    69,   148,    38,    96,    40,
-      45,    41,     9,    10,    70,     3,    38,     4,    46,    45,
-     116,   132,   133,   134,   135,   136,   137,    46,   130,     5,
-     -97,   107,   105,   106,   143,   144,     6,    48,    49,   164,
-      71,     7,   108,   145,   146,    47,    48,    49,   167,   168,
-     155,   139,   140,    98,    99,   100,   101,   102,   103,   158,
-     141,   142,    11,    12,   163,    17,    13,   165,    16,   160,
-     -10,    23,    22,    42,    29,   171,    66,   -15,   147,    34,
-     169,    30,   170,    98,    99,   100,   101,   102,   103,    98,
-      99,   100,   101,   102,   103,    37,   175,    38,    62,    63,
-      76,    77,    78,    80,    81,    79,    82,    90,   -62,   118,
-     120,    85,   128,   152,   109,   138,   150,   122,   151,   127,
-     153,    67,   162,   166,   174,   149,   114,   131,   159,     0,
-       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
-      39
+       0,    45,    46,     0,     3,    13,     4,    13,    60,     5,
+       6,     7,    13,    15,    47,    50,     6,     9,    51,    52,
+      53,    48,    12,    18,    19,    61,    62,    68,    54,    55,
+      56,    13,    13,    49,    42,    65,    66,    61,    55,    13,
+      59,    63,    69,    10,    81,     7,    61,    47,     6,     8,
+       4,    72,    72,    13,    21,    39,    40,    41,    81,    82,
+      83,    84,    85,    96,    99,   106,   107,   108,   110,   112,
+      67,    13,    13,    58,    73,    64,     8,    86,     4,    13,
+      39,   101,   102,   103,   104,     4,     4,    11,     7,     8,
+      24,    23,   111,     7,    57,    12,    75,    76,    78,     7,
+      70,    87,    88,    89,    90,    91,   101,   102,   105,   113,
+      30,    31,    32,    33,    34,    35,    36,    37,    27,    38,
+      13,    97,    98,   100,   102,    82,    84,   101,    84,     7,
+      77,     7,    74,    13,    79,    80,    58,    14,     4,    92,
+       5,     5,    90,    22,   102,   102,   102,   102,   102,   102,
+     103,   103,   104,   104,     5,     6,     5,     6,    25,    79,
+      76,     5,     8,     6,     7,   102,    93,    95,    84,    98,
+     102,   109,     8,    58,    79,    47,     5,     6,   102,    84,
+      58,    71,    94,     7,   102
 };
 
-static const yytype_int16 yycheck[] =
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
+static const yytype_int8 yyr1[] =
 {
-      77,    80,    89,    82,    90,     4,   119,    10,    69,     6,
-      13,     8,     5,     6,    13,     0,    10,     3,    21,    13,
-      81,    98,    99,   100,   101,   102,   103,    21,     5,    13,
-      24,    27,    36,    37,     5,     6,     4,    40,    41,   152,
-      39,    13,    38,     5,     6,    39,    40,    41,     5,     6,
-     127,   105,   106,    30,    31,    32,    33,    34,    35,   138,
-     107,   108,     7,    13,   151,     9,    15,   153,     6,   146,
-      12,    19,    12,     4,    13,   162,     8,    13,    25,    13,
-     157,    18,   161,    30,    31,    32,    33,    34,    35,    30,
-      31,    32,    33,    34,    35,    13,   173,    10,    13,    13,
-       4,     4,    11,     8,    24,     7,    23,     7,    14,     7,
-       7,    12,     4,     6,    13,    22,     5,    13,     8,    14,
-       7,    44,     8,     7,     7,   120,    79,    97,   144,    -1,
-      -1,    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      31
+       0,    44,    46,    45,    48,    49,    47,    50,    50,    51,
+      53,    52,    52,    54,    54,    56,    57,    55,    58,    59,
+      59,    60,    60,    61,    61,    61,    63,    64,    62,    65,
+      66,    67,    65,    69,    70,    71,    68,    73,    74,    72,
+      72,    75,    75,    77,    76,    78,    76,    79,    79,    80,
+      81,    82,    82,    82,    83,    83,    84,    84,    84,    84,
+      84,    84,    86,    85,    87,    87,    89,    88,    91,    90,
+      92,    92,    94,    93,    95,    93,    96,    97,    97,    98,
+      99,   100,   100,   101,   101,   101,   101,   101,   101,   102,
+     102,   102,   103,   103,   103,   105,   104,   104,   104,   104,
+     106,   108,   109,   107,   110,   111,   111,   113,   112
 };
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const yytype_uint8 yystos[] =
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
+static const yytype_int8 yyr2[] =
 {
-       0,    44,    45,     0,     3,    13,     4,    13,    59,     5,
-       6,     7,    13,    15,    46,    49,     6,     9,    50,    51,
-      52,    47,    12,    19,    60,    64,    53,    54,    55,    13,
-      18,    48,    61,    54,    13,    58,    65,    13,    10,    77,
-       6,     8,     4,    68,    62,    13,    21,    39,    40,    41,
-      77,    78,    79,    80,    81,    92,    95,   102,   103,   104,
-     106,   108,    13,    13,    57,    69,     8,    68,    82,     4,
-      13,    39,    97,    98,    99,   100,     4,     4,    11,     7,
-       8,    24,    23,   107,    56,    12,    71,    72,    74,    66,
-       7,    83,    84,    85,    86,    87,    97,   101,    30,    31,
-      32,    33,    34,    35,   109,    36,    37,    27,    38,    13,
-      93,    94,    96,    98,    78,    80,    97,    80,     7,    73,
-       7,    70,    13,    75,    76,    57,    46,    14,     4,    88,
-       5,    86,    98,    98,    98,    98,    98,    98,    22,    99,
-      99,   100,   100,     5,     6,     5,     6,    25,    75,    72,
-       5,     8,     6,     7,    63,    98,    89,    91,    80,    94,
-      98,   105,     8,    57,    75,    46,     7,     5,     6,    98,
-      80,    57,    67,    90,     7,    98
+       0,     2,     0,     9,     0,     0,     6,     2,     0,     1,
+       0,     3,     0,     2,     1,     0,     0,     6,     1,     3,
+       1,     3,     1,     3,     2,     0,     0,     0,     6,     2,
+       0,     0,     4,     0,     0,     0,    11,     0,     0,     5,
+       0,     1,     3,     0,     5,     0,     4,     3,     1,     1,
+       3,     3,     2,     0,     3,     1,     1,     1,     1,     1,
+       1,     1,     0,     3,     1,     1,     0,     3,     0,     2,
+       3,     0,     0,     4,     0,     2,     4,     3,     1,     1,
+       4,     3,     1,     3,     3,     3,     3,     3,     3,     3,
+       3,     1,     3,     3,     1,     0,     3,     1,     3,     3,
+       1,     0,     0,     6,     2,     2,     0,     0,     5
 };
 
-#define yyerrok		(yyerrstatus = 0)
-#define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		(-2)
-#define YYEOF		0
 
-#define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
-#define YYERROR		goto yyerrorlab
+enum { YYENOMEM = -2 };
 
+#define yyerrok         (yyerrstatus = 0)
+#define yyclearin       (yychar = YYEMPTY)
 
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYACCEPT        goto yyacceptlab
+#define YYABORT         goto yyabortlab
+#define YYERROR         goto yyerrorlab
+#define YYNOMEM         goto yyexhaustedlab
 
-#define YYFAIL		goto yyerrlab
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)					\
-do								\
-  if (yychar == YYEMPTY && yylen == 1)				\
-    {								\
-      yychar = (Token);						\
-      yylval = (Value);						\
-      yytoken = YYTRANSLATE (yychar);				\
-      YYPOPSTACK (1);						\
-      goto yybackup;						\
-    }								\
-  else								\
-    {								\
-      yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;							\
-    }								\
-while (YYID (0))
-
-
-#define YYTERROR	1
-#define YYERRCODE	256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)				\
-    do									\
-      if (YYID (N))                                                    \
-	{								\
-	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
-	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
-	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
-	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
-	}								\
-      else								\
-	{								\
-	  (Current).first_line   = (Current).last_line   =		\
-	    YYRHSLOC (Rhs, 0).last_line;				\
-	  (Current).first_column = (Current).last_column =		\
-	    YYRHSLOC (Rhs, 0).last_column;				\
-	}								\
-    while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
-   This macro was not mandated originally: define only if we know
-   we won't break user code: when these are the locations we know.  */
-
-#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-#  define YY_LOCATION_PRINT(File, Loc)			\
-     fprintf (File, "%d.%d-%d.%d",			\
-	      (Loc).first_line, (Loc).first_column,	\
-	      (Loc).last_line,  (Loc).last_column)
-# else
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
+#define YYBACKUP(Token, Value)                                    \
+  do                                                              \
+    if (yychar == YYEMPTY)                                        \
+      {                                                           \
+        yychar = (Token);                                         \
+        yylval = (Value);                                         \
+        YYPOPSTACK (yylen);                                       \
+        yystate = *yyssp;                                         \
+        goto yybackup;                                            \
+      }                                                           \
+    else                                                          \
+      {                                                           \
+        yyerror (YY_("syntax error: cannot back up")); \
+        YYERROR;                                                  \
+      }                                                           \
+  while (0)
+
+/* Backward compatibility with an undocumented macro.
+   Use YYerror or YYUNDEF. */
+#define YYERRCODE YYUNDEF
 
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -863,80 +909,58 @@ while (YYID (0))
 #  define YYFPRINTF fprintf
 # endif
 
-# define YYDPRINTF(Args)			\
-do {						\
-  if (yydebug)					\
-    YYFPRINTF Args;				\
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
-do {									  \
-  if (yydebug)								  \
-    {									  \
-      YYFPRINTF (stderr, "%s ", Title);					  \
-      yy_symbol_print (stderr,						  \
-		  Type, Value); \
-      YYFPRINTF (stderr, "\n");						  \
-    }									  \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
+# define YYDPRINTF(Args)                        \
+do {                                            \
+  if (yydebug)                                  \
+    YYFPRINTF Args;                             \
+} while (0)
+
+
+
+
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
+do {                                                                      \
+  if (yydebug)                                                            \
+    {                                                                     \
+      YYFPRINTF (stderr, "%s ", Title);                                   \
+      yy_symbol_print (stderr,                                            \
+                  Kind, Value); \
+      YYFPRINTF (stderr, "\n");                                           \
+    }                                                                     \
+} while (0)
+
+
+/*-----------------------------------.
+| Print this symbol's value on YYO.  |
+`-----------------------------------*/
+
 static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-#endif
+yy_symbol_value_print (FILE *yyo,
+                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
+  FILE *yyoutput = yyo;
+  YY_USE (yyoutput);
   if (!yyvaluep)
     return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
-# endif
-  switch (yytype)
-    {
-      default:
-	break;
-    }
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  YY_USE (yykind);
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+/*---------------------------.
+| Print this symbol on YYO.  |
+`---------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
 static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-#endif
+yy_symbol_print (FILE *yyo,
+                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+  YYFPRINTF (yyo, "%s %s (",
+             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
 
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-  YYFPRINTF (yyoutput, ")");
+  yy_symbol_value_print (yyo, yykind, yyvaluep);
+  YYFPRINTF (yyo, ")");
 }
 
 /*------------------------------------------------------------------.
@@ -944,80 +968,68 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
-#else
-static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
-#endif
+yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
-# define YY_STACK_PRINT(Bottom, Top)				\
-do {								\
-  if (yydebug)							\
-    yy_stack_print ((Bottom), (Top));				\
-} while (YYID (0))
+# define YY_STACK_PRINT(Bottom, Top)                            \
+do {                                                            \
+  if (yydebug)                                                  \
+    yy_stack_print ((Bottom), (Top));                           \
+} while (0)
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
-    YYSTYPE *yyvsp;
-    int yyrule;
-#endif
+yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
+                 int yyrule)
 {
+  int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
   int yyi;
-  unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-	     yyrule - 1, yylno);
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
+             yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-		       &(yyvsp[(yyi + 1) - (yynrhs)])
-		       		       );
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr,
+                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
+                       &yyvsp[(yyi + 1) - (yynrhs)]);
+      YYFPRINTF (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)		\
-do {					\
-  if (yydebug)				\
-    yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
+# define YY_REDUCE_PRINT(Rule)          \
+do {                                    \
+  if (yydebug)                          \
+    yy_reduce_print (yyssp, yyvsp, Rule); \
+} while (0)
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YYDPRINTF(Args) ((void) 0)
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
 # define YY_STACK_PRINT(Bottom, Top)
 # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef	YYINITDEPTH
+#ifndef YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
 
@@ -1032,478 +1044,219 @@ int yydebug;
 # define YYMAXDEPTH 10000
 #endif
 
-
 
-#if YYERROR_VERBOSE
 
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
 
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-	switch (*++yyp)
-	  {
-	  case '\'':
-	  case ',':
-	    goto do_not_strip_quotes;
-
-	  case '\\':
-	    if (*++yyp != '\\')
-	      goto do_not_strip_quotes;
-	    /* Fall through.  */
-	  default:
-	    if (yyres)
-	      yyres[yyn] = *yyp;
-	    yyn++;
-	    break;
-
-	  case '"':
-	    if (yyres)
-	      yyres[yyn] = '\0';
-	    return yyn;
-	  }
-    do_not_strip_quotes: ;
-    }
 
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into YYRESULT an error message about the unexpected token
-   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
-   including the terminating null byte.  If YYRESULT is null, do not
-   copy anything; just return the number of bytes that would be
-   copied.  As a special case, return 0 if an ordinary "syntax error"
-   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
-   size calculation.  */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
-  int yyn = yypact[yystate];
-
-  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-    return 0;
-  else
-    {
-      int yytype = YYTRANSLATE (yychar);
-      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-      YYSIZE_T yysize = yysize0;
-      YYSIZE_T yysize1;
-      int yysize_overflow = 0;
-      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-      int yyx;
-
-# if 0
-      /* This is so xgettext sees the translatable formats that are
-	 constructed on the fly.  */
-      YY_("syntax error, unexpected %s");
-      YY_("syntax error, unexpected %s, expecting %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
-      char *yyfmt;
-      char const *yyf;
-      static char const yyunexpected[] = "syntax error, unexpected %s";
-      static char const yyexpecting[] = ", expecting %s";
-      static char const yyor[] = " or %s";
-      char yyformat[sizeof yyunexpected
-		    + sizeof yyexpecting - 1
-		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-		       * (sizeof yyor - 1))];
-      char const *yyprefix = yyexpecting;
-
-      /* Start YYX at -YYN if negative to avoid negative indexes in
-	 YYCHECK.  */
-      int yyxbegin = yyn < 0 ? -yyn : 0;
-
-      /* Stay within bounds of both yycheck and yytname.  */
-      int yychecklim = YYLAST - yyn + 1;
-      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-      int yycount = 1;
-
-      yyarg[0] = yytname[yytype];
-      yyfmt = yystpcpy (yyformat, yyunexpected);
-
-      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-	  {
-	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-	      {
-		yycount = 1;
-		yysize = yysize0;
-		yyformat[sizeof yyunexpected - 1] = '\0';
-		break;
-	      }
-	    yyarg[yycount++] = yytname[yyx];
-	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-	    yysize_overflow |= (yysize1 < yysize);
-	    yysize = yysize1;
-	    yyfmt = yystpcpy (yyfmt, yyprefix);
-	    yyprefix = yyor;
-	  }
-
-      yyf = YY_(yyformat);
-      yysize1 = yysize + yystrlen (yyf);
-      yysize_overflow |= (yysize1 < yysize);
-      yysize = yysize1;
-
-      if (yysize_overflow)
-	return YYSIZE_MAXIMUM;
-
-      if (yyresult)
-	{
-	  /* Avoid sprintf, as that infringes on the user's name space.
-	     Don't have undefined behavior even if the translation
-	     produced a string with the wrong number of "%s"s.  */
-	  char *yyp = yyresult;
-	  int yyi = 0;
-	  while ((*yyp = *yyf) != '\0')
-	    {
-	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-		{
-		  yyp += yytnamerr (yyp, yyarg[yyi++]);
-		  yyf += 2;
-		}
-	      else
-		{
-		  yyp++;
-		  yyf++;
-		}
-	    }
-	}
-      return yysize;
-    }
-}
-#endif /* YYERROR_VERBOSE */
-
 
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
+yydestruct (const char *yymsg,
+            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
 {
-  YYUSE (yyvaluep);
-
+  YY_USE (yyvaluep);
   if (!yymsg)
     yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  switch (yytype)
-    {
+  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 
-      default:
-	break;
-    }
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  YY_USE (yykind);
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
-
-
-/* Prevent warnings from -Wmissing-prototypes.  */
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
-
-
-/* The look-ahead symbol.  */
+/* Lookahead token kind.  */
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
-
 /* Number of syntax errors so far.  */
 int yynerrs;
 
 
 
+
 /*----------.
 | yyparse.  |
 `----------*/
 
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
 {
-  
-  int yystate;
-  int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Look-ahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
+    yy_state_fast_t yystate = 0;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus = 0;
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
+    /* Refer to the stacks through separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+    /* Their size.  */
+    YYPTRDIFF_T yystacksize = YYINITDEPTH;
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
+    /* The state stack: array, bottom, top.  */
+    yy_state_t yyssa[YYINITDEPTH];
+    yy_state_t *yyss = yyssa;
+    yy_state_t *yyssp = yyss;
 
+    /* The semantic value stack: array, bottom, top.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs = yyvsa;
+    YYSTYPE *yyvsp = yyvs;
 
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
-
+  int yyn;
+  /* The return value of yyparse.  */
+  int yyresult;
+  /* Lookahead symbol kind.  */
+  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
 
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
 
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY;		/* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-
-  yyssp = yyss;
-  yyvsp = yyvs;
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   goto yysetstate;
 
+
 /*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
+| yynewstate -- push a new state, which is found in yystate.  |
 `------------------------------------------------------------*/
- yynewstate:
+yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
- yysetstate:
-  *yyssp = yystate;
+
+/*--------------------------------------------------------------------.
+| yysetstate -- set current state (the top of the stack) to yystate.  |
+`--------------------------------------------------------------------*/
+yysetstate:
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
+  YY_IGNORE_USELESS_CAST_BEGIN
+  *yyssp = YY_CAST (yy_state_t, yystate);
+  YY_IGNORE_USELESS_CAST_END
+  YY_STACK_PRINT (yyss, yyssp);
 
   if (yyss + yystacksize - 1 <= yyssp)
+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
+    YYNOMEM;
+#else
     {
       /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
+      YYPTRDIFF_T yysize = yyssp - yyss + 1;
 
-#ifdef yyoverflow
+# if defined yyoverflow
       {
-	/* Give user a chance to reallocate the stack.  Use copies of
-	   these so that the &'s don't force the real ones into
-	   memory.  */
-	YYSTYPE *yyvs1 = yyvs;
-	yytype_int16 *yyss1 = yyss;
-
-
-	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
-	yyoverflow (YY_("memory exhausted"),
-		    &yyss1, yysize * sizeof (*yyssp),
-		    &yyvs1, yysize * sizeof (*yyvsp),
-
-		    &yystacksize);
-
-	yyss = yyss1;
-	yyvs = yyvs1;
+        /* Give user a chance to reallocate the stack.  Use copies of
+           these so that the &'s don't force the real ones into
+           memory.  */
+        yy_state_t *yyss1 = yyss;
+        YYSTYPE *yyvs1 = yyvs;
+
+        /* Each stack pointer address is followed by the size of the
+           data in use in that stack, in bytes.  This used to be a
+           conditional around just the two extra args, but that might
+           be undefined if yyoverflow is a macro.  */
+        yyoverflow (YY_("memory exhausted"),
+                    &yyss1, yysize * YYSIZEOF (*yyssp),
+                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
+                    &yystacksize);
+        yyss = yyss1;
+        yyvs = yyvs1;
       }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
+# else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-	goto yyexhaustedlab;
+        YYNOMEM;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-	yystacksize = YYMAXDEPTH;
+        yystacksize = YYMAXDEPTH;
 
       {
-	yytype_int16 *yyss1 = yyss;
-	union yyalloc *yyptr =
-	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-	if (! yyptr)
-	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss);
-	YYSTACK_RELOCATE (yyvs);
-
+        yy_state_t *yyss1 = yyss;
+        union yyalloc *yyptr =
+          YY_CAST (union yyalloc *,
+                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
+        if (! yyptr)
+          YYNOMEM;
+        YYSTACK_RELOCATE (yyss_alloc, yyss);
+        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
-	if (yyss1 != yyssa)
-	  YYSTACK_FREE (yyss1);
+        if (yyss1 != yyssa)
+          YYSTACK_FREE (yyss1);
       }
 # endif
-#endif /* no yyoverflow */
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-		  (unsigned long int) yystacksize));
+      YY_IGNORE_USELESS_CAST_BEGIN
+      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
+                  YY_CAST (long, yystacksize)));
+      YY_IGNORE_USELESS_CAST_END
 
       if (yyss + yystacksize - 1 <= yyssp)
-	YYABORT;
+        YYABORT;
     }
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  if (yystate == YYFINAL)
+    YYACCEPT;
 
   goto yybackup;
 
+
 /*-----------.
 | yybackup.  |
 `-----------*/
 yybackup:
-
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
+  if (yypact_value_is_default (yyn))
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
   if (yychar == YYEMPTY)
     {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
+      YYDPRINTF ((stderr, "Reading a token\n"));
+      yychar = yylex ();
     }
 
   if (yychar <= YYEOF)
     {
-      yychar = yytoken = YYEOF;
+      yychar = YYEOF;
+      yytoken = YYSYMBOL_YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
+  else if (yychar == YYerror)
+    {
+      /* The scanner already issued an error message, process directly
+         to error recovery.  But do not keep the error token as
+         lookahead, it is too special and may lead us to an endless
+         loop in error recovery. */
+      yychar = YYUNDEF;
+      yytoken = YYSYMBOL_YYerror;
+      goto yyerrlab1;
+    }
   else
     {
       yytoken = YYTRANSLATE (yychar);
@@ -1518,30 +1271,26 @@ yybackup:
   yyn = yytable[yyn];
   if (yyn <= 0)
     {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
-	goto yyerrlab;
+      if (yytable_value_is_error (yyn))
+        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
   yystate = yyn;
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
   goto yynewstate;
 
 
@@ -1556,14 +1305,14 @@ yydefault:
 
 
 /*-----------------------------.
-| yyreduce -- Do a reduction.  |
+| yyreduce -- do a reduction.  |
 `-----------------------------*/
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
+     '$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
      This behavior is undocumented and Bison
@@ -1576,23 +1325,25 @@ yyreduce:
   YY_REDUCE_PRINT (yyn);
   switch (yyn)
     {
-        case 2:
+  case 2: /* $@1: %empty  */
 #line 47 "compilador.y"
-    {
+             {
              geraCodigo (NULL, "INPP");
-             ;}
+             }
+#line 1334 "compilador.tab.c"
     break;
 
-  case 3:
+  case 3: /* programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO  */
 #line 53 "compilador.y"
-    {
+             {
                geraCodigo (NULL, "PARA");
-             ;}
+             }
+#line 1342 "compilador.tab.c"
     break;
 
-  case 4:
+  case 4: /* $@2: %empty  */
 #line 63 "compilador.y"
-    {
+         {
             char r_main[4];
             sprintf(r_main, "R%02d", rot_id);
             empilha(r_main, rot);
@@ -1601,21 +1352,23 @@ yyreduce:
             strcpy(buffer,"DSVS ");
             strcat(buffer,r_main);
             geraCodigo(NULL,buffer);
-         ;}
+         }
+#line 1357 "compilador.tab.c"
     break;
 
-  case 5:
+  case 5: /* $@3: %empty  */
 #line 74 "compilador.y"
-    {
+         {
             char r_main[4];
             desempilha(r_main,rot);
             geraCodigo(r_main,"NADA");
-         ;}
+         }
+#line 1367 "compilador.tab.c"
     break;
 
-  case 6:
+  case 6: /* bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto  */
 #line 80 "compilador.y"
-    {
+                          {
             char buffer[50];
             sprintf(buffer,"DMEM %d",desloc);
             desloc = retira_pr_fun(ts);
@@ -1624,31 +1377,35 @@ yyreduce:
             if (nivel_lexico > 0)
                nivel_lexico -= 1;
             mostra_ts(ts);
-         ;}
+         }
+#line 1382 "compilador.tab.c"
     break;
 
-  case 10:
+  case 10: /* $@4: %empty  */
 #line 101 "compilador.y"
-    { ;}
+              { }
+#line 1388 "compilador.tab.c"
     break;
 
-  case 15:
+  case 15: /* $@5: %empty  */
 #line 110 "compilador.y"
-    { num_vars = 0; ;}
+              { num_vars = 0; }
+#line 1394 "compilador.tab.c"
     break;
 
-  case 16:
+  case 16: /* $@6: %empty  */
 #line 113 "compilador.y"
-    { 
+              { 
                char buffer[50];
                sprintf(buffer, "AMEM %d", num_vars);
                geraCodigo(NULL, buffer);
-              ;}
+              }
+#line 1404 "compilador.tab.c"
     break;
 
-  case 18:
+  case 18: /* tipo: IDENT  */
 #line 122 "compilador.y"
-    {
+               {
                 if (strcmp(token, "integer") == 0) {
                     atualiza_tipo(num_vars, INTEIRO, ts);
                 } else if (strcmp(token, "boolean") == 0) {
@@ -1657,24 +1414,26 @@ yyreduce:
                     yyerror("ERRO: Tipo não reconhecido. Somente 'integer' ou 'boolean' são permitidos.");
                 }
                 mostra_ts(ts); // Mostra a tabela após a inserção
-               ;}
+               }
+#line 1419 "compilador.tab.c"
     break;
 
-  case 19:
+  case 19: /* lista_id_var: lista_id_var VIRGULA IDENT  */
 #line 135 "compilador.y"
-    { /* insere �ltima vars na tabela de s�mbolos */ 
+              { /* insere �ltima vars na tabela de s�mbolos */ 
                num_vars += 1;
                info_t info;
                info.vs.tipo = NSEI;
                info.vs.desloc = desloc;
                insere_ts(token,VS,nivel_lexico,info,ts);
                desloc += 1;
-              ;}
+              }
+#line 1432 "compilador.tab.c"
     break;
 
-  case 20:
+  case 20: /* lista_id_var: IDENT  */
 #line 143 "compilador.y"
-    { 
+                    { 
                num_vars += 1;
                info_t info;
                info.vs.tipo = NSEI;
@@ -1682,38 +1441,73 @@ yyreduce:
                insere_ts(token,VS,nivel_lexico,info,ts);
                desloc += 1;
                /* insere vars na tabela de s�mbolos */
-            ;}
+            }
+#line 1446 "compilador.tab.c"
     break;
 
-  case 26:
-#line 167 "compilador.y"
-    {
-               // Insere o procedimento na tabela de símbolos
-               info_t info;
-               char r_proc[4];
-               sprintf(r_proc, "R%02d", rot_id);
-               rot_id += 1;
-               strcpy(info.pr.rot,r_proc);
-               info.pr.quant = 0;
-               info.pr.param = NULL;
+  case 26: /* $@7: %empty  */
+#line 166 "compilador.y"
+                                         {
+               l_elem = busca(token,ts);
+               if(l_elem == NULL){
+               
+                  // Insere o procedimento na tabela de símbolos
+                  info_t info;
+                  char r_proc[4];
+                  sprintf(r_proc, "R%02d", rot_id);
+                  rot_id += 1;
+                  strcpy(info.pr.rot,r_proc);
+                  info.pr.quant = 0;
+                  info.pr.param = NULL;
+
+                  // Incrementa o nível léxico
+                  nivel_lexico += 1;
+                  desloc = 0; // Reinicia deslocamento para variáveis locais do novo nível
+
+                  insere_ts(token, PR, nivel_lexico, info, ts);
+                  empilha(token,proc);
+               } else {
+                  // Incrementa o nível léxico
+                  nivel_lexico += 1;
+                  desloc = 0; // Reinicia deslocamento para variáveis locais do novo nível
+                  empilha(token,proc);
+               }
+            }
+#line 1477 "compilador.tab.c"
+    break;
 
-               // Incrementa o nível léxico
-               nivel_lexico += 1;
-               desloc = 0; // Reinicia deslocamento para variáveis locais do novo nível
+  case 27: /* $@8: %empty  */
+#line 193 "compilador.y"
+            {
+               nivel_lexico -= 1;
+               desloc = retira_vs_pf(ts);
+               mostra_ts(ts);
 
-               insere_ts(token, PR, nivel_lexico, info, ts);
-               empilha(token,proc);
+            }
+#line 1488 "compilador.tab.c"
+    break;
 
+  case 30: /* $@9: %empty  */
+#line 204 "compilador.y"
+             {
                char buffer[50];
+               desempilha(buffer,proc);
+               l_elem = busca(buffer,ts);
+               empilha(buffer,proc);
+
                sprintf(buffer,"ENPR %d",nivel_lexico);
+               
+               char r_proc[4];
+               strcpy(r_proc,l_elem->info.pr.rot);
                geraCodigo(r_proc,buffer);
                mostra_ts(ts);
-            ;}
+            }
+#line 1506 "compilador.tab.c"
     break;
 
-  case 27:
-#line 191 "compilador.y"
-    {
+  case 31: /* $@10: %empty  */
+#line 217 "compilador.y"
+            {
                char buffer[50];
                desempilha(buffer,proc);
                l_elem = busca(buffer,ts);
@@ -1721,12 +1515,14 @@ yyreduce:
                geraCodigo(NULL,buffer);
                desloc = retira_vs_pf(ts);
                mostra_ts(ts);
-            ;}
+               printf("aqui");
+            }
+#line 1521 "compilador.tab.c"
     break;
 
-  case 29:
-#line 205 "compilador.y"
-    {
+  case 33: /* $@11: %empty  */
+#line 232 "compilador.y"
+                                  {
              // Insere o funcao na tabela de símbolos
             info_t info;
             char r_func[4];
@@ -1748,19 +1544,21 @@ yyreduce:
             sprintf(buffer,"ENPR %d",nivel_lexico);
             geraCodigo(r_func,buffer);
             mostra_ts(ts);
-            ;}
+            }
+#line 1549 "compilador.tab.c"
     break;
 
-  case 30:
-#line 229 "compilador.y"
-    {
+  case 34: /* $@12: %empty  */
+#line 256 "compilador.y"
+                        {
                num_vars = 1;
-            ;}
+            }
+#line 1557 "compilador.tab.c"
     break;
 
-  case 31:
-#line 233 "compilador.y"
-    { 
+  case 35: /* $@13: %empty  */
+#line 260 "compilador.y"
+            { 
                char buffer[50];
                desempilha(buffer,proc);
                l_elem = busca(buffer,ts);
@@ -1768,74 +1566,83 @@ yyreduce:
                geraCodigo(NULL,buffer);
                desloc = retira_vs_pf(ts);
                mostra_ts(ts); 
-            ;}
+            }
+#line 1571 "compilador.tab.c"
     break;
 
-  case 33:
-#line 246 "compilador.y"
-    {num_param = 0;;}
+  case 37: /* $@14: %empty  */
+#line 273 "compilador.y"
+            {num_param = 0;}
+#line 1577 "compilador.tab.c"
     break;
 
-  case 34:
-#line 247 "compilador.y"
-    {
+  case 38: /* $@15: %empty  */
+#line 274 "compilador.y"
+                                {
                char proc_ident[50];
                desempilha(proc_ident,proc);
                adiciona_param(proc_ident,num_param,ts);
                empilha(proc_ident,proc);
                mostra_ts(ts);
-            ;}
+            }
+#line 1589 "compilador.tab.c"
     break;
 
-  case 39:
-#line 263 "compilador.y"
-    {
+  case 43: /* $@16: %empty  */
+#line 290 "compilador.y"
+            {
                num_vars = 0; 
                val_ou_ref = REF;
-            ;}
+            }
+#line 1598 "compilador.tab.c"
     break;
 
-  case 40:
-#line 268 "compilador.y"
-    { 
+  case 44: /* secao_pfs: VAR $@16 lista_id_pf DOIS_PONTOS tipo  */
+#line 295 "compilador.y"
+            { 
                num_param += num_vars;
                val_ou_ref = VLR;
-            ;}
+            }
+#line 1607 "compilador.tab.c"
     break;
 
-  case 41:
-#line 272 "compilador.y"
-    {
+  case 45: /* $@17: %empty  */
+#line 299 "compilador.y"
+               {
                num_vars = 0;
                val_ou_ref = VLR;
-            ;}
+            }
+#line 1616 "compilador.tab.c"
     break;
 
-  case 42:
-#line 277 "compilador.y"
-    {num_param += num_vars;;}
+  case 46: /* secao_pfs: $@17 lista_id_pf DOIS_PONTOS tipo  */
+#line 304 "compilador.y"
+            {num_param += num_vars;}
+#line 1622 "compilador.tab.c"
     break;
 
-  case 45:
-#line 284 "compilador.y"
-    {
+  case 49: /* parametro: IDENT  */
+#line 311 "compilador.y"
+                 {
                num_vars += 1;
                info_t info;
                info.pf.tipo = NSEI;
                info.pf.desloc = NSEI;
                info.pf.passagem = val_ou_ref;
                insere_ts(token,PF,nivel_lexico,info,ts);
-            ;}
+            }
+#line 1635 "compilador.tab.c"
     break;
 
-  case 58:
-#line 314 "compilador.y"
-    {l_elem = busca(token, ts);;}
+  case 62: /* $@18: %empty  */
+#line 341 "compilador.y"
+                                  {l_elem = busca(token, ts);}
+#line 1641 "compilador.tab.c"
     break;
 
-  case 62:
-#line 322 "compilador.y"
-    {
+  case 66: /* $@19: %empty  */
+#line 349 "compilador.y"
+            {
     if (l_elem == NULL) {
         yyerror("ERRO: Variável de destino não declarada");
     } else {
@@ -1853,12 +1660,13 @@ yyreduce:
             yyerror("ERRO: Tentativa de atribuir em procedimento");
 
     }
-;}
+}
+#line 1665 "compilador.tab.c"
     break;
 
-  case 63:
-#line 340 "compilador.y"
-    {
+  case 67: /* atribuicao: $@19 ATRIBUICAO expressao_simples  */
+#line 367 "compilador.y"
+                               {
     // Gera código ARMZ para armazenar valor
     char buffer[50];
     if (atr_indireto == REF) {
@@ -1867,12 +1675,13 @@ yyreduce:
       sprintf(buffer, "ARMZ %d, %d", destino_nivel, destino_desloc);
     }
     geraCodigo(NULL, buffer);
-;}
+}
+#line 1680 "compilador.tab.c"
     break;
 
-  case 64:
-#line 353 "compilador.y"
-    {
+  case 68: /* $@20: %empty  */
+#line 380 "compilador.y"
+            {
                if (l_elem == NULL){
                   yyerror("ERRO: Procedimento não declarado");
                } else{
@@ -1883,12 +1692,13 @@ yyreduce:
                   geraCodigo(NULL, "AMEM 1");
                if (l_elem->categ == PR || l_elem->categ == FUN)
                   num_param = 0; // Reinicia a contagem de parâmetros reais   
-            ;}
+            }
+#line 1697 "compilador.tab.c"
     break;
 
-  case 65:
-#line 368 "compilador.y"
-    { 
+  case 69: /* chamada_procedimento: $@20 lista_parametros  */
+#line 395 "compilador.y"
+            { 
                char buffer[50];
                mostra_ts(ts);
                desempilha(buffer, proc);
@@ -1912,160 +1722,179 @@ yyreduce:
                   sprintf(buffer, "CHPR %s, %d", l_elem->info.pr.rot, nivel_lexico);
                   geraCodigo(NULL, buffer);
                }
-            ;}
+            }
+#line 1727 "compilador.tab.c"
     break;
 
-  case 68:
-#line 402 "compilador.y"
-    {
+  case 72: /* $@21: %empty  */
+#line 429 "compilador.y"
+               {
                   char buffer[50];
                   desempilha(buffer,proc);
                   l_elem = busca(buffer,ts);
                   val_ou_ref = l_elem->info.pr.param[num_param][1];
                   empilha(buffer,proc);
-               ;}
+               }
+#line 1739 "compilador.tab.c"
     break;
 
-  case 69:
-#line 410 "compilador.y"
-    {
+  case 73: /* lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@21 expressao_simples  */
+#line 437 "compilador.y"
+               {
                   num_param++; // Incrementa para cada parâmetro real
                   val_ou_ref = VLR;
-               ;}
+               }
+#line 1748 "compilador.tab.c"
     break;
 
-  case 70:
-#line 414 "compilador.y"
-    {
+  case 74: /* $@22: %empty  */
+#line 441 "compilador.y"
+                 {
                   char buffer[50];
                   desempilha(buffer,proc);
                   l_elem = busca(buffer,ts);
                   val_ou_ref = l_elem->info.pr.param[num_param][1];
                   empilha(buffer,proc);
-               ;}
+               }
+#line 1760 "compilador.tab.c"
     break;
 
-  case 71:
-#line 422 "compilador.y"
-    {
+  case 75: /* lista_parametros_parenteses: $@22 expressao_simples  */
+#line 449 "compilador.y"
+               {
                   num_param++; // Conta o primeiro parâmetro real
                   val_ou_ref = VLR;
-               ;}
+               }
+#line 1769 "compilador.tab.c"
     break;
 
-  case 75:
-#line 435 "compilador.y"
-    {
+  case 79: /* simb_leitura: IDENT  */
+#line 462 "compilador.y"
+                    {
                geraCodigo(NULL, "LEIT");
                l_elem = busca(token,ts);
                char buffer[50];
                sprintf(buffer,"ARMZ %d, %d",l_elem->nivel,l_elem->info.vs.desloc);
                geraCodigo(NULL,buffer);
-            ;}
+            }
+#line 1781 "compilador.tab.c"
     break;
 
-  case 77:
-#line 447 "compilador.y"
-    {
+  case 81: /* lista_escritas: lista_escritas VIRGULA expressao_simples  */
+#line 474 "compilador.y"
+                                                         {
                geraCodigo(NULL,"IMPR");
-            ;}
+            }
+#line 1789 "compilador.tab.c"
     break;
 
-  case 78:
-#line 450 "compilador.y"
-    {
+  case 82: /* lista_escritas: expressao_simples  */
+#line 477 "compilador.y"
+                                {
                geraCodigo(NULL,"IMPR");
-            ;}
+            }
+#line 1797 "compilador.tab.c"
     break;
 
-  case 79:
-#line 455 "compilador.y"
-    {
+  case 83: /* expressao: expressao_simples IGUAL expressao_simples  */
+#line 482 "compilador.y"
+                                                     {
             geraCodigo(NULL, "CMIG"); // Adiciona operação de cmig
-         ;}
+         }
+#line 1805 "compilador.tab.c"
     break;
 
-  case 80:
-#line 458 "compilador.y"
-    {
+  case 84: /* expressao: expressao_simples DIFERENTE expressao_simples  */
+#line 485 "compilador.y"
+                                                        {
             geraCodigo(NULL, "CMDG"); // Adiciona operação de cmdg
-         ;}
+         }
+#line 1813 "compilador.tab.c"
     break;
 
-  case 81:
-#line 461 "compilador.y"
-    {
+  case 85: /* expressao: expressao_simples MENOR expressao_simples  */
+#line 488 "compilador.y"
+                                                     {
             geraCodigo(NULL, "CMME"); // Adiciona operação de cmme
-         ;}
+         }
+#line 1821 "compilador.tab.c"
     break;
 
-  case 82:
-#line 464 "compilador.y"
-    {
+  case 86: /* expressao: expressao_simples MENOR_IGUAL expressao_simples  */
+#line 491 "compilador.y"
+                                                           {
             geraCodigo(NULL, "CMEG"); // Adiciona operação de cmeg
-         ;}
+         }
+#line 1829 "compilador.tab.c"
     break;
 
-  case 83:
-#line 467 "compilador.y"
-    {
+  case 87: /* expressao: expressao_simples MAIOR expressao_simples  */
+#line 494 "compilador.y"
+                                                     {
             geraCodigo(NULL, "CMMA"); // Adiciona operação de cmma
-         ;}
+         }
+#line 1837 "compilador.tab.c"
     break;
 
-  case 84:
-#line 470 "compilador.y"
-    {
+  case 88: /* expressao: expressao_simples MAIOR_IGUAL expressao_simples  */
+#line 497 "compilador.y"
+                                                           {
             geraCodigo(NULL, "CMAG"); // Adiciona operação de cmag
-         ;}
+         }
+#line 1845 "compilador.tab.c"
     break;
 
-  case 86:
-#line 476 "compilador.y"
-    {
+  case 89: /* expressao_simples: expressao_simples MAIS termo  */
+#line 502 "compilador.y"
+                                                {
                if (val_ou_ref == REF)
                   yyerror("ERRO: tentativa de EXPRESSAO em passagem por REFERENCIA\n");
                else
                   geraCodigo(NULL, "SOMA"); // Adiciona operação de soma
-            ;}
+            }
+#line 1856 "compilador.tab.c"
     break;
 
-  case 87:
-#line 482 "compilador.y"
-    {
+  case 90: /* expressao_simples: expressao_simples MENOS termo  */
+#line 508 "compilador.y"
+                                            {
                if (val_ou_ref == REF)
                   yyerror("ERRO: tentativa de EXPRESSAO em passagem por REFERENCIA\n");
                else
                   geraCodigo(NULL, "SUBT"); // Adiciona operação de subt
-            ;}
+            }
+#line 1867 "compilador.tab.c"
     break;
 
-  case 89:
-#line 491 "compilador.y"
-    {
+  case 92: /* termo: termo ASTERISCO fator  */
+#line 517 "compilador.y"
+                             {
                geraCodigo(NULL, "MULT"); // Adiciona operação de mult
-            ;}
+            }
+#line 1875 "compilador.tab.c"
     break;
 
-  case 90:
-#line 494 "compilador.y"
-    {
+  case 93: /* termo: termo DIV fator  */
+#line 520 "compilador.y"
+                              {
                geraCodigo(NULL, "DIVI"); // Adiciona operação de divi
-            ;}
+            }
+#line 1883 "compilador.tab.c"
     break;
 
-  case 92:
-#line 500 "compilador.y"
-    {
+  case 95: /* $@23: %empty  */
+#line 526 "compilador.y"
+             {
     // Carrega variável
     l_elem = busca(token, ts);
     empilha(token, proc);
-   ;}
+   }
+#line 1893 "compilador.tab.c"
     break;
 
-  case 93:
-#line 506 "compilador.y"
-    {
+  case 96: /* fator: IDENT $@23 chamada_procedimento  */
+#line 532 "compilador.y"
+   {
       char buffer[50];
       desempilha(buffer, proc);
       l_elem = busca(buffer, ts);
@@ -2078,7 +1907,10 @@ yyreduce:
                   geraCodigo(NULL, buffer);
                }
                else if (l_elem->categ == PF){
-                  sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
+                  if(l_elem->info.pf.passagem == VLR)
+                     sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
+                  else
+                     sprintf(buffer, "CRVL %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
                   geraCodigo(NULL, buffer);
                }
                else
@@ -2100,12 +1932,13 @@ yyreduce:
                }
          }
       }
-   ;}
+   }
+#line 1937 "compilador.tab.c"
     break;
 
-  case 94:
-#line 542 "compilador.y"
-    {
+  case 97: /* fator: NUMERO  */
+#line 571 "compilador.y"
+         {
     // Empilha constante
     char buffer[50];
     if (val_ou_ref == VLR)
@@ -2114,23 +1947,25 @@ yyreduce:
       yyerror("ERRO: passagem de constante por REFERENCIA.\n");
     }
     geraCodigo(NULL, buffer);
-;}
+}
+#line 1952 "compilador.tab.c"
     break;
 
-  case 97:
-#line 557 "compilador.y"
-    {
+  case 101: /* $@24: %empty  */
+#line 587 "compilador.y"
+                    {
                char r_ini[4];
                sprintf(r_ini, "R%02d", rot_id);
                empilha(r_ini, rot);
                rot_id += 1;
                geraCodigo(r_ini,"NADA");
-            ;}
+            }
+#line 1964 "compilador.tab.c"
     break;
 
-  case 98:
-#line 564 "compilador.y"
-    {
+  case 102: /* $@25: %empty  */
+#line 594 "compilador.y"
+                               {
                char r_fim[4];
                sprintf(r_fim, "R%02d", rot_id);
                empilha(r_fim, rot);
@@ -2139,12 +1974,13 @@ yyreduce:
                strcpy(buffer, "DSVF ");
                strcat(buffer,r_fim);
                geraCodigo(NULL,buffer);
-            ;}
+            }
+#line 1979 "compilador.tab.c"
     break;
 
-  case 99:
-#line 574 "compilador.y"
-    {
+  case 103: /* comando_repetitivo: $@24 WHILE expressao DO $@25 comando_sem_rotulo  */
+#line 604 "compilador.y"
+                               {
                char r_ini[4];
                char r_fim[4];
 
@@ -2157,21 +1993,23 @@ yyreduce:
                geraCodigo(NULL,buffer);
 
                geraCodigo(r_fim,"NADA");
-            ;}
+            }
+#line 1998 "compilador.tab.c"
     break;
 
-  case 100:
-#line 590 "compilador.y"
-    {
+  case 104: /* comando_condicional: if_then cond_else  */
+#line 620 "compilador.y"
+                                       {
                char r_fim[4];
                desempilha(r_fim,rot);
                geraCodigo(r_fim,"NADA");
-            ;}
+            }
+#line 2008 "compilador.tab.c"
     break;
 
-  case 103:
-#line 602 "compilador.y"
-    {
+  case 107: /* $@26: %empty  */
+#line 632 "compilador.y"
+                      {
                char r_else[4];
                sprintf(r_else,"R%02d",rot_id);
                empilha(r_else,rot);
@@ -2185,12 +2023,13 @@ yyreduce:
                sprintf(r_fim, "R%02d", rot_id);
                empilha(r_fim, rot);
                rot_id += 1;
-            ;}
+            }
+#line 2028 "compilador.tab.c"
     break;
 
-  case 104:
-#line 617 "compilador.y"
-    {
+  case 108: /* if_then: IF expressao $@26 THEN comando_sem_rotulo  */
+#line 647 "compilador.y"
+                                    {
                char r_fim[4];
                desempilha(r_fim,rot);
                char r_else[4];
@@ -2203,105 +2042,81 @@ yyreduce:
                geraCodigo(NULL,buffer);
 
                geraCodigo(r_else,"NADA");
-            ;}
+            }
+#line 2047 "compilador.tab.c"
     break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 2212 "compilador.tab.c"
+#line 2051 "compilador.tab.c"
+
       default: break;
     }
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+  /* User semantic actions sometimes alter yychar, and that requires
+     that yytoken be updated with the new translation.  We take the
+     approach of translating immediately before every use of yytoken.
+     One alternative is translating here after every semantic action,
+     but that translation would be missed if the semantic action invokes
+     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
+     incorrect destructor might then be invoked immediately.  In the
+     case of YYERROR or YYBACKUP, subsequent parser actions might lead
+     to an incorrect destructor call or verbose syntax error message
+     before the lookahead is translated.  */
+  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
 
   YYPOPSTACK (yylen);
   yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
-
-  /* Now `shift' the result of the reduction.  Determine what state
+  /* Now 'shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
+  {
+    const int yylhs = yyr1[yyn] - YYNTOKENS;
+    const int yyi = yypgoto[yylhs] + *yyssp;
+    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
+               ? yytable[yyi]
+               : yydefgoto[yylhs]);
+  }
 
   goto yynewstate;
 
 
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
+/*--------------------------------------.
+| yyerrlab -- here on detecting error.  |
+`--------------------------------------*/
 yyerrlab:
+  /* Make sure we have latest lookahead translation.  See comments at
+     user semantic actions for why this is necessary.  */
+  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
       ++yynerrs;
-#if ! YYERROR_VERBOSE
       yyerror (YY_("syntax error"));
-#else
-      {
-	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-	  {
-	    YYSIZE_T yyalloc = 2 * yysize;
-	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
-	    if (yymsg != yymsgbuf)
-	      YYSTACK_FREE (yymsg);
-	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-	    if (yymsg)
-	      yymsg_alloc = yyalloc;
-	    else
-	      {
-		yymsg = yymsgbuf;
-		yymsg_alloc = sizeof yymsgbuf;
-	      }
-	  }
-
-	if (0 < yysize && yysize <= yymsg_alloc)
-	  {
-	    (void) yysyntax_error (yymsg, yystate, yychar);
-	    yyerror (yymsg);
-	  }
-	else
-	  {
-	    yyerror (YY_("syntax error"));
-	    if (yysize != 0)
-	      goto yyexhaustedlab;
-	  }
-      }
-#endif
     }
 
-
-
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
-	 error, discard it.  */
+      /* If just tried and failed to reuse lookahead token after an
+         error, discard it.  */
 
       if (yychar <= YYEOF)
-	{
-	  /* Return failure if at end of input.  */
-	  if (yychar == YYEOF)
-	    YYABORT;
-	}
+        {
+          /* Return failure if at end of input.  */
+          if (yychar == YYEOF)
+            YYABORT;
+        }
       else
-	{
-	  yydestruct ("Error: discarding",
-		      yytoken, &yylval);
-	  yychar = YYEMPTY;
-	}
+        {
+          yydestruct ("Error: discarding",
+                      yytoken, &yylval);
+          yychar = YYEMPTY;
+        }
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -2310,14 +2125,13 @@ yyerrlab:
 | yyerrorlab -- error raised explicitly by YYERROR.  |
 `---------------------------------------------------*/
 yyerrorlab:
+  /* Pacify compilers when the user code never invokes YYERROR and the
+     label yyerrorlab therefore never appears in user code.  */
+  if (0)
+    YYERROR;
+  ++yynerrs;
 
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule which action triggered
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
   yylen = 0;
@@ -2330,42 +2144,42 @@ yyerrorlab:
 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
+  /* Pop stack until we find a state that shifts the error token.  */
   for (;;)
     {
       yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
+      if (!yypact_value_is_default (yyn))
+        {
+          yyn += YYSYMBOL_YYerror;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
+            {
+              yyn = yytable[yyn];
+              if (0 < yyn)
+                break;
+            }
+        }
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-	YYABORT;
+        YYABORT;
 
 
       yydestruct ("Error: popping",
-		  yystos[yystate], yyvsp);
+                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
   /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
 
   yystate = yyn;
   goto yynewstate;
@@ -2376,53 +2190,57 @@ yyerrlab1:
 `-------------------------------------*/
 yyacceptlab:
   yyresult = 0;
-  goto yyreturn;
+  goto yyreturnlab;
+
 
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
 yyabortlab:
   yyresult = 1;
-  goto yyreturn;
+  goto yyreturnlab;
 
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
+
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
+`-----------------------------------------------------------*/
 yyexhaustedlab:
   yyerror (YY_("memory exhausted"));
   yyresult = 2;
-  /* Fall through.  */
-#endif
+  goto yyreturnlab;
 
-yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
-     yydestruct ("Cleanup: discarding lookahead",
-		 yytoken, &yylval);
-  /* Do not reclaim the symbols of the rule which action triggered
+
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return.  |
+`----------------------------------------------------------*/
+yyreturnlab:
+  if (yychar != YYEMPTY)
+    {
+      /* Make sure we have latest lookahead translation.  See comments at
+         user semantic actions for why this is necessary.  */
+      yytoken = YYTRANSLATE (yychar);
+      yydestruct ("Cleanup: discarding lookahead",
+                  yytoken, &yylval);
+    }
+  /* Do not reclaim the symbols of the rule whose action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
   YY_STACK_PRINT (yyss, yyssp);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-		  yystos[*yyssp], yyvsp);
+                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
 #endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
-}
 
+  return yyresult;
+}
 
-#line 634 "compilador.y"
+#line 664 "compilador.y"
 
 
 int main (int argc, char** argv) {
@@ -2462,4 +2280,3 @@ int main (int argc, char** argv) {
 
    return 0;
 }
-
diff --git a/ALTERADO/compilador.tab.h b/ALTERADO/compilador.tab.h
index ec880d5..6f90250 100644
--- a/ALTERADO/compilador.tab.h
+++ b/ALTERADO/compilador.tab.h
@@ -1,14 +1,14 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+   Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,9 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -33,105 +31,86 @@
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-/* Tokens.  */
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+   especially those whose name start with YY_ or yy_.  They are
+   private implementation details that can be changed or removed.  */
+
+#ifndef YY_YY_COMPILADOR_TAB_H_INCLUDED
+# define YY_YY_COMPILADOR_TAB_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+
+/* Token kinds.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     PROGRAM = 258,
-     ABRE_PARENTESES = 259,
-     FECHA_PARENTESES = 260,
-     VIRGULA = 261,
-     PONTO_E_VIRGULA = 262,
-     DOIS_PONTOS = 263,
-     PONTO = 264,
-     T_BEGIN = 265,
-     T_END = 266,
-     VAR = 267,
-     IDENT = 268,
-     ATRIBUICAO = 269,
-     LABEL = 270,
-     TYPE = 271,
-     ARRAY = 272,
-     PROCEDURE = 273,
-     FUNCTION = 274,
-     GOTO = 275,
-     IF = 276,
-     THEN = 277,
-     ELSE = 278,
-     WHILE = 279,
-     DO = 280,
-     OR = 281,
-     DIV = 282,
-     AND = 283,
-     NOT = 284,
-     IGUAL = 285,
-     DIFERENTE = 286,
-     MENOR_IGUAL = 287,
-     MAIOR_IGUAL = 288,
-     MENOR = 289,
-     MAIOR = 290,
-     MAIS = 291,
-     MENOS = 292,
-     ASTERISCO = 293,
-     NUMERO = 294,
-     READ = 295,
-     WRITE = 296,
-     LOWER_THAN_ELSE = 297
-   };
+  enum yytokentype
+  {
+    YYEMPTY = -2,
+    YYEOF = 0,                     /* "end of file"  */
+    YYerror = 256,                 /* error  */
+    YYUNDEF = 257,                 /* "invalid token"  */
+    PROGRAM = 258,                 /* PROGRAM  */
+    ABRE_PARENTESES = 259,         /* ABRE_PARENTESES  */
+    FECHA_PARENTESES = 260,        /* FECHA_PARENTESES  */
+    VIRGULA = 261,                 /* VIRGULA  */
+    PONTO_E_VIRGULA = 262,         /* PONTO_E_VIRGULA  */
+    DOIS_PONTOS = 263,             /* DOIS_PONTOS  */
+    PONTO = 264,                   /* PONTO  */
+    T_BEGIN = 265,                 /* T_BEGIN  */
+    T_END = 266,                   /* T_END  */
+    VAR = 267,                     /* VAR  */
+    IDENT = 268,                   /* IDENT  */
+    ATRIBUICAO = 269,              /* ATRIBUICAO  */
+    LABEL = 270,                   /* LABEL  */
+    TYPE = 271,                    /* TYPE  */
+    ARRAY = 272,                   /* ARRAY  */
+    PROCEDURE = 273,               /* PROCEDURE  */
+    FUNCTION = 274,                /* FUNCTION  */
+    GOTO = 275,                    /* GOTO  */
+    IF = 276,                      /* IF  */
+    THEN = 277,                    /* THEN  */
+    ELSE = 278,                    /* ELSE  */
+    WHILE = 279,                   /* WHILE  */
+    DO = 280,                      /* DO  */
+    OR = 281,                      /* OR  */
+    DIV = 282,                     /* DIV  */
+    AND = 283,                     /* AND  */
+    NOT = 284,                     /* NOT  */
+    IGUAL = 285,                   /* IGUAL  */
+    DIFERENTE = 286,               /* DIFERENTE  */
+    MENOR_IGUAL = 287,             /* MENOR_IGUAL  */
+    MAIOR_IGUAL = 288,             /* MAIOR_IGUAL  */
+    MENOR = 289,                   /* MENOR  */
+    MAIOR = 290,                   /* MAIOR  */
+    MAIS = 291,                    /* MAIS  */
+    MENOS = 292,                   /* MENOS  */
+    ASTERISCO = 293,               /* ASTERISCO  */
+    NUMERO = 294,                  /* NUMERO  */
+    READ = 295,                    /* READ  */
+    WRITE = 296,                   /* WRITE  */
+    FORWARD = 297,                 /* FORWARD  */
+    LOWER_THAN_ELSE = 298          /* LOWER_THAN_ELSE  */
+  };
+  typedef enum yytokentype yytoken_kind_t;
 #endif
-/* Tokens.  */
-#define PROGRAM 258
-#define ABRE_PARENTESES 259
-#define FECHA_PARENTESES 260
-#define VIRGULA 261
-#define PONTO_E_VIRGULA 262
-#define DOIS_PONTOS 263
-#define PONTO 264
-#define T_BEGIN 265
-#define T_END 266
-#define VAR 267
-#define IDENT 268
-#define ATRIBUICAO 269
-#define LABEL 270
-#define TYPE 271
-#define ARRAY 272
-#define PROCEDURE 273
-#define FUNCTION 274
-#define GOTO 275
-#define IF 276
-#define THEN 277
-#define ELSE 278
-#define WHILE 279
-#define DO 280
-#define OR 281
-#define DIV 282
-#define AND 283
-#define NOT 284
-#define IGUAL 285
-#define DIFERENTE 286
-#define MENOR_IGUAL 287
-#define MAIOR_IGUAL 288
-#define MENOR 289
-#define MAIOR 290
-#define MAIS 291
-#define MENOS 292
-#define ASTERISCO 293
-#define NUMERO 294
-#define READ 295
-#define WRITE 296
-#define LOWER_THAN_ELSE 297
-
-
-
 
+/* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef int YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
 #endif
 
+
 extern YYSTYPE yylval;
 
+
+int yyparse (void);
+
+
+#endif /* !YY_YY_COMPILADOR_TAB_H_INCLUDED  */
diff --git a/ALTERADO/compilador.y b/ALTERADO/compilador.y
index 4e02b27..a585592 100644
--- a/ALTERADO/compilador.y
+++ b/ALTERADO/compilador.y
@@ -36,7 +36,7 @@ int atr_indireto;
 %token GOTO IF THEN ELSE WHILE DO OR DIV
 %token AND NOT IGUAL DIFERENTE MENOR_IGUAL
 %token MAIOR_IGUAL MENOR MAIOR MAIS MENOS
-%token ASTERISCO NUMERO READ WRITE
+%token ASTERISCO NUMERO READ WRITE FORWARD
 
 %nonassoc LOWER_THAN_ELSE
 %nonassoc ELSE
@@ -156,38 +156,64 @@ lista_idents: lista_idents VIRGULA IDENT
 ;
 
 // REGRA 11
-parte_declara_subrotinas: parte_declara_subrotinas
-            declaracao_procedimento 
-            | declaracao_funcao
+parte_declara_subrotinas: declaracao_procedimento inicializa_procedimento parte_declara_subrotinas
+            | declaracao_funcao parte_declara_subrotinas
             |
 ;
 
 // REGRA 12
 // Regra ajustada para declaração de procedimento
 declaracao_procedimento: PROCEDURE IDENT {
-               // Insere o procedimento na tabela de símbolos
-               info_t info;
-               char r_proc[4];
-               sprintf(r_proc, "R%02d", rot_id);
-               rot_id += 1;
-               strcpy(info.pr.rot,r_proc);
-               info.pr.quant = 0;
-               info.pr.param = NULL;
-
-               // Incrementa o nível léxico
-               nivel_lexico += 1;
-               desloc = 0; // Reinicia deslocamento para variáveis locais do novo nível
+               l_elem = busca(token,ts);
+               if(l_elem == NULL){
+               
+                  // Insere o procedimento na tabela de símbolos
+                  info_t info;
+                  char r_proc[4];
+                  sprintf(r_proc, "R%02d", rot_id);
+                  rot_id += 1;
+                  strcpy(info.pr.rot,r_proc);
+                  info.pr.quant = 0;
+                  info.pr.param = NULL;
+
+                  // Incrementa o nível léxico
+                  nivel_lexico += 1;
+                  desloc = 0; // Reinicia deslocamento para variáveis locais do novo nível
+
+                  insere_ts(token, PR, nivel_lexico, info, ts);
+                  empilha(token,proc);
+               } else {
+                  // Incrementa o nível léxico
+                  nivel_lexico += 1;
+                  desloc = 0; // Reinicia deslocamento para variáveis locais do novo nível
+                  empilha(token,proc);
+               }
+            }
+            parametros_ou_nada
+            {
+               nivel_lexico -= 1;
+               desloc = retira_vs_pf(ts);
+               mostra_ts(ts);
 
-               insere_ts(token, PR, nivel_lexico, info, ts);
-               empilha(token,proc);
+            }
+            PONTO_E_VIRGULA 
+;
 
+inicializa_procedimento:
+            FORWARD PONTO_E_VIRGULA
+            |{
                char buffer[50];
+               desempilha(buffer,proc);
+               l_elem = busca(buffer,ts);
+               empilha(buffer,proc);
+
                sprintf(buffer,"ENPR %d",nivel_lexico);
+               
+               char r_proc[4];
+               strcpy(r_proc,l_elem->info.pr.rot);
                geraCodigo(r_proc,buffer);
                mostra_ts(ts);
-            }
-            parametros_ou_nada
-            PONTO_E_VIRGULA bloco
+            } bloco
             {
                char buffer[50];
                desempilha(buffer,proc);
@@ -196,6 +222,7 @@ declaracao_procedimento: PROCEDURE IDENT {
                geraCodigo(NULL,buffer);
                desloc = retira_vs_pf(ts);
                mostra_ts(ts);
+               printf("aqui");
             }
             PONTO_E_VIRGULA
 ;
@@ -452,25 +479,24 @@ lista_escritas: lista_escritas VIRGULA expressao_simples {
             }
 ;
 
-expressao: expressao IGUAL expressao_simples {
+expressao: expressao_simples IGUAL expressao_simples {
             geraCodigo(NULL, "CMIG"); // Adiciona operação de cmig
          }
-         | expressao DIFERENTE expressao_simples{
+         | expressao_simples DIFERENTE expressao_simples{
             geraCodigo(NULL, "CMDG"); // Adiciona operação de cmdg
          }
-         | expressao MENOR expressao_simples {
+         | expressao_simples MENOR expressao_simples {
             geraCodigo(NULL, "CMME"); // Adiciona operação de cmme
          }
-         | expressao MENOR_IGUAL expressao_simples {
+         | expressao_simples MENOR_IGUAL expressao_simples {
             geraCodigo(NULL, "CMEG"); // Adiciona operação de cmeg
          }
-         | expressao MAIOR expressao_simples {
+         | expressao_simples MAIOR expressao_simples {
             geraCodigo(NULL, "CMMA"); // Adiciona operação de cmma
          }
-         | expressao MAIOR_IGUAL expressao_simples {
+         | expressao_simples MAIOR_IGUAL expressao_simples {
             geraCodigo(NULL, "CMAG"); // Adiciona operação de cmag
          }
-         | expressao_simples
 ;
 
 expressao_simples: expressao_simples MAIS termo {
@@ -516,7 +542,10 @@ fator: IDENT {
                   geraCodigo(NULL, buffer);
                }
                else if (l_elem->categ == PF){
-                  sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
+                  if(l_elem->info.pf.passagem == VLR)
+                     sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
+                  else
+                     sprintf(buffer, "CRVL %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
                   geraCodigo(NULL, buffer);
                }
                else
@@ -550,6 +579,7 @@ fator: IDENT {
     geraCodigo(NULL, buffer);
 }
 | ABRE_PARENTESES expressao FECHA_PARENTESES
+| ABRE_PARENTESES expressao_simples FECHA_PARENTESES
 ;
 
 numero: NUMERO;
diff --git a/ALTERADO/forward2.pas b/ALTERADO/forward2.pas
new file mode 100644
index 0000000..b0149a3
--- /dev/null
+++ b/ALTERADO/forward2.pas
@@ -0,0 +1,18 @@
+program OutputLines(output);
+
+procedure fun1; forward;
+
+procedure fun2;
+begin
+    write(0);
+    fun1;
+end;
+
+procedure fun1;
+begin
+   write(1);
+end;
+
+begin
+    fun2;
+end.
diff --git a/ALTERADO/lex.yy.c b/ALTERADO/lex.yy.c
index d3651db..7738f96 100644
--- a/ALTERADO/lex.yy.c
+++ b/ALTERADO/lex.yy.c
@@ -1,5 +1,5 @@
 
-#line 2 "lex.yy.c"
+#line 3 "lex.yy.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -46,7 +46,6 @@ typedef int16_t flex_int16_t;
 typedef uint16_t flex_uint16_t;
 typedef int32_t flex_int32_t;
 typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
 #else
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
@@ -155,7 +154,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
 typedef size_t yy_size_t;
 #endif
 
-extern yy_size_t yyleng;
+extern int yyleng;
 
 extern FILE *yyin, *yyout;
 
@@ -198,7 +197,7 @@ struct yy_buffer_state
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	yy_size_t yy_n_chars;
+	int yy_n_chars;
 
 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -267,8 +266,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 
 /* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t yyleng;
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+int yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = NULL;
@@ -295,7 +294,7 @@ static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
 
 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len  );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
 
 void *yyalloc ( yy_size_t  );
 void *yyrealloc ( void *, yy_size_t  );
@@ -348,12 +347,12 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
  */
 #define YY_DO_BEFORE_ACTION \
 	(yytext_ptr) = yy_bp; \
-	yyleng = (yy_size_t) (yy_cp - yy_bp); \
+	yyleng = (int) (yy_cp - yy_bp); \
 	(yy_hold_char) = *yy_cp; \
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 43
-#define YY_END_OF_BUFFER 44
+#define YY_NUM_RULES 44
+#define YY_END_OF_BUFFER 45
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -361,21 +360,21 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static const flex_int16_t yy_accept[115] =
+static const flex_int16_t yy_accept[121] =
     {   0,
-        0,    0,   44,   43,    2,    1,   15,   16,   40,   38,
-       13,   39,   14,   41,   12,   11,   36,   32,   37,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,    2,    0,   41,   10,   34,
-       33,   35,   42,   42,   42,   42,   42,   27,   42,   42,
-       42,   42,   23,   42,   42,   28,   42,   42,   42,   42,
-       42,   42,   42,    0,    0,   30,   42,   42,   29,   42,
-        7,   42,   42,   42,   31,   42,   42,   42,   42,    5,
-       42,   42,    3,   42,   42,   25,   42,   22,   42,   42,
-       42,    8,   24,   18,   42,   42,   19,    6,   42,   17,
-
-       42,   42,   26,    9,   42,   42,   42,   42,   42,    4,
-       21,   42,   20,    0
+        0,    0,   45,   44,    2,    1,   15,   16,   41,   39,
+       13,   40,   14,   42,   12,   11,   37,   33,   38,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,    2,    0,   42,   10,   35,
+       34,   36,   43,   43,   43,   43,   43,   28,   43,   43,
+       43,   43,   43,   24,   43,   43,   29,   43,   43,   43,
+       43,   43,   43,   43,    0,    0,   31,   43,   43,   30,
+       43,    7,   43,   43,   43,   43,   32,   43,   43,   43,
+       43,    5,   43,   43,    3,   43,   43,   26,   43,   43,
+       23,   43,   43,   43,    8,   25,   18,   43,   43,   19,
+
+        6,   43,   43,   17,   43,   43,   27,    9,   43,   43,
+       43,   43,   22,   43,   43,    4,   21,   43,   20,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -418,82 +417,84 @@ static const YY_CHAR yy_meta[39] =
         3,    3,    3,    3,    3,    3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[117] =
+static const flex_int16_t yy_base[123] =
     {   0,
-        0,    0,  123,  124,  120,  124,  115,  124,  124,  124,
-      124,  124,  124,  109,  104,  124,   24,  124,  103,    0,
-       12,   95,   16,   16,   81,   85,   91,   95,   82,   79,
-       78,   87,   22,   90,   23,  105,  100,   94,  124,  124,
-      124,  124,    0,   83,   71,   78,   65,    0,   67,   78,
-       69,   63,    0,   77,   61,    0,   64,   75,   70,   60,
-       58,   63,   62,   81,   44,    0,   68,   59,    0,   62,
-        0,   63,   52,   59,    0,   32,   59,   50,   56,    0,
-       50,   42,   69,   36,   44,    0,   38,    0,   44,   48,
-       37,    0,    0,    0,   46,   45,    0,    0,   40,    0,
-
-       44,   46,    0,    0,   32,   24,   30,   28,   22,    0,
-        0,   31,    0,  124,   48,   60
+        0,    0,  129,  130,  126,  130,  121,  130,  130,  130,
+      130,  130,  130,  115,  110,  130,   24,  130,  109,    0,
+       12,  101,   16,   16,   17,   92,   98,  102,   89,   86,
+       85,   94,   23,   97,   24,  112,  107,  101,  130,  130,
+      130,  130,    0,   90,   78,   85,   72,    0,   74,   85,
+       73,   75,   69,    0,   83,   67,    0,   70,   81,   76,
+       66,   64,   69,   68,   87,   45,    0,   74,   65,    0,
+       68,    0,   52,   68,   57,   64,    0,   33,   64,   55,
+       61,    0,   55,   47,   74,   41,   49,    0,   59,   42,
+        0,   48,   52,   41,    0,    0,    0,   50,   49,    0,
+
+        0,   38,   43,    0,   47,   49,    0,    0,   45,   35,
+       28,   32,    0,   30,   26,    0,    0,   33,    0,  130,
+       51,   61
     } ;
 
-static const flex_int16_t yy_def[117] =
+static const flex_int16_t yy_def[123] =
     {   0,
-      114,    1,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  114,  116,  114,  114,  114,
-      114,  114,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  116,  116,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  116,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,    0,  114,  114
+      120,    1,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  120,  122,  120,  120,  120,
+      120,  120,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  122,  122,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  122,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,    0,
+      120,  120
     } ;
 
-static const flex_int16_t yy_nxt[163] =
+static const flex_int16_t yy_nxt[169] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
        14,   15,   16,   17,   18,   19,   20,   21,   22,   20,
        23,   24,   25,   26,   20,   27,   28,   20,   29,   30,
        31,   32,   20,   33,   20,   34,   35,   20,   40,   41,
-       44,   47,   49,   45,   50,   48,   59,   62,   83,   65,
-       43,   90,  113,  112,   63,   91,  111,  110,  109,   60,
-       64,  108,   64,  107,  106,  105,  104,  103,  102,  101,
-      100,   99,   98,   97,   65,   96,   95,   94,   93,   92,
-       89,   88,   87,   86,   85,   84,   65,   82,   81,   80,
-       79,   78,   77,   76,   75,   74,   73,   72,   71,   70,
-
-       69,   68,   67,   66,   38,   65,   36,   61,   58,   57,
-       56,   55,   54,   53,   52,   51,   46,   42,   39,   38,
-       37,   36,  114,    3,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114
+       44,   47,   49,   45,   50,   48,   51,   60,   63,   85,
+       66,   52,   93,   43,  119,   64,   94,  118,  117,  116,
+       61,   65,  115,   65,  114,  113,  112,  111,  110,  109,
+      108,  107,  106,  105,  104,  103,  102,  101,  100,   66,
+       99,   98,   97,   96,   95,   92,   91,   90,   89,   88,
+       87,   86,   66,   84,   83,   82,   81,   80,   79,   78,
+
+       77,   76,   75,   74,   73,   72,   71,   70,   69,   68,
+       67,   38,   66,   36,   62,   59,   58,   57,   56,   55,
+       54,   53,   46,   42,   39,   38,   37,   36,  120,    3,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120
     } ;
 
-static const flex_int16_t yy_chk[163] =
+static const flex_int16_t yy_chk[169] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,   17,   17,
-       21,   23,   24,   21,   24,   23,   33,   35,   65,   65,
-      115,   76,  112,  109,   35,   76,  108,  107,  106,   33,
-      116,  105,  116,  102,  101,   99,   96,   95,   91,   90,
-       89,   87,   85,   84,   83,   82,   81,   79,   78,   77,
-       74,   73,   72,   70,   68,   67,   64,   63,   62,   61,
-       60,   59,   58,   57,   55,   54,   52,   51,   50,   49,
-
-       47,   46,   45,   44,   38,   37,   36,   34,   32,   31,
-       30,   29,   28,   27,   26,   25,   22,   19,   15,   14,
-        7,    5,    3,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114
+       21,   23,   24,   21,   24,   23,   25,   33,   35,   66,
+       66,   25,   78,  121,  118,   35,   78,  115,  114,  112,
+       33,  122,  111,  122,  110,  109,  106,  105,  103,  102,
+       99,   98,   94,   93,   92,   90,   89,   87,   86,   85,
+       84,   83,   81,   80,   79,   76,   75,   74,   73,   71,
+       69,   68,   65,   64,   63,   62,   61,   60,   59,   58,
+
+       56,   55,   53,   52,   51,   50,   49,   47,   46,   45,
+       44,   38,   37,   36,   34,   32,   31,   30,   29,   28,
+       27,   26,   22,   19,   15,   14,    7,    5,    3,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -537,8 +538,8 @@ char *yytext;
 
 int nl = 1;
 
-#line 540 "lex.yy.c"
-#line 541 "lex.yy.c"
+#line 542 "lex.yy.c"
+#line 543 "lex.yy.c"
 
 #define INITIAL 0
 
@@ -577,7 +578,7 @@ FILE *yyget_out ( void );
 
 void yyset_out  ( FILE * _out_str  );
 
-			yy_size_t yyget_leng ( void );
+			int yyget_leng ( void );
 
 char *yyget_text ( void );
 
@@ -646,7 +647,7 @@ static int input ( void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		yy_size_t n; \
+		int n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -758,7 +759,7 @@ YY_DECL
 #line 41 "compilador.l"
 
 
-#line 761 "lex.yy.c"
+#line 763 "lex.yy.c"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -785,13 +786,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 115 )
+				if ( yy_current_state >= 121 )
 					yy_c = yy_meta[yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 124 );
+		while ( yy_base[yy_current_state] != 130 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -996,198 +997,207 @@ YY_RULE_SETUP
 case 22:
 YY_RULE_SETUP
 #line 158 "compilador.l"
+{ simbolo  = simb_forward;
+          strncpy (token, yytext, TAM_TOKEN);
+          IMPRIME("forward ");
+          return FORWARD;
+ }
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 164 "compilador.l"
 { simbolo  = simb_goto;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME("goto ");
           return GOTO;
  }
 	YY_BREAK
-case 23:
+case 24:
 YY_RULE_SETUP
-#line 164 "compilador.l"
+#line 170 "compilador.l"
 { simbolo  = simb_if;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME("if ");
           return IF;
  }
 	YY_BREAK
-case 24:
+case 25:
 YY_RULE_SETUP
-#line 170 "compilador.l"
+#line 176 "compilador.l"
 { simbolo  = simb_then;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" then ");
           return THEN;
  }
 	YY_BREAK
-case 25:
+case 26:
 YY_RULE_SETUP
-#line 176 "compilador.l"
+#line 182 "compilador.l"
 { simbolo  = simb_else;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" else ");
           return ELSE;
  }
 	YY_BREAK
-case 26:
+case 27:
 YY_RULE_SETUP
-#line 182 "compilador.l"
+#line 188 "compilador.l"
 { simbolo  = simb_while;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME("while ");
           return WHILE;
  }
 	YY_BREAK
-case 27:
+case 28:
 YY_RULE_SETUP
-#line 188 "compilador.l"
+#line 194 "compilador.l"
 { simbolo  = simb_do;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" do ");
           return DO;
  }
 	YY_BREAK
-case 28:
+case 29:
 YY_RULE_SETUP
-#line 194 "compilador.l"
+#line 200 "compilador.l"
 { simbolo  = simb_or;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" or ");
           return OR;
  }
 	YY_BREAK
-case 29:
+case 30:
 YY_RULE_SETUP
-#line 200 "compilador.l"
+#line 206 "compilador.l"
 { simbolo  = simb_div;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" div ");
           return DIV;
  }
 	YY_BREAK
-case 30:
+case 31:
 YY_RULE_SETUP
-#line 206 "compilador.l"
+#line 212 "compilador.l"
 { simbolo  = simb_and;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" and ");
           return AND;
  }
 	YY_BREAK
-case 31:
+case 32:
 YY_RULE_SETUP
-#line 212 "compilador.l"
+#line 218 "compilador.l"
 { simbolo  = simb_not;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" not ");
           return NOT;
  }
 	YY_BREAK
-case 32:
+case 33:
 YY_RULE_SETUP
-#line 218 "compilador.l"
+#line 224 "compilador.l"
 { simbolo = simb_igual;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" igual  ");
           return IGUAL;
     }
 	YY_BREAK
-case 33:
+case 34:
 YY_RULE_SETUP
-#line 224 "compilador.l"
+#line 230 "compilador.l"
 { simbolo = simb_diferente;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" diferente  ");
           return DIFERENTE;
     }
 	YY_BREAK
-case 34:
+case 35:
 YY_RULE_SETUP
-#line 230 "compilador.l"
+#line 236 "compilador.l"
 { simbolo = simb_menor_igual;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" menor_igual  ");
           return MENOR_IGUAL;
     }
 	YY_BREAK
-case 35:
+case 36:
 YY_RULE_SETUP
-#line 236 "compilador.l"
+#line 242 "compilador.l"
 { simbolo = simb_maior_igual;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" maior_igual  ");
           return MAIOR_IGUAL;
     }
 	YY_BREAK
-case 36:
+case 37:
 YY_RULE_SETUP
-#line 242 "compilador.l"
+#line 248 "compilador.l"
 { simbolo = simb_menor;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" menor  ");
           return MENOR;
     }
 	YY_BREAK
-case 37:
+case 38:
 YY_RULE_SETUP
-#line 248 "compilador.l"
+#line 254 "compilador.l"
 { simbolo = simb_maior;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" maior  ");
           return MAIOR;
     }
 	YY_BREAK
-case 38:
+case 39:
 YY_RULE_SETUP
-#line 254 "compilador.l"
+#line 260 "compilador.l"
 { simbolo = simb_mais;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" mais  ");
           return MAIS;
     }
 	YY_BREAK
-case 39:
+case 40:
 YY_RULE_SETUP
-#line 260 "compilador.l"
+#line 266 "compilador.l"
 { simbolo = simb_menos;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" menos  ");
           return MENOS;
     }
 	YY_BREAK
-case 40:
+case 41:
 YY_RULE_SETUP
-#line 266 "compilador.l"
+#line 272 "compilador.l"
 { simbolo = simb_asterisco;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" asterisco  ");
           return ASTERISCO;
     }
 	YY_BREAK
-case 41:
+case 42:
 YY_RULE_SETUP
-#line 272 "compilador.l"
+#line 278 "compilador.l"
 {  simbolo = simb_numero;
             strncpy (token, yytext,TAM_TOKEN);
             IMPRIME(" numero ");
             return NUMERO;
     }
 	YY_BREAK
-case 42:
+case 43:
 YY_RULE_SETUP
-#line 278 "compilador.l"
+#line 284 "compilador.l"
 { simbolo = simb_identificador;
           strncpy (token, yytext, TAM_TOKEN);
           IMPRIME(" ident  ");
           return IDENT;
         }
 	YY_BREAK
-case 43:
+case 44:
 YY_RULE_SETUP
-#line 284 "compilador.l"
+#line 290 "compilador.l"
 ECHO;
 	YY_BREAK
-#line 1190 "lex.yy.c"
+#line 1201 "lex.yy.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1374,7 +1384,7 @@ static int yy_get_next_buffer (void)
 
 	else
 		{
-			yy_size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
@@ -1388,7 +1398,7 @@ static int yy_get_next_buffer (void)
 
 			if ( b->yy_is_our_buffer )
 				{
-				yy_size_t new_size = b->yy_buf_size * 2;
+				int new_size = b->yy_buf_size * 2;
 
 				if ( new_size <= 0 )
 					b->yy_buf_size += b->yy_buf_size / 8;
@@ -1446,7 +1456,7 @@ static int yy_get_next_buffer (void)
 
 	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
 		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
 			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
@@ -1484,7 +1494,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 115 )
+			if ( yy_current_state >= 121 )
 				yy_c = yy_meta[yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1512,11 +1522,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 115 )
+		if ( yy_current_state >= 121 )
 			yy_c = yy_meta[yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-	yy_is_jam = (yy_current_state == 114);
+	yy_is_jam = (yy_current_state == 120);
 
 		return yy_is_jam ? 0 : yy_current_state;
 }
@@ -1535,7 +1545,7 @@ static int yy_get_next_buffer (void)
 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		yy_size_t number_to_move = (yy_n_chars) + 2;
+		int number_to_move = (yy_n_chars) + 2;
 		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 		char *source =
@@ -1586,7 +1596,7 @@ static int yy_get_next_buffer (void)
 
 		else
 			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
 			++(yy_c_buf_p);
 
 			switch ( yy_get_next_buffer(  ) )
@@ -1955,12 +1965,12 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr )
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 {
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
-	yy_size_t i;
+	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = (yy_size_t) (_yybytes_len + 2);
@@ -2002,7 +2012,7 @@ static void yynoreturn yy_fatal_error (const char* msg )
 	do \
 		{ \
 		/* Undo effects of setting up yytext. */ \
-        yy_size_t yyless_macro_arg = (n); \
+        int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
 		yytext[yyleng] = (yy_hold_char); \
 		(yy_c_buf_p) = yytext + yyless_macro_arg; \
@@ -2042,7 +2052,7 @@ FILE *yyget_out  (void)
 /** Get the length of the current token.
  * 
  */
-yy_size_t yyget_leng  (void)
+int yyget_leng  (void)
 {
         return yyleng;
 }
@@ -2192,6 +2202,6 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 284 "compilador.l"
+#line 290 "compilador.l"
 
 
diff --git a/ALTERADO/stack/stack.o b/ALTERADO/stack/stack.o
index c24c7e8e435160fb879533b12b2971f9415cf5a4..42c993bda65f8ed39ae898d367099f06e6aaf026 100644
GIT binary patch
literal 2896
zcmb<-^>JfjWMqH=Mg}_u1P><4z#zbZU^{@B4h*~uJPe^8oliYFYkzojyZ-Pv4we8h
zk2`?XPl!DXR?z%L!K1VGg-2)U1CQp~2Mi^}`vn*n7+!$Xdvv;jbieTEJPzSEA7F&D
zI}d?O^XL=+Q{4<6-Jvf$I<LXyyImi6bVDRN12{au+|VBo^$)roIC=vZL4utD9IqKC
zoW$XnERYh9ZU&Fm10``VHpEpwJi4LAf}H>{@;^uo#JV34+tJ+g17sM?JD`ApvN7Gz
zT>FBdgvX=X^#w>v>w!`ck6u<ts6ayF<qQS}1~f5T++zrd9UwCx!HH@f%&Jb;AFs7w
zf!c{(C&=a94jkYJYOejkP<kF=0od%5hZzDgb21VYQj1FtFH|T?tjbJO$S+mMJG?kw
zAu}&CIWsXQvnnwqQICNOtk8-<m+FAQvm`Z_p+-Sf*U+F?p@xfr!QI)}N<qUVH7PSO
zPr=Yg&q&We*U&^0$^?ZB1A_>JVqmNaVqmNgV3g)z=a|6Az#zi_!60cx5aGxt(8lD<
z%NE1K4ocD>c^i;80|P@Zh=$2Cb$}Is<YPeM3=9k{AQ~=T50|e2i8C-ToCVQv`4eDy
zkPtQu%9AV%AOB;MW5$|e85o!uz)1;33nv2ugAkH>upb#17>uCeFh1CC3=9lX3=9mQ
ztcqd?0|Ns{9X4?d9P0I<=C6Yq1P&Vp1_mn}>g}QGjX)lUg%tw>gAWe%fjGn&ic1oc
zv-Of05XmtfEX0tTn3I#A%urlXl#`kVqLK?L8B$V<Q*#SIX__IeC^eNKH@~=~C=sfo
zptPizp`a);uOyAZ4(bmU1_lN;1_p*d{~^E+Nt_)?JPJu1S$!3fI4FI=%;AIj8)QDR
zxGa)57n1p!IK)Gs;!F&n^nh?@3{)IsJ`a*P8BlSUdKIYq3ZUZX>dT?xF!ef6_4QD3
zboFgeahUpgsCrP|12JLZu=Ft(svcwxFOoZ#K*eF|VfL<pii6Z6`|A``9Ht&-{&lE0
zNIkOoAEDwf^)T~)Ld8Mqk<C{CIi7)m0i+&;p<D(?U5O9}<r|P(0*F9T56c$~XyUN+
z&!AUanOl;W#GqGPQUswhV639loJ75n)QS=Yy_Cd~L<YU2;$jB9qI?J^IX^cyHLrw0
zFE76&RnOfoR2P!|^}yOvGvd>V5_40b)>2G?!T}USpfrwb7%UwAgCvn8(6|iJ3=9mQ
zu!X6IDYbwWWdhK^1*LtEUQpfusgVE?3=9lv3=H7XjTy>^QT9-MFg}b1nE_*iXiz+Z
z%p_O8A=G|!>l~m0lR=gsVUS%&Tn0<1egkAd1_p-9Q2n6rMV5lOA4WSt^&_hRu|Grg
zgV@LzrVl0-4%LsY{0CG3)Et4S1<~m455f_D9-zXIfq?;*?m_Vf(hI^Mb71iYau3uh
zkT4uifJR6FNC5)_12@zjbp4?E4XPBb7sPk~N>mIC3=tp>5{4QF7ZHS(lW+kjV+GXx
LiBLX_Le~!fA{^FD

literal 2056
zcmX^A>+L@t1_nk31_;5zz`(Er#8Uu?Ffd3mFfdqv_z*4z*}x1Dx&c)K<Fhj`Fn};r
znjt>EB(<Uhq83EP$A`E^gn(G6IE4wq2bl+AMzAt4$bf`c7#ctn49CYO7nc-e=A}ag
z(9MIHGYu+l1M(P@4WdA1gJ>9zk5A6eEl5l*i7(A7&&*4SkN0tb$$@F8M_`V)!NR}*
z60%@pV1OEpVx$oR1A_!KOc@yX85kJ(!N!0Tfy5)&7#IW@7#K3x85kBYFfed4Ffasw
zRWLAcFhDTKTpk7n23DvzDb#;whKmo_8GgQCclasK2&Fk0cK&x}n0SCW{@VY;3>W`a
zGp+pF%rJ35v;2>T+zdZoa6A0uU}X6Cf_=VJ1_OgRBLjno3<HA*15?8#1_p*HAoCV9
z$NvDaIanAbGW>P83}S=qV1U}e!07OEVRQTsCWeMdU^%dv4nJSAJN(pOg}CD-x5G~j
zMuwkYn$uw?2P=c11}DQ#kbQrvomT!oOoSW7=Sy)gLfi;(H>TUg85l%haxb7^!NKYP
zu@}|;LXiC+zk&S1$msAB?tXTMpCCVh{PF<AW?+~?$ek;i<9~p|5y_1ZF@zgWK*N`T
zfnfpz1H(j+`I?}xM&iTdK;aIOf62@+k%NI@0tX|*L{Rv_<Uw*Ux54ar!Oid!<W7kH
z89u%cpD(onExbVHp_>C%&+70Kr2pgp|KiAYfXqXVpMcDqj6{Xh;*!G)70ME;G7}Z@
zOBM1CFV0uU%*#y9Ow7rwN=!-A<6__ftF+=`(4{)yVyID2)ipFIR;b}(@GMEqMav}M
zVoZPml<iPtz~T%H3`-!QpsWUALCGUfdIf~Wkk5gZcc9F`051X{ia}%m6FArF`Y?gZ
z2_Fv#ZEFG*H(&ziYabm5ZTp20qW%q(e!&Qle*&Rx?=XTb@d1^KEDQ{`7oh4+Fha~f
z0-<dWK*jekGJrho11igz7#M6fK*iTEg3EcI6%g7sf{}rNmw`by07|<sGBEHkFzB{0
zK<Eqx1_nL`2HhA21_l9;Iw(H@Qns-<Kxt5TGBPl*f&31lXM)s0!w4$Iz{kYE04tY4
zi5|r7g~m)HNIeq+!!#&A6UzSz<rhKuub})cC?95CHHZ%?kU^M%fdN#t@G~+nz~T|)
zUJxJTPLO-#7#J8pd=MLi4WN8jyb3`41(E_|H#EKv8s83$4=TfvywAXp6R%fXQp6Bn
zTvC*in#T|y4`L-3RK_P~WHZDgGE97NNn&y~Lws(2aY<1kj8{;UnOBm=5T90*n#vHL
zo0yZ6pUe=Sl3JXaTL8+14Dm1q#2!5psD*mQ3^^sa1x7Hg5twTT;~Ijw1`G@Uk%)AN

diff --git a/ALTERADO/ts/ts.c b/ALTERADO/ts/ts.c
index 97491ea..d7f397f 100644
--- a/ALTERADO/ts/ts.c
+++ b/ALTERADO/ts/ts.c
@@ -51,7 +51,7 @@ void insere_ts(char *ident, int categ, int nivel, info_t info, ts_t *ts){
 }
 
 simb_t *busca(char *ident, ts_t *ts){
-	if(ts == NULL) return NULL;
+	if(ts == NULL || ts->tam == 0) return NULL;
 
 	simb_t *p = ts->topo; //ponteiro?
 	if (strcmp(p->ident, ident) == 0) return p; //str compare
@@ -88,6 +88,7 @@ int retira_vs_pf(ts_t *ts) {
     }
 
     //retorna novo deslocamento
+    temp = ts->topo;
     while (temp != NULL) {
         if (temp->categ == VS || temp->categ == PF) {
             return temp->info.vs.desloc + 1;
diff --git a/ALTERADO/ts/ts.o b/ALTERADO/ts/ts.o
index bd69dcebf38579ca43f07d9c463a8aa80489343e..c46d86d045327bbcbe66ae8f0e1ef0fb35de61c6 100644
GIT binary patch
literal 11240
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

literal 11248
zcmX^A>+L@t1_nk31_;5zz`(%4#K6Fy01{zfkYr$B=m5(?_~@j8EJQ>Dq=$il0mf%%
zU|;}Yka-{#@$n_86(t}R1jomRxJHCP*vRA=kcA8k3?TDBMn=dpFzf*-U}0zgQ7{}I
zpIls0l$n<f6+kx+W{wod5C#T@FVawjPzovx<uNeC$0z6K6(byoZr(GfelDmEJ~=1@
z2L&=Ow;(aOB)&ASJTosPKHkR#S?LF;c@EI9m5^g#U}j)ouux@SfZBoLL?Z?U1_@{!
zF);8mFfj6ijRPqHiFc?nFxW9LFl1;lFmy06FmN+4Fa&^AFfeE`KrqN$V+M#ERElWo
zzca(d2kZ<#U$8s;lxKv}oD4hvJ2Ol?z#M<=zcb^-ztt=&|1vX9e9X@9b3wEGkA=?i
zI~Fm^?^xU{_v48$!_ODO4nH{<89u&XpD&fcz+leEz#y`pfkA|Ut>F>_1H+UD{2+bt
zKR|2_7KVuoe;qD^*f01UelmdU1k(;b7dFTLU}9*P1d?0f9KYiwzr#-rPKKQ;n4xT5
zhMgdB4n~GTkX;^(5W7Hb=VWx)`HJ7+r>7vpP7YRwonXD93_B+>Fo=NlutM~3utW4b
zWOw)pw%?IqViN<zonUiVq2`E!%xT!k@Ua%*R$hjm|HT=0g8cUqq+i@&rzWezP7X%S
z>=)bTOL4G3%w}Ljm<Mu)Ca=TKSK<vj6)LrUaI!+!nw42UG@)+x;&u4>TD)PWS7r7O
zPezcv4nJRtH|*r7%=`iK3(O3VJ`Glg8(xSz?Brl&5PTudu=CFU|Kg!Azj8wSx&lY|
za3cGW6B<^M3_D$5`gtMxUr-uW!Vq_Y!%CQhuo6ZJE8&KnAU~sol`vXZ31bN>s6KdD
z2}8q57!p?CxE6%QwIah#4pC@0s6yNfiengtq;H3xpt#f!WdNs}m%<J|H5eIwf@w~O
z*`Txv((||4W#xZoMo9i)2IU{-m46R2OkBV$|KlM)L_aLQbindUv-}S|1_lvOn&e<~
z`1yjH;pYo(Q2ucExsVx}cNie?vI43HB)_6r{)YksgNO!0L(mI;h}&QAL;Ru%au+mh
zu3&<sO^_ZAQPRxkU|<jd`3qz&IKA;R?0o+Jzxe)U`5z$h1<mn4{#HA${Lc*aGpI~q
zX88Gn8Bs34{P~}q;U_D|pI|wMpD)-MeuB(+!0zx9Ugn^M*$U?PAK>s3pD)D$P16uD
zO!N02mfw*AO2=S55PyQqM^P_6Uy75VA?PJP!%kSZz~#YV#!&b|e7=+>NDVi`P7QQB
zL25vGOnko73vOtbb35!r4*wG@3}(pog5ncyhp5BPmCW%!K<Nh@A0YFfW!ed(xMg5;
z_z5Ztc|hUC?eLQWqz+^+`+O;E>Ol5^@B>h~VPKd7wgaSxm7x%nHuwMkFAkCi+X*VK
zLGDLR7a+ADcOZo`SS?5#YVQjq_kr>ZC_St=EWd*t=0<4R0;i9|@;gBGEjS#%10{V>
z7{3#UjbC;g@e8U8VDZb0BYr_;ASis8q4CS?u=52wl+Et2(}Rn|_yyU?K3}SX8IccR
z@%tY+-*P+r)D%V3DIL(X2aX3`P#M&)lc6#bT$h5v7CBFT`2SxVq>h0Xl5Uh>aRQ1z
zkbiL5kCcXA60)Bg&3<l3*$2u8==Ou$2g110<K)4T9+BEO3!3G3EM%7d0m-WjA3@~+
zF=Y<8?uC^(!VEw6AC?2B{S}AfcC2iU-vMhQfXf|uhMl;~d?61_WAYB5vI(^e5oY)a
zahJnSP#F%+-;4}D9|%L@8_WmAH8j72!X9KlB#+ANxcmRVIEatz9u8>!U(p=D<25tK
zDv<muW{y=W56A6z!OXepB{RcBZAONlTC5D9wiu{9n!v!oFcDNPfy@VCNc{*2D-Ec5
zU@?$eK;;Shd?|Rj0ctCP(l;xEAiUgwi2Zya%<%Iqs9r%SH<0SmW`>Io<QaB8lxEoZ
z2wFeF>IHaP2UJcnLhA)k{)LrS@}NA$Q263HqKyiQGf;j3*SG8pKmQ~0H>5oat0$Nd
z@%4h;VdqP*S)AD~md}@ZfmA+da6rlgP}>4rR>S-b%fsvrKRE=U?qHuU1*=zHNIUEV
zwUIOg8Fqrq2gMhttkDGJUyvS9IKs+bGR+c2HVax7yg)Wf5s$kRQQZZKa~KBu6;$T4
zGyL52|G)VEW@x{m8Px7!UHR9UaU#6W&@A_3MROdyE{DY#L<}>|!0mQW7$U{lSq26X
zP<vxxa~!w~T)-^%V+Aw9%o9*QfyF@K1}b;O5n&A%2Zez+A}wqO*C}y7!0`ss11c-I
zAZ0aJ4=Bxo+=8TM6-bZs{2j190!SSLFT+oeyH_&D{m>9)*a`F73vq}z2gq!7hMoVF
zq4``L8t%&xZ4!815r>8eDE}bU5i3}s=?o+f@*^~D!0HxQ{{!S64p5z;4l1)Xf4l&x
z7j)POavQimp$=(VYcMkG1j|Wckz-}p`BK?oX9h!q5U31$DemwS<S$VCgY|&oUL4Yf
zdjawb)PFCOq4k0?!_MRX|BJ_i!U_~mAoqg89+dvM@rQ2^NDr~$%a0Vk;tV_gL;D`!
zJ`yP2VByQnuoE7>{7B)8R0qPt7bFjIFQM=ihlVdmJ#zSpBZV(W4mo^ba-i@PMhah0
zpH~!`Hb8nn;mZ#VUr2wi5Y*p$fz+P?h3`uwGeGgHfz*%rTkX2?e>0?Q{wIIm%D>f&
zEB`t(O#FYC_aX-a!vs+I2f{0w<$gSv%<%KYWN5e`w*$dqP;sR8Cj$cmygu+}Vh};*
z!`Kh989?>M6i{6Pv5#RQsO<}9voidIvpJF2yhv<8B(^BnJh;6NvLW>!#N7@*U-U!6
zs~_rK@%d66E|9bav*$%O!n_yl2sS69!_Sq?vOhQk9V%Ba%T+8m%zTkavf&aVLqia#
z&RfCS5VV3>(BcKiY*5+&r7dO-trzJGKRI|AKE9YfU+RP{gZb-pho4*w3=_N<876Wt
zFbH^7t_HOMx)~VduOYhuY>uGA&KJi){eDQl1D-yQJM82Dr9E*-d!LhmK?JV1o#7`s
zAJnfxmIvq2eutl&q7FM@bvY>97c6GD=*-w~=^-=oDkg@8AQlFO2`$h%{V*ev9cW<$
zb}OhH1m*GL^QBe@LBjOGYxao`!Wn)Z5^A{gC>|8{4M7jLGwcL~*Mo3}pO3aX?0g&#
ziWf|`fZTv=|9^Hy@c7CLcE_DB`%&A%96S*F!0rH*YwV4XF%m{_Spyyug7u5w;SkL5
zQxH`5f#M5Y4<|$6D^MB-=K+R^oD2*TG#MEtdNDExc`-5+aR_$KdJzor4}-{yV27VC
z>KT4w*v;y&6BLG^F)5H)Ff(BGqnK6A@bgu@!_ODh4nIM8L5q>$rv@v-&j-cq6CZdp
z{5;GIi4)}T0EewVIK5AK=<V?H1vA5{2mTH}4+}M1%3$Dl&BV&^5fskI;ibvSPzWlk
zL1R*|`Vef6JH#BY8SbcNFfuSqP=uxdP`UwOkeQIS2;<H<|No1F&2UCC!x^_3FPt5I
zg5pohkzpdTUqShaSrXz;P`Dxc6&6oijtmn);f$PaVPS<&Kgi9(Xz3SZ4yeubq8>~B
zs;5u>dQ{D@6WO1SsvUNM-6aXB`w68RQ22rK?P2DNu&_fm?;3Ks&<#zaiVizplw<L8
zIhFjZN_?3D_A9n>Lz;Es1AS<@VGhb?4M7jnq2-3Y!_P<Q4m%&46IpJ&ht`?z9SD~j
z@1f&`_{t4!v~mMk4>9G2Hpo8=A}_QZe!eJ%#tEqWftf=}xslKC^Hs6K&lmY<<;G%`
zi4T-<lpCP1Rfpu&hsw}$Lmf50g3Ar0@WNVdfXtDHm;)|1<WbGQT5h}tm&bxH-ZMbT
z4UieqNM=amHsgi#z?2&(b!Rs;?)n{m@-RC5eBBL6gB-jLJ3)Qp7wwRE&|zfwsm;pp
zQ;U<~rv|9qznI~oh9JYw6^EHGg2stq?H_PBgX$kpTdtqs=dHj0#gXMe<<?42zX)6p
zf!Zt}%=sEL_5hnt0h#gtFz>{_)s8Fw<R4lAnwt?|U|`t5z`#(z%)pSs!oc8ImRX!{
zr4W*uSCUwgS(d1flB!UYnwwviTBMMhm|3ilS(2Jpte~NqqN$LQuTWT;s*tEqkeQQ_
zs8En!TwIz7meNxQ0_n+2$uCw&EJ)2uELKoWfoRp^VhBl0O3eYA9DI0fZc=_uez8Jo
zamnF@3T25^nTZPdr3!h67w0Qv=4B>lCgx;TC8i|maWQaV(PzcQpi6bY#ZaT5s%vOa
ztN@}dP$-xvj5Y$P;$rYjNzE%^a84{qO=s}SEKAK{2+1tSXK+a^&dE<^a7ism%*jYC
zX7Dd9DavQiWe5vq@XRYo%`D1iaLUimNlnaS@C$bJWKd0E2nb?OO{oS+gQXb4e1aH)
zT-_L=Rf~00i(?sd7-|_*i**zN5{nXZi>(w?i&42L3;}Ko0g1)MiRr1iVCk^Loctn&
zpwzU~qQk55k~0$-+(P}ZdNBp;VVKuoG}Mc_81sSPX<z{c&@>~899W!zfx!VZY01C<
zo92b9Nq~qme1V8y$cI2h96<6|%%1|4e*l>uh4Mg(A-IGMLQjCW3`3rU6C%F?hyFF7
z$xsFchBY901x)`%@Ids>fcOK${11@nSB5j33=9HT{J%nyfx(1<L3e^A1A{38LrxEb
zj%|=+V6bLj(5;aKYx1dp(6%X1@dQZ*22}<IpBM;jD<H|hz{9}c!vmphK@;-E3=Fz|
zBp4Xv85n$iKxo?o5)2F=@jVg@3~~$%K06?^ZI1*4gE<3(ZifT|gDeAsPYZ;$&5>YW
zuw`J-^?=H|NH8$SFfjNyKxkVHsQe#si2euS5cOBYA@*DlXJC+KVDLEup>3y#GcZUo
zF!)S>(6&9|;I#uj9T3{qL!5y@n1R8^1wz|8h=b>|eQY4Kt%x`SgE#|&j{t<WJt79N
z=YSXkgBSyY&mIVEJ4K9v!HR)FHvuXiBL<p4X7GuC(6$<45PMW0w5@~~1A`C)gO3P=
zw&f6GU=U<r@L_?_wr4~c7*rS-d`>`U+XJEyd-sSkFern<5klKe5oKUd0{IU@+xCbu
zFeoxG_;f&M+XAS*9MAw71A|Wngtj#ig}BE6Lffi{LfoSOp>0J(A?^`?(6%>3z)LTD
zu0Uwp6Cx1z91(%U_W=lP+W{4C5rM>a1BA8>5rM>4fCwbMeIT^0i3lYA1fcRfB9Qpz
zfY7!dgdy@rgdzG@K>2foA@<J@hQ#+22yGi942kau2yGi842kam2yH7M4DmM)gtp}n
zhQv1ugtomS1c~n(5Zbm!2x3o%5G1}^Ahd0a5G1};gculj85n#NAhfN75CelKC|)77
zEe}*bhY%z^us~?rD}oSrT!7HFM+70^e*i+;ZV`lp{{{$cTOkO}&pss(+BQKDyxPJi
z2148F2twS$BgnwO$H3sj0ikU{i3;StKLTKP+I|s$<l7Gr+V+G1B;Ox^(t8BJ>o9zF
zKxo?y0^oHYK5HPf?Ggb722KVBp9K)wc7^~00|x_x&lCu4+amy8U*ppOp=}!k7#P?X
z7<_6Vv~7t10|P4qgHHj3w#|Urn*b@Sd}1K9Z3I+2L;$@0#3ukk+j>C7T?80Fg`<xH
zgtlc7fRtyTLeG?eA=ZMQfx(i2L3afogucNGp*^7V9v%h;Z3YHi3oeNNO}N18jC>3r
zwCxE_1_lcT2Hgw}2ps{XEub{W(;)d9>=1d-1R{vv0Oj9cg@~Vk(hHz82MYs(4ai;0
z5W0m4;;sNFZNkLBV8+0p8^H(>SAo(Tj1ciD3=q140V1En0LdQ-P`&~q*dJ`5l~ari
z3~Ub|YjfBRK<Ncg8nkE$BoERDqCxc?hz8Z4AR1K5faqu@1_nM*T?7(fU|`T=U|`^5
zVqk!+V+sPvGchn2NI?{+Liy=XK4^j+q`nTyU&08{&kS8>)DGoyLit%xK0lQ23+0PK
z`36wF6qH{JwNDYsKMj??1hvltDz62Vmxl5UpnOx1f0!8<o<aGEAbCaxhCR^rUhkmh
z8A0U_Liwgp{wyfp7Rs-M@?D|)1SsDN%6EqHeW83cC_ezoF9zAq#J~^&<=a8|5m5dU
zsQN@GUl1xE3*~Qz%BMp46QKNDD8CrW&xi8Ep!`B8-xA7ifbwOa{C+5(9ctfFC?Aww
zLGe2u%Fl$#PlEDqLG^Eh^4CK7TcLbCsCrm>Vg&J#;^PWPJqrT^Y+YJA0|Ns;BLf4h
z9h3;=!`e-vj1YNPI}bFV3sMhBo#3(ytRIxlL1M~K{jhcuFH}FQomK#qhqdeOLHV$D
zU^J8uYd0Q)<S&rXU_2d-{|Sx15{<tdjsFIX&kD)kV6#C4C~JZ+hz-Km(9{Q`@$1p}
z4Dq?Cxy7j^4Dp$H#i>Q9@g>C|Cam)V=H})XmlP#}m^tx!#U(`yIq{%ngn7j!dT=Sd
z6mWMVxTJ_7zPO|)Ik$izz9hdOpCLZ6q!iqbiZ226O5%%BOEQZR;|q%7(@OKeYI9Qa
z7~&ICGLtj&^Ah6=Kz$2_`1ttZlEmcf_~eZ2__V~#9EeC!azQ0X2+GS#PAq|Q^9qVG
z^Gebnd<dHXW?NZtd_fvRd|FXzDnu*H==9RWq7;Vs+{7GEUkR$5AwH?JI6094;#)l<
zOBl-#&Vn<HEZ~xG7Mx*Z4wr<p;0z-(xFnnfXBe5nCE+YM!`K8SX#{5(!dWH^IVHIT
z#xNzuaF!9AWe8^(gB2UW6~kFZaF!vQWdv4i2v-be8NpeG2o_ke0Yi>gh^J+|0bCQD
MWdvs#8Za;b00X}O-2eap

diff --git a/AvaliaTrabs/MEPA b/AvaliaTrabs/MEPA
index 5b78212..219b60d 100644
--- a/AvaliaTrabs/MEPA
+++ b/AvaliaTrabs/MEPA
@@ -1,11 +1,9 @@
      INPP
-     AMEM 2
      DSVS R00
-R00: NADA 
-     LEIT
-     ARMZ 0, 0
-     LEIT
-     ARMZ 0, 1
-     CRVL 0, 0
-     CRCT 1
-     SOMA
+R02: ENPR 0 
+     DSVS R03
+R03: NADA 
+     CRCT 0
+     IMPR
+     CHPR R01, 0
+     DMEM 0
diff --git a/AvaliaTrabs/compilador b/AvaliaTrabs/compilador
index ee427a95eb2852f72843c33cef74c5830b950ce3..203a4ac2e55297b39f2f569bb738809d4f1c2261 100755
GIT binary patch
literal 54240
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
T?ZL#r^l323Acdv@jmrQ4{|S5(

literal 54640
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
T-$8sB);|kj{ew_&5?wz4xvl}L

diff --git a/AvaliaTrabs/forward2.pas b/AvaliaTrabs/forward2.pas
index f465869..b0149a3 100644
--- a/AvaliaTrabs/forward2.pas
+++ b/AvaliaTrabs/forward2.pas
@@ -1,18 +1,18 @@
-Program OutputLines(output);
+program OutputLines(output);
 
-procedure fun1() ; forward;
+procedure fun1; forward;
 
-procedure fun2();
+procedure fun2;
 begin
     write(0);
-    fun1();
+    fun1;
 end;
 
-procedure fun1();
+procedure fun1;
 begin
    write(1);
 end;
 
 begin
-    fun2();
+    fun2;
 end.
diff --git a/ORIGNAL/compilador b/ORIGNAL/compilador
index ee427a95eb2852f72843c33cef74c5830b950ce3..9aaef70964f7a3178989a5dfccd6e99ba0192ba6 100755
GIT binary patch
literal 54344
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

literal 54640
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
T-$8sB);|kj{ew_&5?wz4xvl}L

diff --git a/ORIGNAL/compilador.o b/ORIGNAL/compilador.o
index 5d54ba2ec447c88f824aa9d112807c77cff6b70d..9543fbd891966276d2f63ea3267eff5c5b203fca 100644
GIT binary patch
literal 2424
zcmb<-^>JfjWMqH=Mg}_u1P><4z+l0KU^{@B4h*~uJPe^8oliZQ-w1eg*8cG5EdAio
z%?gtBXgyG>;L!_VcOHYYj=uoQc0weYYkx458pE`7hko$r<%P(f^XNRj1H^==hZ@=m
z(f-;9uEqC*M|bECk6u%dT6}sYoIH%|)NWC*2B^8+zF3Xe|NsC0|6m7z6hm-1gRg6V
zBZC46s1|cEs1{o(s1_@5F}M~L<tyYRD&%D5Wh5%7rYPttfaDq6ot>=|G+a`XG86L@
z42|@R^bB+jO*ElQ1`&v{42)Gl42%^5jM6;p91|EB7-SeA7$m(KL^$#Zv@tpJvN0{=
zVdsFz*?`0u7#OTUG)x}E#)Cm|%fj&SKQ<-ISYw`nftdjuT_{@k85kG@8Cc+AFqSw}
z9L9&y@=$RBs16vd3Kds?igQ3|4F(1VAtd*J!+?Q-!I*)80j3wK6iiv-5O>5O?g2F)
zW-d4k85kHsaHtQ*As&ZAoFO?sw;(eoF(tpqO)r_DI5RgXKPR7|C^aWBIWeE1BtJVf
zk0GsqAw9Jy(K$aQGd-UnEx!OPR+O1nlE#phmQz}s!H}6-P?VXQ3QAoJc{vQlB`K*z
zMGUDGnI&LvGYCT{1||ju26hGphCiS*`~UxcP<Vr+K;q0u;+h~q1_rQtkoZ5SdPAr<
zD84w6)LTHsLFOQv?}kG>5J?<lJ_v(^5<vt5131NSA(@{66-PI}04ff04>ywfN~k!x
z`VJ&<kexhG{!}OpG6&h-IZ$zQbCy8GLF$q1-3b*3sRxx&uy8(rB+iHA&eKTZAoqaF
z8wLi38&GkO`N-~hgd`5iTQKus`2u7w2t$=IK+0f9Jc7hw>6k&UxH7jSF^NI1xTFX|
zXTVsX#HUx1T2aEFmy%eL$e@>0T+E<Xln>z~=jZ08=9Mt$<>i;8>bd)c>K2zICTBC~
zfwiS(#HSS{=BC2zr<4Zy3se>%RV!d4Vg7ms<{=1>S_F@QK^mHtVCrFV2S9<%z`*bT
zssR+nASSF_k$@^xV_*Q6E>PuAQ3eJzkYYFw!9W+*VPIeYnTf970ICpFej#*YmRX?u
z22u)&J7je*{RYT_P`4rrfyz6OespySAVCHO22l7StA`4M{R|R!!eS;!yaA>V#6iO7
z!l3dHB!=#OnEnVPy&xtitUxpj2jPgn1<<Mn<}XnEf%JkfNG~k@u-OfgzX6h9U|@i`
x1C)nBc@14ZsEk98JCObes9-XPgM^{R!bJobK=mS=3ujz_x*t~F!6eZ20|1K$N&)}?

literal 2736
zcmb<-^>JfjWMqH=Mg}_u1P><4z+k|RU^{@B4h(z@ybPcD<$i^FbUyWHek0(~S^LAI
zv-E>UH!DbmN9%!7DUV)LFuT_lM7;nJ9-R>B=Gq?&r3Ns?-Ju^~YCDhb0I7p0hMLuR
z9L#-f1Xu6-!J|9$2N8NEoIH%~%5G7R1qh?C8ngfZ|NsBNwlXj<lr#9c1~@V(fPiW-
z7lUfCm4a%q0vCg8QBl4^UZO%yW?n|3f@+F_t^!D&!QI)}N<kwusWh*oRKZfuM9)Ci
zuoTQQtTQsuGceIJ(u9bEoWj7uz`!8Dz`y_s8h5`?1||lE10XSGuq*?E2$W{53SwZa
z5MY$%Vdt2@$iN`O0Kp*XWgx<pPoRy-nU{@eE)P2gM9u~z&cMK6529i6AT}NhN&_qm
zAOB-h!i+VAFfcGPz+8)}iy7=YR51{b8SGmS3l%dnASE^=DP{%^Bp!mv%)p7@AhDPk
z*pPS-CO-oMgCN7F|Ddo1iNI)a9OCj&aZucV)Wc|1usBRN1KedA3=9lHNZ|vH69xtb
zV`%(>%s|GTIK=&Nh==14kAvC^vkx5C3=9leIMnCj5HG<Y&XAm+TacNPn37-QrkBi6
zoSB=HpOeo}l$w*6oS4s0lAoQL$B<UQke*tU=$xODnV!!O@9yL8<meOc@8%Zl8WJDk
z=;Y%X&ybd109IL)nOBm=kd~HHTAaa<nOjhlnVSmAOAL8A48<iWsYOK$sTG+Z=YWF?
z6h9ya69WSSF9QR^A5iA}|Np--NRWX6lwZK92_~+ECjJkqULPtBiaAhR!ql5V#nH`o
z!66QcACMGCJt)t@Qhp3bkbwc5;suf1nG6*NsYiByHdGws9w8+4Fps0FZ-%M|iG%Fr
zf$}FnX^=U{_D+Y2gVZD2J0B_zQjcsexa5U~C#cMUh0lJddXPDw!V@Nb3P~K~9*`VJ
z=sJkN5)KcM#Kn;Os{j=TnGeEHE(4^lfy6IJ9G1Qr^olEUOA?b9^omQ0Aan+d1xl29
zC8-r940<VvC5a4rNyWtsdPVsVPI7*3Zfaf$gI->KNvfW^U#M<zNn&y~l%Jkgs#j2y
zUyxc<QpunPHYqhDKCLJ*Hx=e2ifE8OL1im?$prJ~Q#8{-YLSJcp<xPB50hH~ibw_q
zh6hj$+zbrhQV3RJN<bB=LB(O|6)Mc23e^YW!)SD29R^5Qhpt}(st{%$Og}o`5Nbat
zE@5gwG)%t%h=YWo#==D`q59F)ML-pT+y_?-RSV)nr5T)%#6aRO+yYYo6M)j_!a)oS
z;Mxh@{T)z+p!kJq1ykt$2bISlrRe%sfCL#B7$U&B5Cpn@P$~pPHG2GaKob-!TtM*;
zsuf}SVet>L2HkG3ZBRiCC=DuCxS(+jl85OBnTa0vAbAatqZk+%DnT4146+Z2%K$2y
Ru<73cbw8}!gXuxn4**=#WG?^!

diff --git a/ORIGNAL/compilador.output b/ORIGNAL/compilador.output
index 987a2ab..8605752 100644
--- a/ORIGNAL/compilador.output
+++ b/ORIGNAL/compilador.output
@@ -1,4 +1,4 @@
-Terminals unused in grammar
+Terminais sem uso na gramática
 
     TYPE
     ARRAY
@@ -8,39 +8,39 @@ Terminals unused in grammar
     NOT
 
 
-State 79 conflicts: 1 reduce/reduce
+Estado 79 conflitos: 1 de redução/redução
 
 
-Grammar
+Gramática
 
     0 $accept: programa $end
 
-    1 $@1: %empty
+    1 $@1: ε
 
     2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    3 $@2: %empty
+    3 $@2: ε
 
-    4 $@3: %empty
+    4 $@3: ε
 
     5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto
 
     6 parte_declara_rotulos: LABEL VIRGULA
-    7                      | %empty
+    7                      | ε
 
     8 parte_declara_vars: var
 
-    9 $@4: %empty
+    9 $@4: ε
 
    10 var: $@4 VAR declara_vars
-   11    | %empty
+   11    | ε
 
    12 declara_vars: declara_vars declara_var
    13             | declara_var
 
-   14 $@5: %empty
+   14 $@5: ε
 
-   15 $@6: %empty
+   15 $@6: ε
 
    16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
 
@@ -54,37 +54,37 @@ Grammar
 
    22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento
    23                         | declaracao_funcao
-   24                         | %empty
+   24                         | ε
 
-   25 $@7: %empty
+   25 $@7: ε
 
-   26 $@8: %empty
+   26 $@8: ε
 
    27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
 
-   28 $@9: %empty
+   28 $@9: ε
 
-   29 $@10: %empty
+   29 $@10: ε
 
-   30 $@11: %empty
+   30 $@11: ε
 
    31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-   32 $@12: %empty
+   32 $@12: ε
 
-   33 $@13: %empty
+   33 $@13: ε
 
    34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais $@13 FECHA_PARENTESES
-   35                   | %empty
+   35                   | ε
 
    36 paramentros_formais: secao_pfs
    37                    | paramentros_formais PONTO_E_VIRGULA secao_pfs
 
-   38 $@14: %empty
+   38 $@14: ε
 
    39 secao_pfs: VAR $@14 lista_id_pf DOIS_PONTOS tipo
 
-   40 $@15: %empty
+   40 $@15: ε
 
    41 secao_pfs: $@15 lista_id_pf DOIS_PONTOS tipo
 
@@ -97,7 +97,7 @@ Grammar
 
    46 comandos: comando PONTO_E_VIRGULA comandos
    47         | comando PONTO_E_VIRGULA
-   48         | %empty
+   48         | ε
 
    49 comando: numero DOIS_PONTOS comando_sem_rotulo
    50        | comando_sem_rotulo
@@ -109,29 +109,29 @@ Grammar
    55                   | leitura
    56                   | escrita
 
-   57 $@16: %empty
+   57 $@16: ε
 
    58 atribuicao_ou_procedimento: IDENT $@16 atribuicao_ou_procedimento_token
 
    59 atribuicao_ou_procedimento_token: atribuicao
    60                                 | chamada_procedimento
 
-   61 $@17: %empty
+   61 $@17: ε
 
    62 atribuicao: $@17 ATRIBUICAO expressao_simples
 
-   63 $@18: %empty
+   63 $@18: ε
 
    64 chamada_procedimento: $@18 lista_parametros
 
    65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES
-   66                 | %empty
+   66                 | ε
 
-   67 $@19: %empty
+   67 $@19: ε
 
    68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@19 expressao_simples
 
-   69 $@20: %empty
+   69 $@20: ε
 
    70 lista_parametros_parenteses: $@20 expressao_simples
 
@@ -162,7 +162,7 @@ Grammar
    88      | termo DIV fator
    89      | fator
 
-   90 $@21: %empty
+   90 $@21: ε
 
    91 fator: IDENT $@21 chamada_procedimento
    92      | NUMERO
@@ -171,23 +171,23 @@ Grammar
 
    95 numero: NUMERO
 
-   96 $@22: %empty
+   96 $@22: ε
 
-   97 $@23: %empty
+   97 $@23: ε
 
    98 comando_repetitivo: $@22 WHILE expressao DO $@23 comando_sem_rotulo
 
    99 comando_condicional: if_then cond_else
 
   100 cond_else: ELSE comando_sem_rotulo
-  101          | %empty
+  101          | ε
 
-  102 $@24: %empty
+  102 $@24: ε
 
   103 if_then: IF expressao $@24 THEN comando_sem_rotulo
 
 
-Terminals, with rules where they appear
+Terminais, com as regras onde eles aparecem
 
     $end (0) 0
     error (256)
@@ -233,1925 +233,1925 @@ Terminals, with rules where they appear
     LOWER_THAN_ELSE (297)
 
 
-Nonterminals, with rules where they appear
+Não terminais com as regras onde eles aparecem
 
     $accept (43)
-        on left: 0
+        à esquerda: 0
     programa (44)
-        on left: 2
-        on right: 0
+        à esquerda: 2
+        à direita: 0
     $@1 (45)
-        on left: 1
-        on right: 2
+        à esquerda: 1
+        à direita: 2
     bloco (46)
-        on left: 5
-        on right: 2 27 31
+        à esquerda: 5
+        à direita: 2 27 31
     $@2 (47)
-        on left: 3
-        on right: 5
+        à esquerda: 3
+        à direita: 5
     $@3 (48)
-        on left: 4
-        on right: 5
+        à esquerda: 4
+        à direita: 5
     parte_declara_rotulos (49)
-        on left: 6 7
-        on right: 5
+        à esquerda: 6 7
+        à direita: 5
     parte_declara_vars (50)
-        on left: 8
-        on right: 5
+        à esquerda: 8
+        à direita: 5
     var (51)
-        on left: 10 11
-        on right: 8
+        à esquerda: 10 11
+        à direita: 8
     $@4 (52)
-        on left: 9
-        on right: 10
+        à esquerda: 9
+        à direita: 10
     declara_vars (53)
-        on left: 12 13
-        on right: 10 12
+        à esquerda: 12 13
+        à direita: 10 12
     declara_var (54)
-        on left: 16
-        on right: 12 13
+        à esquerda: 16
+        à direita: 12 13
     $@5 (55)
-        on left: 14
-        on right: 16
+        à esquerda: 14
+        à direita: 16
     $@6 (56)
-        on left: 15
-        on right: 16
+        à esquerda: 15
+        à direita: 16
     tipo (57)
-        on left: 17
-        on right: 16 31 39 41
+        à esquerda: 17
+        à direita: 16 31 39 41
     lista_id_var (58)
-        on left: 18 19
-        on right: 16 18
+        à esquerda: 18 19
+        à direita: 16 18
     lista_idents (59)
-        on left: 20 21
-        on right: 2 20
+        à esquerda: 20 21
+        à direita: 2 20
     parte_declara_subrotinas (60)
-        on left: 22 23 24
-        on right: 5 22
+        à esquerda: 22 23 24
+        à direita: 5 22
     declaracao_procedimento (61)
-        on left: 27
-        on right: 22
+        à esquerda: 27
+        à direita: 22
     $@7 (62)
-        on left: 25
-        on right: 27
+        à esquerda: 25
+        à direita: 27
     $@8 (63)
-        on left: 26
-        on right: 27
+        à esquerda: 26
+        à direita: 27
     declaracao_funcao (64)
-        on left: 31
-        on right: 23
+        à esquerda: 31
+        à direita: 23
     $@9 (65)
-        on left: 28
-        on right: 31
+        à esquerda: 28
+        à direita: 31
     $@10 (66)
-        on left: 29
-        on right: 31
+        à esquerda: 29
+        à direita: 31
     $@11 (67)
-        on left: 30
-        on right: 31
+        à esquerda: 30
+        à direita: 31
     parametros_ou_nada (68)
-        on left: 34 35
-        on right: 27 31
+        à esquerda: 34 35
+        à direita: 27 31
     $@12 (69)
-        on left: 32
-        on right: 34
+        à esquerda: 32
+        à direita: 34
     $@13 (70)
-        on left: 33
-        on right: 34
+        à esquerda: 33
+        à direita: 34
     paramentros_formais (71)
-        on left: 36 37
-        on right: 34 37
+        à esquerda: 36 37
+        à direita: 34 37
     secao_pfs (72)
-        on left: 39 41
-        on right: 36 37
+        à esquerda: 39 41
+        à direita: 36 37
     $@14 (73)
-        on left: 38
-        on right: 39
+        à esquerda: 38
+        à direita: 39
     $@15 (74)
-        on left: 40
-        on right: 41
+        à esquerda: 40
+        à direita: 41
     lista_id_pf (75)
-        on left: 42 43
-        on right: 39 41 42
+        à esquerda: 42 43
+        à direita: 39 41 42
     parametro (76)
-        on left: 44
-        on right: 42 43
+        à esquerda: 44
+        à direita: 42 43
     comando_composto (77)
-        on left: 45
-        on right: 5 52
+        à esquerda: 45
+        à direita: 5 52
     comandos (78)
-        on left: 46 47 48
-        on right: 45 46
+        à esquerda: 46 47 48
+        à direita: 45 46
     comando (79)
-        on left: 49 50
-        on right: 46 47
+        à esquerda: 49 50
+        à direita: 46 47
     comando_sem_rotulo (80)
-        on left: 51 52 53 54 55 56
-        on right: 49 50 98 100 103
+        à esquerda: 51 52 53 54 55 56
+        à direita: 49 50 98 100 103
     atribuicao_ou_procedimento (81)
-        on left: 58
-        on right: 51
+        à esquerda: 58
+        à direita: 51
     $@16 (82)
-        on left: 57
-        on right: 58
+        à esquerda: 57
+        à direita: 58
     atribuicao_ou_procedimento_token (83)
-        on left: 59 60
-        on right: 58
+        à esquerda: 59 60
+        à direita: 58
     atribuicao (84)
-        on left: 62
-        on right: 59
+        à esquerda: 62
+        à direita: 59
     $@17 (85)
-        on left: 61
-        on right: 62
+        à esquerda: 61
+        à direita: 62
     chamada_procedimento (86)
-        on left: 64
-        on right: 60 91
+        à esquerda: 64
+        à direita: 60 91
     $@18 (87)
-        on left: 63
-        on right: 64
+        à esquerda: 63
+        à direita: 64
     lista_parametros (88)
-        on left: 65 66
-        on right: 64
+        à esquerda: 65 66
+        à direita: 64
     lista_parametros_parenteses (89)
-        on left: 68 70
-        on right: 65 68
+        à esquerda: 68 70
+        à direita: 65 68
     $@19 (90)
-        on left: 67
-        on right: 68
+        à esquerda: 67
+        à direita: 68
     $@20 (91)
-        on left: 69
-        on right: 70
+        à esquerda: 69
+        à direita: 70
     leitura (92)
-        on left: 71
-        on right: 55
+        à esquerda: 71
+        à direita: 55
     lista_leituras (93)
-        on left: 72 73
-        on right: 71 72
+        à esquerda: 72 73
+        à direita: 71 72
     simb_leitura (94)
-        on left: 74
-        on right: 72 73
+        à esquerda: 74
+        à direita: 72 73
     escrita (95)
-        on left: 75
-        on right: 56
+        à esquerda: 75
+        à direita: 56
     lista_escritas (96)
-        on left: 76 77
-        on right: 75 76
+        à esquerda: 76 77
+        à direita: 75 76
     expressao (97)
-        on left: 78 79 80 81 82 83
-        on right: 93 98 103
+        à esquerda: 78 79 80 81 82 83
+        à direita: 93 98 103
     expressao_simples (98)
-        on left: 84 85 86
-        on right: 62 68 70 76 77 78 79 80 81 82 83 84 85 94
+        à esquerda: 84 85 86
+        à direita: 62 68 70 76 77 78 79 80 81 82 83 84 85 94
     termo (99)
-        on left: 87 88 89
-        on right: 84 85 86 87 88
+        à esquerda: 87 88 89
+        à direita: 84 85 86 87 88
     fator (100)
-        on left: 91 92 93 94
-        on right: 87 88 89
+        à esquerda: 91 92 93 94
+        à direita: 87 88 89
     $@21 (101)
-        on left: 90
-        on right: 91
+        à esquerda: 90
+        à direita: 91
     numero (102)
-        on left: 95
-        on right: 49
+        à esquerda: 95
+        à direita: 49
     comando_repetitivo (103)
-        on left: 98
-        on right: 54
+        à esquerda: 98
+        à direita: 54
     $@22 (104)
-        on left: 96
-        on right: 98
+        à esquerda: 96
+        à direita: 98
     $@23 (105)
-        on left: 97
-        on right: 98
+        à esquerda: 97
+        à direita: 98
     comando_condicional (106)
-        on left: 99
-        on right: 53
+        à esquerda: 99
+        à direita: 53
     cond_else (107)
-        on left: 100 101
-        on right: 99
+        à esquerda: 100 101
+        à direita: 99
     if_then (108)
-        on left: 103
-        on right: 99
+        à esquerda: 103
+        à direita: 99
     $@24 (109)
-        on left: 102
-        on right: 103
+        à esquerda: 102
+        à direita: 103
 
 
-State 0
+Estado 0
 
-    0 $accept: . programa $end
+    0 $accept: • programa $end
 
-    $default  reduce using rule 1 ($@1)
+    $padrão  reduzir usando a regra 1 ($@1)
 
-    programa  go to state 1
-    $@1       go to state 2
+    programa  ir ao estado 1
+    $@1       ir ao estado 2
 
 
-State 1
+Estado 1
 
-    0 $accept: programa . $end
+    0 $accept: programa • $end
 
-    $end  shift, and go to state 3
+    $end  deslocar, e ir ao estado 3
 
 
-State 2
+Estado 2
 
-    2 programa: $@1 . PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 • PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    PROGRAM  shift, and go to state 4
+    PROGRAM  deslocar, e ir ao estado 4
 
 
-State 3
+Estado 3
 
-    0 $accept: programa $end .
+    0 $accept: programa $end •
 
-    $default  accept
+    $padrão  aceitar
 
 
-State 4
+Estado 4
 
-    2 programa: $@1 PROGRAM . IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM • IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    IDENT  shift, and go to state 5
+    IDENT  deslocar, e ir ao estado 5
 
 
-State 5
+Estado 5
 
-    2 programa: $@1 PROGRAM IDENT . ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM IDENT • ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    ABRE_PARENTESES  shift, and go to state 6
+    ABRE_PARENTESES  deslocar, e ir ao estado 6
 
 
-State 6
+Estado 6
 
-    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES . lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES • lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
 
-    IDENT  shift, and go to state 7
+    IDENT  deslocar, e ir ao estado 7
 
-    lista_idents  go to state 8
+    lista_idents  ir ao estado 8
 
 
-State 7
+Estado 7
 
-   21 lista_idents: IDENT .
+   21 lista_idents: IDENT •
 
-    $default  reduce using rule 21 (lista_idents)
+    $padrão  reduzir usando a regra 21 (lista_idents)
 
 
-State 8
+Estado 8
 
-    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents . FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
-   20 lista_idents: lista_idents . VIRGULA IDENT
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents • FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
+   20 lista_idents: lista_idents • VIRGULA IDENT
 
-    FECHA_PARENTESES  shift, and go to state 9
-    VIRGULA           shift, and go to state 10
+    FECHA_PARENTESES  deslocar, e ir ao estado 9
+    VIRGULA           deslocar, e ir ao estado 10
 
 
-State 9
+Estado 9
 
-    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES . PONTO_E_VIRGULA bloco PONTO
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES • PONTO_E_VIRGULA bloco PONTO
 
-    PONTO_E_VIRGULA  shift, and go to state 11
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 11
 
 
-State 10
+Estado 10
 
-   20 lista_idents: lista_idents VIRGULA . IDENT
+   20 lista_idents: lista_idents VIRGULA • IDENT
 
-    IDENT  shift, and go to state 12
+    IDENT  deslocar, e ir ao estado 12
 
 
-State 11
+Estado 11
 
-    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA . bloco PONTO
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA • bloco PONTO
 
-    LABEL  shift, and go to state 13
+    LABEL  deslocar, e ir ao estado 13
 
-    $default  reduce using rule 7 (parte_declara_rotulos)
+    $padrão  reduzir usando a regra 7 (parte_declara_rotulos)
 
-    bloco                  go to state 14
-    parte_declara_rotulos  go to state 15
+    bloco                  ir ao estado 14
+    parte_declara_rotulos  ir ao estado 15
 
 
-State 12
+Estado 12
 
-   20 lista_idents: lista_idents VIRGULA IDENT .
+   20 lista_idents: lista_idents VIRGULA IDENT •
 
-    $default  reduce using rule 20 (lista_idents)
+    $padrão  reduzir usando a regra 20 (lista_idents)
 
 
-State 13
+Estado 13
 
-    6 parte_declara_rotulos: LABEL . VIRGULA
+    6 parte_declara_rotulos: LABEL • VIRGULA
 
-    VIRGULA  shift, and go to state 16
+    VIRGULA  deslocar, e ir ao estado 16
 
 
-State 14
+Estado 14
 
-    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco . PONTO
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco • PONTO
 
-    PONTO  shift, and go to state 17
+    PONTO  deslocar, e ir ao estado 17
 
 
-State 15
+Estado 15
 
-    5 bloco: parte_declara_rotulos . parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto
+    5 bloco: parte_declara_rotulos • parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto
 
-    VAR       reduce using rule 9 ($@4)
-    $default  reduce using rule 11 (var)
+    VAR      reduzir usando a regra 9 ($@4)
+    $padrão  reduzir usando a regra 11 (var)
 
-    parte_declara_vars  go to state 18
-    var                 go to state 19
-    $@4                 go to state 20
+    parte_declara_vars  ir ao estado 18
+    var                 ir ao estado 19
+    $@4                 ir ao estado 20
 
 
-State 16
+Estado 16
 
-    6 parte_declara_rotulos: LABEL VIRGULA .
+    6 parte_declara_rotulos: LABEL VIRGULA •
 
-    $default  reduce using rule 6 (parte_declara_rotulos)
+    $padrão  reduzir usando a regra 6 (parte_declara_rotulos)
 
 
-State 17
+Estado 17
 
-    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO .
+    2 programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO •
 
-    $default  reduce using rule 2 (programa)
+    $padrão  reduzir usando a regra 2 (programa)
 
 
-State 18
+Estado 18
 
-    5 bloco: parte_declara_rotulos parte_declara_vars . $@2 parte_declara_subrotinas $@3 comando_composto
+    5 bloco: parte_declara_rotulos parte_declara_vars • $@2 parte_declara_subrotinas $@3 comando_composto
 
-    $default  reduce using rule 3 ($@2)
+    $padrão  reduzir usando a regra 3 ($@2)
 
-    $@2  go to state 21
+    $@2  ir ao estado 21
 
 
-State 19
+Estado 19
 
-    8 parte_declara_vars: var .
+    8 parte_declara_vars: var •
 
-    $default  reduce using rule 8 (parte_declara_vars)
+    $padrão  reduzir usando a regra 8 (parte_declara_vars)
 
 
-State 20
+Estado 20
 
-   10 var: $@4 . VAR declara_vars
+   10 var: $@4 • VAR declara_vars
 
-    VAR  shift, and go to state 22
+    VAR  deslocar, e ir ao estado 22
 
 
-State 21
+Estado 21
 
-    5 bloco: parte_declara_rotulos parte_declara_vars $@2 . parte_declara_subrotinas $@3 comando_composto
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 • parte_declara_subrotinas $@3 comando_composto
 
-    FUNCTION  shift, and go to state 23
+    FUNCTION  deslocar, e ir ao estado 23
 
-    $default  reduce using rule 24 (parte_declara_subrotinas)
+    $padrão  reduzir usando a regra 24 (parte_declara_subrotinas)
 
-    parte_declara_subrotinas  go to state 24
-    declaracao_funcao         go to state 25
+    parte_declara_subrotinas  ir ao estado 24
+    declaracao_funcao         ir ao estado 25
 
 
-State 22
+Estado 22
 
-   10 var: $@4 VAR . declara_vars
+   10 var: $@4 VAR • declara_vars
 
-    $default  reduce using rule 14 ($@5)
+    $padrão  reduzir usando a regra 14 ($@5)
 
-    declara_vars  go to state 26
-    declara_var   go to state 27
-    $@5           go to state 28
+    declara_vars  ir ao estado 26
+    declara_var   ir ao estado 27
+    $@5           ir ao estado 28
 
 
-State 23
+Estado 23
 
-   31 declaracao_funcao: FUNCTION . IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION • IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    IDENT  shift, and go to state 29
+    IDENT  deslocar, e ir ao estado 29
 
 
-State 24
+Estado 24
 
-    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas . $@3 comando_composto
-   22 parte_declara_subrotinas: parte_declara_subrotinas . declaracao_procedimento
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas • $@3 comando_composto
+   22 parte_declara_subrotinas: parte_declara_subrotinas • declaracao_procedimento
 
-    PROCEDURE  shift, and go to state 30
+    PROCEDURE  deslocar, e ir ao estado 30
 
-    $default  reduce using rule 4 ($@3)
+    $padrão  reduzir usando a regra 4 ($@3)
 
-    $@3                      go to state 31
-    declaracao_procedimento  go to state 32
+    $@3                      ir ao estado 31
+    declaracao_procedimento  ir ao estado 32
 
 
-State 25
+Estado 25
 
-   23 parte_declara_subrotinas: declaracao_funcao .
+   23 parte_declara_subrotinas: declaracao_funcao •
 
-    $default  reduce using rule 23 (parte_declara_subrotinas)
+    $padrão  reduzir usando a regra 23 (parte_declara_subrotinas)
 
 
-State 26
+Estado 26
 
-   10 var: $@4 VAR declara_vars .
-   12 declara_vars: declara_vars . declara_var
+   10 var: $@4 VAR declara_vars •
+   12 declara_vars: declara_vars • declara_var
 
-    IDENT     reduce using rule 14 ($@5)
-    $default  reduce using rule 10 (var)
+    IDENT    reduzir usando a regra 14 ($@5)
+    $padrão  reduzir usando a regra 10 (var)
 
-    declara_var  go to state 33
-    $@5          go to state 28
+    declara_var  ir ao estado 33
+    $@5          ir ao estado 28
 
 
-State 27
+Estado 27
 
-   13 declara_vars: declara_var .
+   13 declara_vars: declara_var •
 
-    $default  reduce using rule 13 (declara_vars)
+    $padrão  reduzir usando a regra 13 (declara_vars)
 
 
-State 28
+Estado 28
 
-   16 declara_var: $@5 . lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
+   16 declara_var: $@5 • lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
 
-    IDENT  shift, and go to state 34
+    IDENT  deslocar, e ir ao estado 34
 
-    lista_id_var  go to state 35
+    lista_id_var  ir ao estado 35
 
 
-State 29
+Estado 29
 
-   31 declaracao_funcao: FUNCTION IDENT . $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT • $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    $default  reduce using rule 28 ($@9)
+    $padrão  reduzir usando a regra 28 ($@9)
 
-    $@9  go to state 36
+    $@9  ir ao estado 36
 
 
-State 30
+Estado 30
 
-   27 declaracao_procedimento: PROCEDURE . IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE • IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
 
-    IDENT  shift, and go to state 37
+    IDENT  deslocar, e ir ao estado 37
 
 
-State 31
+Estado 31
 
-    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 . comando_composto
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 • comando_composto
 
-    T_BEGIN  shift, and go to state 38
+    T_BEGIN  deslocar, e ir ao estado 38
 
-    comando_composto  go to state 39
+    comando_composto  ir ao estado 39
 
 
-State 32
+Estado 32
 
-   22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento .
+   22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento •
 
-    $default  reduce using rule 22 (parte_declara_subrotinas)
+    $padrão  reduzir usando a regra 22 (parte_declara_subrotinas)
 
 
-State 33
+Estado 33
 
-   12 declara_vars: declara_vars declara_var .
+   12 declara_vars: declara_vars declara_var •
 
-    $default  reduce using rule 12 (declara_vars)
+    $padrão  reduzir usando a regra 12 (declara_vars)
 
 
-State 34
+Estado 34
 
-   19 lista_id_var: IDENT .
+   19 lista_id_var: IDENT •
 
-    $default  reduce using rule 19 (lista_id_var)
+    $padrão  reduzir usando a regra 19 (lista_id_var)
 
 
-State 35
+Estado 35
 
-   16 declara_var: $@5 lista_id_var . DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
-   18 lista_id_var: lista_id_var . VIRGULA IDENT
+   16 declara_var: $@5 lista_id_var • DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA
+   18 lista_id_var: lista_id_var • VIRGULA IDENT
 
-    VIRGULA      shift, and go to state 40
-    DOIS_PONTOS  shift, and go to state 41
+    VIRGULA      deslocar, e ir ao estado 40
+    DOIS_PONTOS  deslocar, e ir ao estado 41
 
 
-State 36
+Estado 36
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 . parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 • parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    ABRE_PARENTESES  shift, and go to state 42
+    ABRE_PARENTESES  deslocar, e ir ao estado 42
 
-    $default  reduce using rule 35 (parametros_ou_nada)
+    $padrão  reduzir usando a regra 35 (parametros_ou_nada)
 
-    parametros_ou_nada  go to state 43
+    parametros_ou_nada  ir ao estado 43
 
 
-State 37
+Estado 37
 
-   27 declaracao_procedimento: PROCEDURE IDENT . $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT • $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
 
-    $default  reduce using rule 25 ($@7)
+    $padrão  reduzir usando a regra 25 ($@7)
 
-    $@7  go to state 44
+    $@7  ir ao estado 44
 
 
-State 38
+Estado 38
 
-   45 comando_composto: T_BEGIN . comandos T_END
+   45 comando_composto: T_BEGIN • comandos T_END
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    NUMERO   shift, and go to state 47
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    T_BEGIN  deslocar, e ir ao estado 38
+    IDENT    deslocar, e ir ao estado 45
+    IF       deslocar, e ir ao estado 46
+    NUMERO   deslocar, e ir ao estado 47
+    READ     deslocar, e ir ao estado 48
+    WRITE    deslocar, e ir ao estado 49
 
-    WHILE     reduce using rule 96 ($@22)
-    $default  reduce using rule 48 (comandos)
+    WHILE    reduzir usando a regra 96 ($@22)
+    $padrão  reduzir usando a regra 48 (comandos)
 
-    comando_composto            go to state 50
-    comandos                    go to state 51
-    comando                     go to state 52
-    comando_sem_rotulo          go to state 53
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    numero                      go to state 57
-    comando_repetitivo          go to state 58
-    $@22                        go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    comando_composto            ir ao estado 50
+    comandos                    ir ao estado 51
+    comando                     ir ao estado 52
+    comando_sem_rotulo          ir ao estado 53
+    atribuicao_ou_procedimento  ir ao estado 54
+    leitura                     ir ao estado 55
+    escrita                     ir ao estado 56
+    numero                      ir ao estado 57
+    comando_repetitivo          ir ao estado 58
+    $@22                        ir ao estado 59
+    comando_condicional         ir ao estado 60
+    if_then                     ir ao estado 61
 
 
-State 39
+Estado 39
 
-    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto .
+    5 bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto •
 
-    $default  reduce using rule 5 (bloco)
+    $padrão  reduzir usando a regra 5 (bloco)
 
 
-State 40
+Estado 40
 
-   18 lista_id_var: lista_id_var VIRGULA . IDENT
+   18 lista_id_var: lista_id_var VIRGULA • IDENT
 
-    IDENT  shift, and go to state 62
+    IDENT  deslocar, e ir ao estado 62
 
 
-State 41
+Estado 41
 
-   16 declara_var: $@5 lista_id_var DOIS_PONTOS . tipo $@6 PONTO_E_VIRGULA
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS • tipo $@6 PONTO_E_VIRGULA
 
-    IDENT  shift, and go to state 63
+    IDENT  deslocar, e ir ao estado 63
 
-    tipo  go to state 64
+    tipo  ir ao estado 64
 
 
-State 42
+Estado 42
 
-   34 parametros_ou_nada: ABRE_PARENTESES . $@12 paramentros_formais $@13 FECHA_PARENTESES
+   34 parametros_ou_nada: ABRE_PARENTESES • $@12 paramentros_formais $@13 FECHA_PARENTESES
 
-    $default  reduce using rule 32 ($@12)
+    $padrão  reduzir usando a regra 32 ($@12)
 
-    $@12  go to state 65
+    $@12  ir ao estado 65
 
 
-State 43
+Estado 43
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada . DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada • DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    DOIS_PONTOS  shift, and go to state 66
+    DOIS_PONTOS  deslocar, e ir ao estado 66
 
 
-State 44
+Estado 44
 
-   27 declaracao_procedimento: PROCEDURE IDENT $@7 . parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 • parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
 
-    ABRE_PARENTESES  shift, and go to state 42
+    ABRE_PARENTESES  deslocar, e ir ao estado 42
 
-    $default  reduce using rule 35 (parametros_ou_nada)
+    $padrão  reduzir usando a regra 35 (parametros_ou_nada)
 
-    parametros_ou_nada  go to state 67
+    parametros_ou_nada  ir ao estado 67
 
 
-State 45
+Estado 45
 
-   58 atribuicao_ou_procedimento: IDENT . $@16 atribuicao_ou_procedimento_token
+   58 atribuicao_ou_procedimento: IDENT • $@16 atribuicao_ou_procedimento_token
 
-    $default  reduce using rule 57 ($@16)
+    $padrão  reduzir usando a regra 57 ($@16)
 
-    $@16  go to state 68
+    $@16  ir ao estado 68
 
 
-State 46
+Estado 46
 
-  103 if_then: IF . expressao $@24 THEN comando_sem_rotulo
+  103 if_then: IF • expressao $@24 THEN comando_sem_rotulo
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao          go to state 72
-    expressao_simples  go to state 73
-    termo              go to state 74
-    fator              go to state 75
+    expressao          ir ao estado 72
+    expressao_simples  ir ao estado 73
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 47
+Estado 47
 
-   95 numero: NUMERO .
+   95 numero: NUMERO •
 
-    $default  reduce using rule 95 (numero)
+    $padrão  reduzir usando a regra 95 (numero)
 
 
-State 48
+Estado 48
 
-   71 leitura: READ . ABRE_PARENTESES lista_leituras FECHA_PARENTESES
+   71 leitura: READ • ABRE_PARENTESES lista_leituras FECHA_PARENTESES
 
-    ABRE_PARENTESES  shift, and go to state 76
+    ABRE_PARENTESES  deslocar, e ir ao estado 76
 
 
-State 49
+Estado 49
 
-   75 escrita: WRITE . ABRE_PARENTESES lista_escritas FECHA_PARENTESES
+   75 escrita: WRITE • ABRE_PARENTESES lista_escritas FECHA_PARENTESES
 
-    ABRE_PARENTESES  shift, and go to state 77
+    ABRE_PARENTESES  deslocar, e ir ao estado 77
 
 
-State 50
+Estado 50
 
-   52 comando_sem_rotulo: comando_composto .
+   52 comando_sem_rotulo: comando_composto •
 
-    $default  reduce using rule 52 (comando_sem_rotulo)
+    $padrão  reduzir usando a regra 52 (comando_sem_rotulo)
 
 
-State 51
+Estado 51
 
-   45 comando_composto: T_BEGIN comandos . T_END
+   45 comando_composto: T_BEGIN comandos • T_END
 
-    T_END  shift, and go to state 78
+    T_END  deslocar, e ir ao estado 78
 
 
-State 52
+Estado 52
 
-   46 comandos: comando . PONTO_E_VIRGULA comandos
-   47         | comando . PONTO_E_VIRGULA
+   46 comandos: comando • PONTO_E_VIRGULA comandos
+   47         | comando • PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 79
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 79
 
 
-State 53
+Estado 53
 
-   50 comando: comando_sem_rotulo .
+   50 comando: comando_sem_rotulo •
 
-    $default  reduce using rule 50 (comando)
+    $padrão  reduzir usando a regra 50 (comando)
 
 
-State 54
+Estado 54
 
-   51 comando_sem_rotulo: atribuicao_ou_procedimento .
+   51 comando_sem_rotulo: atribuicao_ou_procedimento •
 
-    $default  reduce using rule 51 (comando_sem_rotulo)
+    $padrão  reduzir usando a regra 51 (comando_sem_rotulo)
 
 
-State 55
+Estado 55
 
-   55 comando_sem_rotulo: leitura .
+   55 comando_sem_rotulo: leitura •
 
-    $default  reduce using rule 55 (comando_sem_rotulo)
+    $padrão  reduzir usando a regra 55 (comando_sem_rotulo)
 
 
-State 56
+Estado 56
 
-   56 comando_sem_rotulo: escrita .
+   56 comando_sem_rotulo: escrita •
 
-    $default  reduce using rule 56 (comando_sem_rotulo)
+    $padrão  reduzir usando a regra 56 (comando_sem_rotulo)
 
 
-State 57
+Estado 57
 
-   49 comando: numero . DOIS_PONTOS comando_sem_rotulo
+   49 comando: numero • DOIS_PONTOS comando_sem_rotulo
 
-    DOIS_PONTOS  shift, and go to state 80
+    DOIS_PONTOS  deslocar, e ir ao estado 80
 
 
-State 58
+Estado 58
 
-   54 comando_sem_rotulo: comando_repetitivo .
+   54 comando_sem_rotulo: comando_repetitivo •
 
-    $default  reduce using rule 54 (comando_sem_rotulo)
+    $padrão  reduzir usando a regra 54 (comando_sem_rotulo)
 
 
-State 59
+Estado 59
 
-   98 comando_repetitivo: $@22 . WHILE expressao DO $@23 comando_sem_rotulo
+   98 comando_repetitivo: $@22 • WHILE expressao DO $@23 comando_sem_rotulo
 
-    WHILE  shift, and go to state 81
+    WHILE  deslocar, e ir ao estado 81
 
 
-State 60
+Estado 60
 
-   53 comando_sem_rotulo: comando_condicional .
+   53 comando_sem_rotulo: comando_condicional •
 
-    $default  reduce using rule 53 (comando_sem_rotulo)
+    $padrão  reduzir usando a regra 53 (comando_sem_rotulo)
 
 
-State 61
+Estado 61
 
-   99 comando_condicional: if_then . cond_else
+   99 comando_condicional: if_then • cond_else
 
-    ELSE  shift, and go to state 82
+    ELSE  deslocar, e ir ao estado 82
 
-    $default  reduce using rule 101 (cond_else)
+    $padrão  reduzir usando a regra 101 (cond_else)
 
-    cond_else  go to state 83
+    cond_else  ir ao estado 83
 
 
-State 62
+Estado 62
 
-   18 lista_id_var: lista_id_var VIRGULA IDENT .
+   18 lista_id_var: lista_id_var VIRGULA IDENT •
 
-    $default  reduce using rule 18 (lista_id_var)
+    $padrão  reduzir usando a regra 18 (lista_id_var)
 
 
-State 63
+Estado 63
 
-   17 tipo: IDENT .
+   17 tipo: IDENT •
 
-    $default  reduce using rule 17 (tipo)
+    $padrão  reduzir usando a regra 17 (tipo)
 
 
-State 64
+Estado 64
 
-   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo . $@6 PONTO_E_VIRGULA
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo • $@6 PONTO_E_VIRGULA
 
-    $default  reduce using rule 15 ($@6)
+    $padrão  reduzir usando a regra 15 ($@6)
 
-    $@6  go to state 84
+    $@6  ir ao estado 84
 
 
-State 65
+Estado 65
 
-   34 parametros_ou_nada: ABRE_PARENTESES $@12 . paramentros_formais $@13 FECHA_PARENTESES
+   34 parametros_ou_nada: ABRE_PARENTESES $@12 • paramentros_formais $@13 FECHA_PARENTESES
 
-    VAR  shift, and go to state 85
+    VAR  deslocar, e ir ao estado 85
 
-    $default  reduce using rule 40 ($@15)
+    $padrão  reduzir usando a regra 40 ($@15)
 
-    paramentros_formais  go to state 86
-    secao_pfs            go to state 87
-    $@15                 go to state 88
+    paramentros_formais  ir ao estado 86
+    secao_pfs            ir ao estado 87
+    $@15                 ir ao estado 88
 
 
-State 66
+Estado 66
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS . $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS • $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    $default  reduce using rule 29 ($@10)
+    $padrão  reduzir usando a regra 29 ($@10)
 
-    $@10  go to state 89
+    $@10  ir ao estado 89
 
 
-State 67
+Estado 67
 
-   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada . PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada • PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 90
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 90
 
 
-State 68
+Estado 68
 
-   58 atribuicao_ou_procedimento: IDENT $@16 . atribuicao_ou_procedimento_token
+   58 atribuicao_ou_procedimento: IDENT $@16 • atribuicao_ou_procedimento_token
 
-    ATRIBUICAO  reduce using rule 61 ($@17)
-    $default    reduce using rule 63 ($@18)
+    ATRIBUICAO  reduzir usando a regra 61 ($@17)
+    $padrão     reduzir usando a regra 63 ($@18)
 
-    atribuicao_ou_procedimento_token  go to state 91
-    atribuicao                        go to state 92
-    $@17                              go to state 93
-    chamada_procedimento              go to state 94
-    $@18                              go to state 95
+    atribuicao_ou_procedimento_token  ir ao estado 91
+    atribuicao                        ir ao estado 92
+    $@17                              ir ao estado 93
+    chamada_procedimento              ir ao estado 94
+    $@18                              ir ao estado 95
 
 
-State 69
+Estado 69
 
-   93 fator: ABRE_PARENTESES . expressao FECHA_PARENTESES
-   94      | ABRE_PARENTESES . expressao_simples FECHA_PARENTESES
+   93 fator: ABRE_PARENTESES • expressao FECHA_PARENTESES
+   94      | ABRE_PARENTESES • expressao_simples FECHA_PARENTESES
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao          go to state 96
-    expressao_simples  go to state 97
-    termo              go to state 74
-    fator              go to state 75
+    expressao          ir ao estado 96
+    expressao_simples  ir ao estado 97
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 70
+Estado 70
 
-   91 fator: IDENT . $@21 chamada_procedimento
+   91 fator: IDENT • $@21 chamada_procedimento
 
-    $default  reduce using rule 90 ($@21)
+    $padrão  reduzir usando a regra 90 ($@21)
 
-    $@21  go to state 98
+    $@21  ir ao estado 98
 
 
-State 71
+Estado 71
 
-   92 fator: NUMERO .
+   92 fator: NUMERO •
 
-    $default  reduce using rule 92 (fator)
+    $padrão  reduzir usando a regra 92 (fator)
 
 
-State 72
+Estado 72
 
-  103 if_then: IF expressao . $@24 THEN comando_sem_rotulo
+  103 if_then: IF expressao • $@24 THEN comando_sem_rotulo
 
-    $default  reduce using rule 102 ($@24)
+    $padrão  reduzir usando a regra 102 ($@24)
 
-    $@24  go to state 99
+    $@24  ir ao estado 99
 
 
-State 73
+Estado 73
 
-   78 expressao: expressao_simples . IGUAL expressao_simples
-   79          | expressao_simples . DIFERENTE expressao_simples
-   80          | expressao_simples . MENOR expressao_simples
-   81          | expressao_simples . MENOR_IGUAL expressao_simples
-   82          | expressao_simples . MAIOR expressao_simples
-   83          | expressao_simples . MAIOR_IGUAL expressao_simples
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   78 expressao: expressao_simples • IGUAL expressao_simples
+   79          | expressao_simples • DIFERENTE expressao_simples
+   80          | expressao_simples • MENOR expressao_simples
+   81          | expressao_simples • MENOR_IGUAL expressao_simples
+   82          | expressao_simples • MAIOR expressao_simples
+   83          | expressao_simples • MAIOR_IGUAL expressao_simples
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    IGUAL        shift, and go to state 100
-    DIFERENTE    shift, and go to state 101
-    MENOR_IGUAL  shift, and go to state 102
-    MAIOR_IGUAL  shift, and go to state 103
-    MENOR        shift, and go to state 104
-    MAIOR        shift, and go to state 105
-    MAIS         shift, and go to state 106
-    MENOS        shift, and go to state 107
+    IGUAL        deslocar, e ir ao estado 100
+    DIFERENTE    deslocar, e ir ao estado 101
+    MENOR_IGUAL  deslocar, e ir ao estado 102
+    MAIOR_IGUAL  deslocar, e ir ao estado 103
+    MENOR        deslocar, e ir ao estado 104
+    MAIOR        deslocar, e ir ao estado 105
+    MAIS         deslocar, e ir ao estado 106
+    MENOS        deslocar, e ir ao estado 107
 
 
-State 74
+Estado 74
 
-   86 expressao_simples: termo .
-   87 termo: termo . ASTERISCO fator
-   88      | termo . DIV fator
+   86 expressao_simples: termo •
+   87 termo: termo • ASTERISCO fator
+   88      | termo • DIV fator
 
-    DIV        shift, and go to state 108
-    ASTERISCO  shift, and go to state 109
+    DIV        deslocar, e ir ao estado 108
+    ASTERISCO  deslocar, e ir ao estado 109
 
-    $default  reduce using rule 86 (expressao_simples)
+    $padrão  reduzir usando a regra 86 (expressao_simples)
 
 
-State 75
+Estado 75
 
-   89 termo: fator .
+   89 termo: fator •
 
-    $default  reduce using rule 89 (termo)
+    $padrão  reduzir usando a regra 89 (termo)
 
 
-State 76
+Estado 76
 
-   71 leitura: READ ABRE_PARENTESES . lista_leituras FECHA_PARENTESES
+   71 leitura: READ ABRE_PARENTESES • lista_leituras FECHA_PARENTESES
 
-    IDENT  shift, and go to state 110
+    IDENT  deslocar, e ir ao estado 110
 
-    lista_leituras  go to state 111
-    simb_leitura    go to state 112
+    lista_leituras  ir ao estado 111
+    simb_leitura    ir ao estado 112
 
 
-State 77
+Estado 77
 
-   75 escrita: WRITE ABRE_PARENTESES . lista_escritas FECHA_PARENTESES
+   75 escrita: WRITE ABRE_PARENTESES • lista_escritas FECHA_PARENTESES
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    lista_escritas     go to state 113
-    expressao_simples  go to state 114
-    termo              go to state 74
-    fator              go to state 75
+    lista_escritas     ir ao estado 113
+    expressao_simples  ir ao estado 114
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 78
+Estado 78
 
-   45 comando_composto: T_BEGIN comandos T_END .
+   45 comando_composto: T_BEGIN comandos T_END •
 
-    $default  reduce using rule 45 (comando_composto)
+    $padrão  reduzir usando a regra 45 (comando_composto)
 
 
-State 79
+Estado 79
 
-   46 comandos: comando PONTO_E_VIRGULA . comandos
-   47         | comando PONTO_E_VIRGULA .
+   46 comandos: comando PONTO_E_VIRGULA • comandos
+   47         | comando PONTO_E_VIRGULA •
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    NUMERO   shift, and go to state 47
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    T_BEGIN  deslocar, e ir ao estado 38
+    IDENT    deslocar, e ir ao estado 45
+    IF       deslocar, e ir ao estado 46
+    NUMERO   deslocar, e ir ao estado 47
+    READ     deslocar, e ir ao estado 48
+    WRITE    deslocar, e ir ao estado 49
 
-    T_END     reduce using rule 47 (comandos)
-    T_END     [reduce using rule 48 (comandos)]
-    WHILE     reduce using rule 96 ($@22)
-    $default  reduce using rule 47 (comandos)
+    T_END    reduzir usando a regra 47 (comandos)
+    T_END    [reduzir usando a regra 48 (comandos)]
+    WHILE    reduzir usando a regra 96 ($@22)
+    $padrão  reduzir usando a regra 47 (comandos)
 
-    comando_composto            go to state 50
-    comandos                    go to state 115
-    comando                     go to state 52
-    comando_sem_rotulo          go to state 53
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    numero                      go to state 57
-    comando_repetitivo          go to state 58
-    $@22                        go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    comando_composto            ir ao estado 50
+    comandos                    ir ao estado 115
+    comando                     ir ao estado 52
+    comando_sem_rotulo          ir ao estado 53
+    atribuicao_ou_procedimento  ir ao estado 54
+    leitura                     ir ao estado 55
+    escrita                     ir ao estado 56
+    numero                      ir ao estado 57
+    comando_repetitivo          ir ao estado 58
+    $@22                        ir ao estado 59
+    comando_condicional         ir ao estado 60
+    if_then                     ir ao estado 61
 
 
-State 80
+Estado 80
 
-   49 comando: numero DOIS_PONTOS . comando_sem_rotulo
+   49 comando: numero DOIS_PONTOS • comando_sem_rotulo
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    T_BEGIN  deslocar, e ir ao estado 38
+    IDENT    deslocar, e ir ao estado 45
+    IF       deslocar, e ir ao estado 46
+    READ     deslocar, e ir ao estado 48
+    WRITE    deslocar, e ir ao estado 49
 
-    $default  reduce using rule 96 ($@22)
+    $padrão  reduzir usando a regra 96 ($@22)
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 116
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    $@22                        go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    comando_composto            ir ao estado 50
+    comando_sem_rotulo          ir ao estado 116
+    atribuicao_ou_procedimento  ir ao estado 54
+    leitura                     ir ao estado 55
+    escrita                     ir ao estado 56
+    comando_repetitivo          ir ao estado 58
+    $@22                        ir ao estado 59
+    comando_condicional         ir ao estado 60
+    if_then                     ir ao estado 61
 
 
-State 81
+Estado 81
 
-   98 comando_repetitivo: $@22 WHILE . expressao DO $@23 comando_sem_rotulo
+   98 comando_repetitivo: $@22 WHILE • expressao DO $@23 comando_sem_rotulo
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao          go to state 117
-    expressao_simples  go to state 73
-    termo              go to state 74
-    fator              go to state 75
+    expressao          ir ao estado 117
+    expressao_simples  ir ao estado 73
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 82
+Estado 82
 
-  100 cond_else: ELSE . comando_sem_rotulo
+  100 cond_else: ELSE • comando_sem_rotulo
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    T_BEGIN  deslocar, e ir ao estado 38
+    IDENT    deslocar, e ir ao estado 45
+    IF       deslocar, e ir ao estado 46
+    READ     deslocar, e ir ao estado 48
+    WRITE    deslocar, e ir ao estado 49
 
-    $default  reduce using rule 96 ($@22)
+    $padrão  reduzir usando a regra 96 ($@22)
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 118
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    $@22                        go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    comando_composto            ir ao estado 50
+    comando_sem_rotulo          ir ao estado 118
+    atribuicao_ou_procedimento  ir ao estado 54
+    leitura                     ir ao estado 55
+    escrita                     ir ao estado 56
+    comando_repetitivo          ir ao estado 58
+    $@22                        ir ao estado 59
+    comando_condicional         ir ao estado 60
+    if_then                     ir ao estado 61
 
 
-State 83
+Estado 83
 
-   99 comando_condicional: if_then cond_else .
+   99 comando_condicional: if_then cond_else •
 
-    $default  reduce using rule 99 (comando_condicional)
+    $padrão  reduzir usando a regra 99 (comando_condicional)
 
 
-State 84
+Estado 84
 
-   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 . PONTO_E_VIRGULA
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 • PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 119
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 119
 
 
-State 85
+Estado 85
 
-   39 secao_pfs: VAR . $@14 lista_id_pf DOIS_PONTOS tipo
+   39 secao_pfs: VAR • $@14 lista_id_pf DOIS_PONTOS tipo
 
-    $default  reduce using rule 38 ($@14)
+    $padrão  reduzir usando a regra 38 ($@14)
 
-    $@14  go to state 120
+    $@14  ir ao estado 120
 
 
-State 86
+Estado 86
 
-   34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais . $@13 FECHA_PARENTESES
-   37 paramentros_formais: paramentros_formais . PONTO_E_VIRGULA secao_pfs
+   34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais • $@13 FECHA_PARENTESES
+   37 paramentros_formais: paramentros_formais • PONTO_E_VIRGULA secao_pfs
 
-    PONTO_E_VIRGULA  shift, and go to state 121
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 121
 
-    $default  reduce using rule 33 ($@13)
+    $padrão  reduzir usando a regra 33 ($@13)
 
-    $@13  go to state 122
+    $@13  ir ao estado 122
 
 
-State 87
+Estado 87
 
-   36 paramentros_formais: secao_pfs .
+   36 paramentros_formais: secao_pfs •
 
-    $default  reduce using rule 36 (paramentros_formais)
+    $padrão  reduzir usando a regra 36 (paramentros_formais)
 
 
-State 88
+Estado 88
 
-   41 secao_pfs: $@15 . lista_id_pf DOIS_PONTOS tipo
+   41 secao_pfs: $@15 • lista_id_pf DOIS_PONTOS tipo
 
-    IDENT  shift, and go to state 123
+    IDENT  deslocar, e ir ao estado 123
 
-    lista_id_pf  go to state 124
-    parametro    go to state 125
+    lista_id_pf  ir ao estado 124
+    parametro    ir ao estado 125
 
 
-State 89
+Estado 89
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 . tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 • tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    IDENT  shift, and go to state 63
+    IDENT  deslocar, e ir ao estado 63
 
-    tipo  go to state 126
+    tipo  ir ao estado 126
 
 
-State 90
+Estado 90
 
-   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA . bloco $@8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA • bloco $@8 PONTO_E_VIRGULA
 
-    LABEL  shift, and go to state 13
+    LABEL  deslocar, e ir ao estado 13
 
-    $default  reduce using rule 7 (parte_declara_rotulos)
+    $padrão  reduzir usando a regra 7 (parte_declara_rotulos)
 
-    bloco                  go to state 127
-    parte_declara_rotulos  go to state 15
+    bloco                  ir ao estado 127
+    parte_declara_rotulos  ir ao estado 15
 
 
-State 91
+Estado 91
 
-   58 atribuicao_ou_procedimento: IDENT $@16 atribuicao_ou_procedimento_token .
+   58 atribuicao_ou_procedimento: IDENT $@16 atribuicao_ou_procedimento_token •
 
-    $default  reduce using rule 58 (atribuicao_ou_procedimento)
+    $padrão  reduzir usando a regra 58 (atribuicao_ou_procedimento)
 
 
-State 92
+Estado 92
 
-   59 atribuicao_ou_procedimento_token: atribuicao .
+   59 atribuicao_ou_procedimento_token: atribuicao •
 
-    $default  reduce using rule 59 (atribuicao_ou_procedimento_token)
+    $padrão  reduzir usando a regra 59 (atribuicao_ou_procedimento_token)
 
 
-State 93
+Estado 93
 
-   62 atribuicao: $@17 . ATRIBUICAO expressao_simples
+   62 atribuicao: $@17 • ATRIBUICAO expressao_simples
 
-    ATRIBUICAO  shift, and go to state 128
+    ATRIBUICAO  deslocar, e ir ao estado 128
 
 
-State 94
+Estado 94
 
-   60 atribuicao_ou_procedimento_token: chamada_procedimento .
+   60 atribuicao_ou_procedimento_token: chamada_procedimento •
 
-    $default  reduce using rule 60 (atribuicao_ou_procedimento_token)
+    $padrão  reduzir usando a regra 60 (atribuicao_ou_procedimento_token)
 
 
-State 95
+Estado 95
 
-   64 chamada_procedimento: $@18 . lista_parametros
+   64 chamada_procedimento: $@18 • lista_parametros
 
-    ABRE_PARENTESES  shift, and go to state 129
+    ABRE_PARENTESES  deslocar, e ir ao estado 129
 
-    $default  reduce using rule 66 (lista_parametros)
+    $padrão  reduzir usando a regra 66 (lista_parametros)
 
-    lista_parametros  go to state 130
+    lista_parametros  ir ao estado 130
 
 
-State 96
+Estado 96
 
-   93 fator: ABRE_PARENTESES expressao . FECHA_PARENTESES
+   93 fator: ABRE_PARENTESES expressao • FECHA_PARENTESES
 
-    FECHA_PARENTESES  shift, and go to state 131
+    FECHA_PARENTESES  deslocar, e ir ao estado 131
 
 
-State 97
+Estado 97
 
-   78 expressao: expressao_simples . IGUAL expressao_simples
-   79          | expressao_simples . DIFERENTE expressao_simples
-   80          | expressao_simples . MENOR expressao_simples
-   81          | expressao_simples . MENOR_IGUAL expressao_simples
-   82          | expressao_simples . MAIOR expressao_simples
-   83          | expressao_simples . MAIOR_IGUAL expressao_simples
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
-   94 fator: ABRE_PARENTESES expressao_simples . FECHA_PARENTESES
+   78 expressao: expressao_simples • IGUAL expressao_simples
+   79          | expressao_simples • DIFERENTE expressao_simples
+   80          | expressao_simples • MENOR expressao_simples
+   81          | expressao_simples • MENOR_IGUAL expressao_simples
+   82          | expressao_simples • MAIOR expressao_simples
+   83          | expressao_simples • MAIOR_IGUAL expressao_simples
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
+   94 fator: ABRE_PARENTESES expressao_simples • FECHA_PARENTESES
 
-    FECHA_PARENTESES  shift, and go to state 132
-    IGUAL             shift, and go to state 100
-    DIFERENTE         shift, and go to state 101
-    MENOR_IGUAL       shift, and go to state 102
-    MAIOR_IGUAL       shift, and go to state 103
-    MENOR             shift, and go to state 104
-    MAIOR             shift, and go to state 105
-    MAIS              shift, and go to state 106
-    MENOS             shift, and go to state 107
+    FECHA_PARENTESES  deslocar, e ir ao estado 132
+    IGUAL             deslocar, e ir ao estado 100
+    DIFERENTE         deslocar, e ir ao estado 101
+    MENOR_IGUAL       deslocar, e ir ao estado 102
+    MAIOR_IGUAL       deslocar, e ir ao estado 103
+    MENOR             deslocar, e ir ao estado 104
+    MAIOR             deslocar, e ir ao estado 105
+    MAIS              deslocar, e ir ao estado 106
+    MENOS             deslocar, e ir ao estado 107
 
 
-State 98
+Estado 98
 
-   91 fator: IDENT $@21 . chamada_procedimento
+   91 fator: IDENT $@21 • chamada_procedimento
 
-    $default  reduce using rule 63 ($@18)
+    $padrão  reduzir usando a regra 63 ($@18)
 
-    chamada_procedimento  go to state 133
-    $@18                  go to state 95
+    chamada_procedimento  ir ao estado 133
+    $@18                  ir ao estado 95
 
 
-State 99
+Estado 99
 
-  103 if_then: IF expressao $@24 . THEN comando_sem_rotulo
+  103 if_then: IF expressao $@24 • THEN comando_sem_rotulo
 
-    THEN  shift, and go to state 134
+    THEN  deslocar, e ir ao estado 134
 
 
-State 100
+Estado 100
 
-   78 expressao: expressao_simples IGUAL . expressao_simples
+   78 expressao: expressao_simples IGUAL • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 135
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 135
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 101
+Estado 101
 
-   79 expressao: expressao_simples DIFERENTE . expressao_simples
+   79 expressao: expressao_simples DIFERENTE • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 136
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 136
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 102
+Estado 102
 
-   81 expressao: expressao_simples MENOR_IGUAL . expressao_simples
+   81 expressao: expressao_simples MENOR_IGUAL • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 137
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 137
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 103
+Estado 103
 
-   83 expressao: expressao_simples MAIOR_IGUAL . expressao_simples
+   83 expressao: expressao_simples MAIOR_IGUAL • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 138
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 138
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 104
+Estado 104
 
-   80 expressao: expressao_simples MENOR . expressao_simples
+   80 expressao: expressao_simples MENOR • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 139
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 139
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 105
+Estado 105
 
-   82 expressao: expressao_simples MAIOR . expressao_simples
+   82 expressao: expressao_simples MAIOR • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 140
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 140
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 106
+Estado 106
 
-   84 expressao_simples: expressao_simples MAIS . termo
+   84 expressao_simples: expressao_simples MAIS • termo
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    termo  go to state 141
-    fator  go to state 75
+    termo  ir ao estado 141
+    fator  ir ao estado 75
 
 
-State 107
+Estado 107
 
-   85 expressao_simples: expressao_simples MENOS . termo
+   85 expressao_simples: expressao_simples MENOS • termo
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    termo  go to state 142
-    fator  go to state 75
+    termo  ir ao estado 142
+    fator  ir ao estado 75
 
 
-State 108
+Estado 108
 
-   88 termo: termo DIV . fator
+   88 termo: termo DIV • fator
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    fator  go to state 143
+    fator  ir ao estado 143
 
 
-State 109
+Estado 109
 
-   87 termo: termo ASTERISCO . fator
+   87 termo: termo ASTERISCO • fator
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    fator  go to state 144
+    fator  ir ao estado 144
 
 
-State 110
+Estado 110
 
-   74 simb_leitura: IDENT .
+   74 simb_leitura: IDENT •
 
-    $default  reduce using rule 74 (simb_leitura)
+    $padrão  reduzir usando a regra 74 (simb_leitura)
 
 
-State 111
+Estado 111
 
-   71 leitura: READ ABRE_PARENTESES lista_leituras . FECHA_PARENTESES
-   72 lista_leituras: lista_leituras . VIRGULA simb_leitura
+   71 leitura: READ ABRE_PARENTESES lista_leituras • FECHA_PARENTESES
+   72 lista_leituras: lista_leituras • VIRGULA simb_leitura
 
-    FECHA_PARENTESES  shift, and go to state 145
-    VIRGULA           shift, and go to state 146
+    FECHA_PARENTESES  deslocar, e ir ao estado 145
+    VIRGULA           deslocar, e ir ao estado 146
 
 
-State 112
+Estado 112
 
-   73 lista_leituras: simb_leitura .
+   73 lista_leituras: simb_leitura •
 
-    $default  reduce using rule 73 (lista_leituras)
+    $padrão  reduzir usando a regra 73 (lista_leituras)
 
 
-State 113
+Estado 113
 
-   75 escrita: WRITE ABRE_PARENTESES lista_escritas . FECHA_PARENTESES
-   76 lista_escritas: lista_escritas . VIRGULA expressao_simples
+   75 escrita: WRITE ABRE_PARENTESES lista_escritas • FECHA_PARENTESES
+   76 lista_escritas: lista_escritas • VIRGULA expressao_simples
 
-    FECHA_PARENTESES  shift, and go to state 147
-    VIRGULA           shift, and go to state 148
+    FECHA_PARENTESES  deslocar, e ir ao estado 147
+    VIRGULA           deslocar, e ir ao estado 148
 
 
-State 114
+Estado 114
 
-   77 lista_escritas: expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   77 lista_escritas: expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 77 (lista_escritas)
+    $padrão  reduzir usando a regra 77 (lista_escritas)
 
 
-State 115
+Estado 115
 
-   46 comandos: comando PONTO_E_VIRGULA comandos .
+   46 comandos: comando PONTO_E_VIRGULA comandos •
 
-    $default  reduce using rule 46 (comandos)
+    $padrão  reduzir usando a regra 46 (comandos)
 
 
-State 116
+Estado 116
 
-   49 comando: numero DOIS_PONTOS comando_sem_rotulo .
+   49 comando: numero DOIS_PONTOS comando_sem_rotulo •
 
-    $default  reduce using rule 49 (comando)
+    $padrão  reduzir usando a regra 49 (comando)
 
 
-State 117
+Estado 117
 
-   98 comando_repetitivo: $@22 WHILE expressao . DO $@23 comando_sem_rotulo
+   98 comando_repetitivo: $@22 WHILE expressao • DO $@23 comando_sem_rotulo
 
-    DO  shift, and go to state 149
+    DO  deslocar, e ir ao estado 149
 
 
-State 118
+Estado 118
 
-  100 cond_else: ELSE comando_sem_rotulo .
+  100 cond_else: ELSE comando_sem_rotulo •
 
-    $default  reduce using rule 100 (cond_else)
+    $padrão  reduzir usando a regra 100 (cond_else)
 
 
-State 119
+Estado 119
 
-   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA .
+   16 declara_var: $@5 lista_id_var DOIS_PONTOS tipo $@6 PONTO_E_VIRGULA •
 
-    $default  reduce using rule 16 (declara_var)
+    $padrão  reduzir usando a regra 16 (declara_var)
 
 
-State 120
+Estado 120
 
-   39 secao_pfs: VAR $@14 . lista_id_pf DOIS_PONTOS tipo
+   39 secao_pfs: VAR $@14 • lista_id_pf DOIS_PONTOS tipo
 
-    IDENT  shift, and go to state 123
+    IDENT  deslocar, e ir ao estado 123
 
-    lista_id_pf  go to state 150
-    parametro    go to state 125
+    lista_id_pf  ir ao estado 150
+    parametro    ir ao estado 125
 
 
-State 121
+Estado 121
 
-   37 paramentros_formais: paramentros_formais PONTO_E_VIRGULA . secao_pfs
+   37 paramentros_formais: paramentros_formais PONTO_E_VIRGULA • secao_pfs
 
-    VAR  shift, and go to state 85
+    VAR  deslocar, e ir ao estado 85
 
-    $default  reduce using rule 40 ($@15)
+    $padrão  reduzir usando a regra 40 ($@15)
 
-    secao_pfs  go to state 151
-    $@15       go to state 88
+    secao_pfs  ir ao estado 151
+    $@15       ir ao estado 88
 
 
-State 122
+Estado 122
 
-   34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais $@13 . FECHA_PARENTESES
+   34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais $@13 • FECHA_PARENTESES
 
-    FECHA_PARENTESES  shift, and go to state 152
+    FECHA_PARENTESES  deslocar, e ir ao estado 152
 
 
-State 123
+Estado 123
 
-   44 parametro: IDENT .
+   44 parametro: IDENT •
 
-    $default  reduce using rule 44 (parametro)
+    $padrão  reduzir usando a regra 44 (parametro)
 
 
-State 124
+Estado 124
 
-   41 secao_pfs: $@15 lista_id_pf . DOIS_PONTOS tipo
+   41 secao_pfs: $@15 lista_id_pf • DOIS_PONTOS tipo
 
-    DOIS_PONTOS  shift, and go to state 153
+    DOIS_PONTOS  deslocar, e ir ao estado 153
 
 
-State 125
+Estado 125
 
-   42 lista_id_pf: parametro . VIRGULA lista_id_pf
-   43            | parametro .
+   42 lista_id_pf: parametro • VIRGULA lista_id_pf
+   43            | parametro •
 
-    VIRGULA  shift, and go to state 154
+    VIRGULA  deslocar, e ir ao estado 154
 
-    $default  reduce using rule 43 (lista_id_pf)
+    $padrão  reduzir usando a regra 43 (lista_id_pf)
 
 
-State 126
+Estado 126
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo . PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo • PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 155
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 155
 
 
-State 127
+Estado 127
 
-   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco . $@8 PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco • $@8 PONTO_E_VIRGULA
 
-    $default  reduce using rule 26 ($@8)
+    $padrão  reduzir usando a regra 26 ($@8)
 
-    $@8  go to state 156
+    $@8  ir ao estado 156
 
 
-State 128
+Estado 128
 
-   62 atribuicao: $@17 ATRIBUICAO . expressao_simples
+   62 atribuicao: $@17 ATRIBUICAO • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 157
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 157
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 129
+Estado 129
 
-   65 lista_parametros: ABRE_PARENTESES . lista_parametros_parenteses FECHA_PARENTESES
+   65 lista_parametros: ABRE_PARENTESES • lista_parametros_parenteses FECHA_PARENTESES
 
-    $default  reduce using rule 69 ($@20)
+    $padrão  reduzir usando a regra 69 ($@20)
 
-    lista_parametros_parenteses  go to state 158
-    $@20                         go to state 159
+    lista_parametros_parenteses  ir ao estado 158
+    $@20                         ir ao estado 159
 
 
-State 130
+Estado 130
 
-   64 chamada_procedimento: $@18 lista_parametros .
+   64 chamada_procedimento: $@18 lista_parametros •
 
-    $default  reduce using rule 64 (chamada_procedimento)
+    $padrão  reduzir usando a regra 64 (chamada_procedimento)
 
 
-State 131
+Estado 131
 
-   93 fator: ABRE_PARENTESES expressao FECHA_PARENTESES .
+   93 fator: ABRE_PARENTESES expressao FECHA_PARENTESES •
 
-    $default  reduce using rule 93 (fator)
+    $padrão  reduzir usando a regra 93 (fator)
 
 
-State 132
+Estado 132
 
-   94 fator: ABRE_PARENTESES expressao_simples FECHA_PARENTESES .
+   94 fator: ABRE_PARENTESES expressao_simples FECHA_PARENTESES •
 
-    $default  reduce using rule 94 (fator)
+    $padrão  reduzir usando a regra 94 (fator)
 
 
-State 133
+Estado 133
 
-   91 fator: IDENT $@21 chamada_procedimento .
+   91 fator: IDENT $@21 chamada_procedimento •
 
-    $default  reduce using rule 91 (fator)
+    $padrão  reduzir usando a regra 91 (fator)
 
 
-State 134
+Estado 134
 
-  103 if_then: IF expressao $@24 THEN . comando_sem_rotulo
+  103 if_then: IF expressao $@24 THEN • comando_sem_rotulo
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    T_BEGIN  deslocar, e ir ao estado 38
+    IDENT    deslocar, e ir ao estado 45
+    IF       deslocar, e ir ao estado 46
+    READ     deslocar, e ir ao estado 48
+    WRITE    deslocar, e ir ao estado 49
 
-    $default  reduce using rule 96 ($@22)
+    $padrão  reduzir usando a regra 96 ($@22)
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 160
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    $@22                        go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    comando_composto            ir ao estado 50
+    comando_sem_rotulo          ir ao estado 160
+    atribuicao_ou_procedimento  ir ao estado 54
+    leitura                     ir ao estado 55
+    escrita                     ir ao estado 56
+    comando_repetitivo          ir ao estado 58
+    $@22                        ir ao estado 59
+    comando_condicional         ir ao estado 60
+    if_then                     ir ao estado 61
 
 
-State 135
+Estado 135
 
-   78 expressao: expressao_simples IGUAL expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   78 expressao: expressao_simples IGUAL expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 78 (expressao)
+    $padrão  reduzir usando a regra 78 (expressao)
 
 
-State 136
+Estado 136
 
-   79 expressao: expressao_simples DIFERENTE expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   79 expressao: expressao_simples DIFERENTE expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 79 (expressao)
+    $padrão  reduzir usando a regra 79 (expressao)
 
 
-State 137
+Estado 137
 
-   81 expressao: expressao_simples MENOR_IGUAL expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   81 expressao: expressao_simples MENOR_IGUAL expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 81 (expressao)
+    $padrão  reduzir usando a regra 81 (expressao)
 
 
-State 138
+Estado 138
 
-   83 expressao: expressao_simples MAIOR_IGUAL expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   83 expressao: expressao_simples MAIOR_IGUAL expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 83 (expressao)
+    $padrão  reduzir usando a regra 83 (expressao)
 
 
-State 139
+Estado 139
 
-   80 expressao: expressao_simples MENOR expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   80 expressao: expressao_simples MENOR expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 80 (expressao)
+    $padrão  reduzir usando a regra 80 (expressao)
 
 
-State 140
+Estado 140
 
-   82 expressao: expressao_simples MAIOR expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   82 expressao: expressao_simples MAIOR expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 82 (expressao)
+    $padrão  reduzir usando a regra 82 (expressao)
 
 
-State 141
+Estado 141
 
-   84 expressao_simples: expressao_simples MAIS termo .
-   87 termo: termo . ASTERISCO fator
-   88      | termo . DIV fator
+   84 expressao_simples: expressao_simples MAIS termo •
+   87 termo: termo • ASTERISCO fator
+   88      | termo • DIV fator
 
-    DIV        shift, and go to state 108
-    ASTERISCO  shift, and go to state 109
+    DIV        deslocar, e ir ao estado 108
+    ASTERISCO  deslocar, e ir ao estado 109
 
-    $default  reduce using rule 84 (expressao_simples)
+    $padrão  reduzir usando a regra 84 (expressao_simples)
 
 
-State 142
+Estado 142
 
-   85 expressao_simples: expressao_simples MENOS termo .
-   87 termo: termo . ASTERISCO fator
-   88      | termo . DIV fator
+   85 expressao_simples: expressao_simples MENOS termo •
+   87 termo: termo • ASTERISCO fator
+   88      | termo • DIV fator
 
-    DIV        shift, and go to state 108
-    ASTERISCO  shift, and go to state 109
+    DIV        deslocar, e ir ao estado 108
+    ASTERISCO  deslocar, e ir ao estado 109
 
-    $default  reduce using rule 85 (expressao_simples)
+    $padrão  reduzir usando a regra 85 (expressao_simples)
 
 
-State 143
+Estado 143
 
-   88 termo: termo DIV fator .
+   88 termo: termo DIV fator •
 
-    $default  reduce using rule 88 (termo)
+    $padrão  reduzir usando a regra 88 (termo)
 
 
-State 144
+Estado 144
 
-   87 termo: termo ASTERISCO fator .
+   87 termo: termo ASTERISCO fator •
 
-    $default  reduce using rule 87 (termo)
+    $padrão  reduzir usando a regra 87 (termo)
 
 
-State 145
+Estado 145
 
-   71 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES .
+   71 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES •
 
-    $default  reduce using rule 71 (leitura)
+    $padrão  reduzir usando a regra 71 (leitura)
 
 
-State 146
+Estado 146
 
-   72 lista_leituras: lista_leituras VIRGULA . simb_leitura
+   72 lista_leituras: lista_leituras VIRGULA • simb_leitura
 
-    IDENT  shift, and go to state 110
+    IDENT  deslocar, e ir ao estado 110
 
-    simb_leitura  go to state 161
+    simb_leitura  ir ao estado 161
 
 
-State 147
+Estado 147
 
-   75 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES .
+   75 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES •
 
-    $default  reduce using rule 75 (escrita)
+    $padrão  reduzir usando a regra 75 (escrita)
 
 
-State 148
+Estado 148
 
-   76 lista_escritas: lista_escritas VIRGULA . expressao_simples
+   76 lista_escritas: lista_escritas VIRGULA • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 162
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 162
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 149
+Estado 149
 
-   98 comando_repetitivo: $@22 WHILE expressao DO . $@23 comando_sem_rotulo
+   98 comando_repetitivo: $@22 WHILE expressao DO • $@23 comando_sem_rotulo
 
-    $default  reduce using rule 97 ($@23)
+    $padrão  reduzir usando a regra 97 ($@23)
 
-    $@23  go to state 163
+    $@23  ir ao estado 163
 
 
-State 150
+Estado 150
 
-   39 secao_pfs: VAR $@14 lista_id_pf . DOIS_PONTOS tipo
+   39 secao_pfs: VAR $@14 lista_id_pf • DOIS_PONTOS tipo
 
-    DOIS_PONTOS  shift, and go to state 164
+    DOIS_PONTOS  deslocar, e ir ao estado 164
 
 
-State 151
+Estado 151
 
-   37 paramentros_formais: paramentros_formais PONTO_E_VIRGULA secao_pfs .
+   37 paramentros_formais: paramentros_formais PONTO_E_VIRGULA secao_pfs •
 
-    $default  reduce using rule 37 (paramentros_formais)
+    $padrão  reduzir usando a regra 37 (paramentros_formais)
 
 
-State 152
+Estado 152
 
-   34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais $@13 FECHA_PARENTESES .
+   34 parametros_ou_nada: ABRE_PARENTESES $@12 paramentros_formais $@13 FECHA_PARENTESES •
 
-    $default  reduce using rule 34 (parametros_ou_nada)
+    $padrão  reduzir usando a regra 34 (parametros_ou_nada)
 
 
-State 153
+Estado 153
 
-   41 secao_pfs: $@15 lista_id_pf DOIS_PONTOS . tipo
+   41 secao_pfs: $@15 lista_id_pf DOIS_PONTOS • tipo
 
-    IDENT  shift, and go to state 63
+    IDENT  deslocar, e ir ao estado 63
 
-    tipo  go to state 165
+    tipo  ir ao estado 165
 
 
-State 154
+Estado 154
 
-   42 lista_id_pf: parametro VIRGULA . lista_id_pf
+   42 lista_id_pf: parametro VIRGULA • lista_id_pf
 
-    IDENT  shift, and go to state 123
+    IDENT  deslocar, e ir ao estado 123
 
-    lista_id_pf  go to state 166
-    parametro    go to state 125
+    lista_id_pf  ir ao estado 166
+    parametro    ir ao estado 125
 
 
-State 155
+Estado 155
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA . bloco $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA • bloco $@11 PONTO_E_VIRGULA
 
-    LABEL  shift, and go to state 13
+    LABEL  deslocar, e ir ao estado 13
 
-    $default  reduce using rule 7 (parte_declara_rotulos)
+    $padrão  reduzir usando a regra 7 (parte_declara_rotulos)
 
-    bloco                  go to state 167
-    parte_declara_rotulos  go to state 15
+    bloco                  ir ao estado 167
+    parte_declara_rotulos  ir ao estado 15
 
 
-State 156
+Estado 156
 
-   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 . PONTO_E_VIRGULA
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 • PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 168
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 168
 
 
-State 157
+Estado 157
 
-   62 atribuicao: $@17 ATRIBUICAO expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   62 atribuicao: $@17 ATRIBUICAO expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 62 (atribuicao)
+    $padrão  reduzir usando a regra 62 (atribuicao)
 
 
-State 158
+Estado 158
 
-   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses . FECHA_PARENTESES
-   68 lista_parametros_parenteses: lista_parametros_parenteses . VIRGULA $@19 expressao_simples
+   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses • FECHA_PARENTESES
+   68 lista_parametros_parenteses: lista_parametros_parenteses • VIRGULA $@19 expressao_simples
 
-    FECHA_PARENTESES  shift, and go to state 169
-    VIRGULA           shift, and go to state 170
+    FECHA_PARENTESES  deslocar, e ir ao estado 169
+    VIRGULA           deslocar, e ir ao estado 170
 
 
-State 159
+Estado 159
 
-   70 lista_parametros_parenteses: $@20 . expressao_simples
+   70 lista_parametros_parenteses: $@20 • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 171
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 171
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 160
+Estado 160
 
-  103 if_then: IF expressao $@24 THEN comando_sem_rotulo .
+  103 if_then: IF expressao $@24 THEN comando_sem_rotulo •
 
-    $default  reduce using rule 103 (if_then)
+    $padrão  reduzir usando a regra 103 (if_then)
 
 
-State 161
+Estado 161
 
-   72 lista_leituras: lista_leituras VIRGULA simb_leitura .
+   72 lista_leituras: lista_leituras VIRGULA simb_leitura •
 
-    $default  reduce using rule 72 (lista_leituras)
+    $padrão  reduzir usando a regra 72 (lista_leituras)
 
 
-State 162
+Estado 162
 
-   76 lista_escritas: lista_escritas VIRGULA expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   76 lista_escritas: lista_escritas VIRGULA expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 76 (lista_escritas)
+    $padrão  reduzir usando a regra 76 (lista_escritas)
 
 
-State 163
+Estado 163
 
-   98 comando_repetitivo: $@22 WHILE expressao DO $@23 . comando_sem_rotulo
+   98 comando_repetitivo: $@22 WHILE expressao DO $@23 • comando_sem_rotulo
 
-    T_BEGIN  shift, and go to state 38
-    IDENT    shift, and go to state 45
-    IF       shift, and go to state 46
-    READ     shift, and go to state 48
-    WRITE    shift, and go to state 49
+    T_BEGIN  deslocar, e ir ao estado 38
+    IDENT    deslocar, e ir ao estado 45
+    IF       deslocar, e ir ao estado 46
+    READ     deslocar, e ir ao estado 48
+    WRITE    deslocar, e ir ao estado 49
 
-    $default  reduce using rule 96 ($@22)
+    $padrão  reduzir usando a regra 96 ($@22)
 
-    comando_composto            go to state 50
-    comando_sem_rotulo          go to state 172
-    atribuicao_ou_procedimento  go to state 54
-    leitura                     go to state 55
-    escrita                     go to state 56
-    comando_repetitivo          go to state 58
-    $@22                        go to state 59
-    comando_condicional         go to state 60
-    if_then                     go to state 61
+    comando_composto            ir ao estado 50
+    comando_sem_rotulo          ir ao estado 172
+    atribuicao_ou_procedimento  ir ao estado 54
+    leitura                     ir ao estado 55
+    escrita                     ir ao estado 56
+    comando_repetitivo          ir ao estado 58
+    $@22                        ir ao estado 59
+    comando_condicional         ir ao estado 60
+    if_then                     ir ao estado 61
 
 
-State 164
+Estado 164
 
-   39 secao_pfs: VAR $@14 lista_id_pf DOIS_PONTOS . tipo
+   39 secao_pfs: VAR $@14 lista_id_pf DOIS_PONTOS • tipo
 
-    IDENT  shift, and go to state 63
+    IDENT  deslocar, e ir ao estado 63
 
-    tipo  go to state 173
+    tipo  ir ao estado 173
 
 
-State 165
+Estado 165
 
-   41 secao_pfs: $@15 lista_id_pf DOIS_PONTOS tipo .
+   41 secao_pfs: $@15 lista_id_pf DOIS_PONTOS tipo •
 
-    $default  reduce using rule 41 (secao_pfs)
+    $padrão  reduzir usando a regra 41 (secao_pfs)
 
 
-State 166
+Estado 166
 
-   42 lista_id_pf: parametro VIRGULA lista_id_pf .
+   42 lista_id_pf: parametro VIRGULA lista_id_pf •
 
-    $default  reduce using rule 42 (lista_id_pf)
+    $padrão  reduzir usando a regra 42 (lista_id_pf)
 
 
-State 167
+Estado 167
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco . $@11 PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco • $@11 PONTO_E_VIRGULA
 
-    $default  reduce using rule 30 ($@11)
+    $padrão  reduzir usando a regra 30 ($@11)
 
-    $@11  go to state 174
+    $@11  ir ao estado 174
 
 
-State 168
+Estado 168
 
-   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA .
+   27 declaracao_procedimento: PROCEDURE IDENT $@7 parametros_ou_nada PONTO_E_VIRGULA bloco $@8 PONTO_E_VIRGULA •
 
-    $default  reduce using rule 27 (declaracao_procedimento)
+    $padrão  reduzir usando a regra 27 (declaracao_procedimento)
 
 
-State 169
+Estado 169
 
-   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES .
+   65 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES •
 
-    $default  reduce using rule 65 (lista_parametros)
+    $padrão  reduzir usando a regra 65 (lista_parametros)
 
 
-State 170
+Estado 170
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA . $@19 expressao_simples
+   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA • $@19 expressao_simples
 
-    $default  reduce using rule 67 ($@19)
+    $padrão  reduzir usando a regra 67 ($@19)
 
-    $@19  go to state 175
+    $@19  ir ao estado 175
 
 
-State 171
+Estado 171
 
-   70 lista_parametros_parenteses: $@20 expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   70 lista_parametros_parenteses: $@20 expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 70 (lista_parametros_parenteses)
+    $padrão  reduzir usando a regra 70 (lista_parametros_parenteses)
 
 
-State 172
+Estado 172
 
-   98 comando_repetitivo: $@22 WHILE expressao DO $@23 comando_sem_rotulo .
+   98 comando_repetitivo: $@22 WHILE expressao DO $@23 comando_sem_rotulo •
 
-    $default  reduce using rule 98 (comando_repetitivo)
+    $padrão  reduzir usando a regra 98 (comando_repetitivo)
 
 
-State 173
+Estado 173
 
-   39 secao_pfs: VAR $@14 lista_id_pf DOIS_PONTOS tipo .
+   39 secao_pfs: VAR $@14 lista_id_pf DOIS_PONTOS tipo •
 
-    $default  reduce using rule 39 (secao_pfs)
+    $padrão  reduzir usando a regra 39 (secao_pfs)
 
 
-State 174
+Estado 174
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 . PONTO_E_VIRGULA
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 • PONTO_E_VIRGULA
 
-    PONTO_E_VIRGULA  shift, and go to state 176
+    PONTO_E_VIRGULA  deslocar, e ir ao estado 176
 
 
-State 175
+Estado 175
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@19 . expressao_simples
+   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@19 • expressao_simples
 
-    ABRE_PARENTESES  shift, and go to state 69
-    IDENT            shift, and go to state 70
-    NUMERO           shift, and go to state 71
+    ABRE_PARENTESES  deslocar, e ir ao estado 69
+    IDENT            deslocar, e ir ao estado 70
+    NUMERO           deslocar, e ir ao estado 71
 
-    expressao_simples  go to state 177
-    termo              go to state 74
-    fator              go to state 75
+    expressao_simples  ir ao estado 177
+    termo              ir ao estado 74
+    fator              ir ao estado 75
 
 
-State 176
+Estado 176
 
-   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA .
+   31 declaracao_funcao: FUNCTION IDENT $@9 parametros_ou_nada DOIS_PONTOS $@10 tipo PONTO_E_VIRGULA bloco $@11 PONTO_E_VIRGULA •
 
-    $default  reduce using rule 31 (declaracao_funcao)
+    $padrão  reduzir usando a regra 31 (declaracao_funcao)
 
 
-State 177
+Estado 177
 
-   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@19 expressao_simples .
-   84 expressao_simples: expressao_simples . MAIS termo
-   85                  | expressao_simples . MENOS termo
+   68 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@19 expressao_simples •
+   84 expressao_simples: expressao_simples • MAIS termo
+   85                  | expressao_simples • MENOS termo
 
-    MAIS   shift, and go to state 106
-    MENOS  shift, and go to state 107
+    MAIS   deslocar, e ir ao estado 106
+    MENOS  deslocar, e ir ao estado 107
 
-    $default  reduce using rule 68 (lista_parametros_parenteses)
+    $padrão  reduzir usando a regra 68 (lista_parametros_parenteses)
diff --git a/ORIGNAL/compilador.tab.c b/ORIGNAL/compilador.tab.c
index c25b2f4..78e7507 100644
--- a/ORIGNAL/compilador.tab.c
+++ b/ORIGNAL/compilador.tab.c
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.5.1.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -34,6 +34,10 @@
 /* C LALR(1) parser skeleton written by Richard Stallman, by
    simplifying the original so-called "semantic" parser.  */
 
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+   especially those whose name start with YY_ or yy_.  They are
+   private implementation details that can be changed or removed.  */
+
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
    variables, as they might otherwise be expanded by user macros.
@@ -41,14 +45,11 @@
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
-/* Undocumented macros, especially those whose name start with YY_,
-   are private implementation details.  Do not rely on them.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
+/* Identify Bison output, and Bison version.  */
+#define YYBISON 30802
 
-/* Bison version.  */
-#define YYBISON_VERSION "3.5.1"
+/* Bison version string.  */
+#define YYBISON_VERSION "3.8.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -92,7 +93,7 @@ int val_ou_ref;
 int atr_indireto;
 
 
-#line 96 "compilador.tab.c"
+#line 97 "compilador.tab.c"
 
 # ifndef YY_CAST
 #  ifdef __cplusplus
@@ -115,87 +116,124 @@ int atr_indireto;
 #  endif
 # endif
 
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Use api.header.include to #include this header
-   instead of duplicating it here.  */
-#ifndef YY_YY_COMPILADOR_TAB_H_INCLUDED
-# define YY_YY_COMPILADOR_TAB_H_INCLUDED
-/* Debug traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
-/* Token type.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-  enum yytokentype
-  {
-    PROGRAM = 258,
-    ABRE_PARENTESES = 259,
-    FECHA_PARENTESES = 260,
-    VIRGULA = 261,
-    PONTO_E_VIRGULA = 262,
-    DOIS_PONTOS = 263,
-    PONTO = 264,
-    T_BEGIN = 265,
-    T_END = 266,
-    VAR = 267,
-    IDENT = 268,
-    ATRIBUICAO = 269,
-    LABEL = 270,
-    TYPE = 271,
-    ARRAY = 272,
-    PROCEDURE = 273,
-    FUNCTION = 274,
-    GOTO = 275,
-    IF = 276,
-    THEN = 277,
-    ELSE = 278,
-    WHILE = 279,
-    DO = 280,
-    OR = 281,
-    DIV = 282,
-    AND = 283,
-    NOT = 284,
-    IGUAL = 285,
-    DIFERENTE = 286,
-    MENOR_IGUAL = 287,
-    MAIOR_IGUAL = 288,
-    MENOR = 289,
-    MAIOR = 290,
-    MAIS = 291,
-    MENOS = 292,
-    ASTERISCO = 293,
-    NUMERO = 294,
-    READ = 295,
-    WRITE = 296,
-    LOWER_THAN_ELSE = 297
-  };
-#endif
-
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-extern YYSTYPE yylval;
-
-int yyparse (void);
+#include "compilador.tab.h"
+/* Symbol kind.  */
+enum yysymbol_kind_t
+{
+  YYSYMBOL_YYEMPTY = -2,
+  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
+  YYSYMBOL_YYerror = 1,                    /* error  */
+  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
+  YYSYMBOL_PROGRAM = 3,                    /* PROGRAM  */
+  YYSYMBOL_ABRE_PARENTESES = 4,            /* ABRE_PARENTESES  */
+  YYSYMBOL_FECHA_PARENTESES = 5,           /* FECHA_PARENTESES  */
+  YYSYMBOL_VIRGULA = 6,                    /* VIRGULA  */
+  YYSYMBOL_PONTO_E_VIRGULA = 7,            /* PONTO_E_VIRGULA  */
+  YYSYMBOL_DOIS_PONTOS = 8,                /* DOIS_PONTOS  */
+  YYSYMBOL_PONTO = 9,                      /* PONTO  */
+  YYSYMBOL_T_BEGIN = 10,                   /* T_BEGIN  */
+  YYSYMBOL_T_END = 11,                     /* T_END  */
+  YYSYMBOL_VAR = 12,                       /* VAR  */
+  YYSYMBOL_IDENT = 13,                     /* IDENT  */
+  YYSYMBOL_ATRIBUICAO = 14,                /* ATRIBUICAO  */
+  YYSYMBOL_LABEL = 15,                     /* LABEL  */
+  YYSYMBOL_TYPE = 16,                      /* TYPE  */
+  YYSYMBOL_ARRAY = 17,                     /* ARRAY  */
+  YYSYMBOL_PROCEDURE = 18,                 /* PROCEDURE  */
+  YYSYMBOL_FUNCTION = 19,                  /* FUNCTION  */
+  YYSYMBOL_GOTO = 20,                      /* GOTO  */
+  YYSYMBOL_IF = 21,                        /* IF  */
+  YYSYMBOL_THEN = 22,                      /* THEN  */
+  YYSYMBOL_ELSE = 23,                      /* ELSE  */
+  YYSYMBOL_WHILE = 24,                     /* WHILE  */
+  YYSYMBOL_DO = 25,                        /* DO  */
+  YYSYMBOL_OR = 26,                        /* OR  */
+  YYSYMBOL_DIV = 27,                       /* DIV  */
+  YYSYMBOL_AND = 28,                       /* AND  */
+  YYSYMBOL_NOT = 29,                       /* NOT  */
+  YYSYMBOL_IGUAL = 30,                     /* IGUAL  */
+  YYSYMBOL_DIFERENTE = 31,                 /* DIFERENTE  */
+  YYSYMBOL_MENOR_IGUAL = 32,               /* MENOR_IGUAL  */
+  YYSYMBOL_MAIOR_IGUAL = 33,               /* MAIOR_IGUAL  */
+  YYSYMBOL_MENOR = 34,                     /* MENOR  */
+  YYSYMBOL_MAIOR = 35,                     /* MAIOR  */
+  YYSYMBOL_MAIS = 36,                      /* MAIS  */
+  YYSYMBOL_MENOS = 37,                     /* MENOS  */
+  YYSYMBOL_ASTERISCO = 38,                 /* ASTERISCO  */
+  YYSYMBOL_NUMERO = 39,                    /* NUMERO  */
+  YYSYMBOL_READ = 40,                      /* READ  */
+  YYSYMBOL_WRITE = 41,                     /* WRITE  */
+  YYSYMBOL_LOWER_THAN_ELSE = 42,           /* LOWER_THAN_ELSE  */
+  YYSYMBOL_YYACCEPT = 43,                  /* $accept  */
+  YYSYMBOL_programa = 44,                  /* programa  */
+  YYSYMBOL_45_1 = 45,                      /* $@1  */
+  YYSYMBOL_bloco = 46,                     /* bloco  */
+  YYSYMBOL_47_2 = 47,                      /* $@2  */
+  YYSYMBOL_48_3 = 48,                      /* $@3  */
+  YYSYMBOL_parte_declara_rotulos = 49,     /* parte_declara_rotulos  */
+  YYSYMBOL_parte_declara_vars = 50,        /* parte_declara_vars  */
+  YYSYMBOL_var = 51,                       /* var  */
+  YYSYMBOL_52_4 = 52,                      /* $@4  */
+  YYSYMBOL_declara_vars = 53,              /* declara_vars  */
+  YYSYMBOL_declara_var = 54,               /* declara_var  */
+  YYSYMBOL_55_5 = 55,                      /* $@5  */
+  YYSYMBOL_56_6 = 56,                      /* $@6  */
+  YYSYMBOL_tipo = 57,                      /* tipo  */
+  YYSYMBOL_lista_id_var = 58,              /* lista_id_var  */
+  YYSYMBOL_lista_idents = 59,              /* lista_idents  */
+  YYSYMBOL_parte_declara_subrotinas = 60,  /* parte_declara_subrotinas  */
+  YYSYMBOL_declaracao_procedimento = 61,   /* declaracao_procedimento  */
+  YYSYMBOL_62_7 = 62,                      /* $@7  */
+  YYSYMBOL_63_8 = 63,                      /* $@8  */
+  YYSYMBOL_declaracao_funcao = 64,         /* declaracao_funcao  */
+  YYSYMBOL_65_9 = 65,                      /* $@9  */
+  YYSYMBOL_66_10 = 66,                     /* $@10  */
+  YYSYMBOL_67_11 = 67,                     /* $@11  */
+  YYSYMBOL_parametros_ou_nada = 68,        /* parametros_ou_nada  */
+  YYSYMBOL_69_12 = 69,                     /* $@12  */
+  YYSYMBOL_70_13 = 70,                     /* $@13  */
+  YYSYMBOL_paramentros_formais = 71,       /* paramentros_formais  */
+  YYSYMBOL_secao_pfs = 72,                 /* secao_pfs  */
+  YYSYMBOL_73_14 = 73,                     /* $@14  */
+  YYSYMBOL_74_15 = 74,                     /* $@15  */
+  YYSYMBOL_lista_id_pf = 75,               /* lista_id_pf  */
+  YYSYMBOL_parametro = 76,                 /* parametro  */
+  YYSYMBOL_comando_composto = 77,          /* comando_composto  */
+  YYSYMBOL_comandos = 78,                  /* comandos  */
+  YYSYMBOL_comando = 79,                   /* comando  */
+  YYSYMBOL_comando_sem_rotulo = 80,        /* comando_sem_rotulo  */
+  YYSYMBOL_atribuicao_ou_procedimento = 81, /* atribuicao_ou_procedimento  */
+  YYSYMBOL_82_16 = 82,                     /* $@16  */
+  YYSYMBOL_atribuicao_ou_procedimento_token = 83, /* atribuicao_ou_procedimento_token  */
+  YYSYMBOL_atribuicao = 84,                /* atribuicao  */
+  YYSYMBOL_85_17 = 85,                     /* $@17  */
+  YYSYMBOL_chamada_procedimento = 86,      /* chamada_procedimento  */
+  YYSYMBOL_87_18 = 87,                     /* $@18  */
+  YYSYMBOL_lista_parametros = 88,          /* lista_parametros  */
+  YYSYMBOL_lista_parametros_parenteses = 89, /* lista_parametros_parenteses  */
+  YYSYMBOL_90_19 = 90,                     /* $@19  */
+  YYSYMBOL_91_20 = 91,                     /* $@20  */
+  YYSYMBOL_leitura = 92,                   /* leitura  */
+  YYSYMBOL_lista_leituras = 93,            /* lista_leituras  */
+  YYSYMBOL_simb_leitura = 94,              /* simb_leitura  */
+  YYSYMBOL_escrita = 95,                   /* escrita  */
+  YYSYMBOL_lista_escritas = 96,            /* lista_escritas  */
+  YYSYMBOL_expressao = 97,                 /* expressao  */
+  YYSYMBOL_expressao_simples = 98,         /* expressao_simples  */
+  YYSYMBOL_termo = 99,                     /* termo  */
+  YYSYMBOL_fator = 100,                    /* fator  */
+  YYSYMBOL_101_21 = 101,                   /* $@21  */
+  YYSYMBOL_numero = 102,                   /* numero  */
+  YYSYMBOL_comando_repetitivo = 103,       /* comando_repetitivo  */
+  YYSYMBOL_104_22 = 104,                   /* $@22  */
+  YYSYMBOL_105_23 = 105,                   /* $@23  */
+  YYSYMBOL_comando_condicional = 106,      /* comando_condicional  */
+  YYSYMBOL_cond_else = 107,                /* cond_else  */
+  YYSYMBOL_if_then = 108,                  /* if_then  */
+  YYSYMBOL_109_24 = 109                    /* $@24  */
+};
+typedef enum yysymbol_kind_t yysymbol_kind_t;
 
-#endif /* !YY_YY_COMPILADOR_TAB_H_INCLUDED  */
 
 
 
@@ -236,6 +274,18 @@ typedef int_least16_t yytype_int16;
 typedef short yytype_int16;
 #endif
 
+/* Work around bug in HP-UX 11.23, which defines these macros
+   incorrectly for preprocessor constants.  This workaround can likely
+   be removed in 2023, as HPE has promised support for HP-UX 11.23
+   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
@@ -295,6 +345,7 @@ typedef int yytype_uint16;
 
 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
 
+
 /* Stored state numbers (used for stacks). */
 typedef yytype_uint8 yy_state_t;
 
@@ -313,6 +364,7 @@ typedef int yy_state_fast_t;
 # endif
 #endif
 
+
 #ifndef YY_ATTRIBUTE_PURE
 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
@@ -331,17 +383,23 @@ typedef int yy_state_fast_t;
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
 #else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
 #endif
 
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
     _Pragma ("GCC diagnostic push")                                     \
     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
     _Pragma ("GCC diagnostic pop")
 #else
@@ -370,7 +428,7 @@ typedef int yy_state_fast_t;
 
 #define YY_ASSERT(E) ((void) (0 && (E)))
 
-#if ! defined yyoverflow || YYERROR_VERBOSE
+#if !defined yyoverflow
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -435,8 +493,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 # endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
+#endif /* !defined yyoverflow */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
@@ -512,14 +569,16 @@ union yyalloc
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  178
 
-#define YYUNDEFTOK  2
+/* YYMAXUTOK -- Last valid token kind.  */
 #define YYMAXUTOK   297
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
    as returned by yylex, with out-of-bounds checking.  */
-#define YYTRANSLATE(YYX)                                                \
-  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+#define YYTRANSLATE(YYX)                                \
+  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
+   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
+   : YYSYMBOL_YYUNDEF)
 
 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    as returned by yylex.  */
@@ -558,7 +617,7 @@ static const yytype_int8 yytranslate[] =
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
        0,    47,    47,    47,    63,    74,    60,    93,    94,    97,
@@ -575,25 +634,32 @@ static const yytype_int16 yyrline[] =
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || 0
+/** Accessing symbol of state STATE.  */
+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
+
+#if YYDEBUG || 0
+/* The user-facing name of the symbol whose (internal) number is
+   YYSYMBOL.  No bounds checking.  */
+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
+
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "PROGRAM", "ABRE_PARENTESES",
-  "FECHA_PARENTESES", "VIRGULA", "PONTO_E_VIRGULA", "DOIS_PONTOS", "PONTO",
-  "T_BEGIN", "T_END", "VAR", "IDENT", "ATRIBUICAO", "LABEL", "TYPE",
-  "ARRAY", "PROCEDURE", "FUNCTION", "GOTO", "IF", "THEN", "ELSE", "WHILE",
-  "DO", "OR", "DIV", "AND", "NOT", "IGUAL", "DIFERENTE", "MENOR_IGUAL",
-  "MAIOR_IGUAL", "MENOR", "MAIOR", "MAIS", "MENOS", "ASTERISCO", "NUMERO",
-  "READ", "WRITE", "LOWER_THAN_ELSE", "$accept", "programa", "$@1",
-  "bloco", "$@2", "$@3", "parte_declara_rotulos", "parte_declara_vars",
-  "var", "$@4", "declara_vars", "declara_var", "$@5", "$@6", "tipo",
-  "lista_id_var", "lista_idents", "parte_declara_subrotinas",
-  "declaracao_procedimento", "$@7", "$@8", "declaracao_funcao", "$@9",
-  "$@10", "$@11", "parametros_ou_nada", "$@12", "$@13",
-  "paramentros_formais", "secao_pfs", "$@14", "$@15", "lista_id_pf",
-  "parametro", "comando_composto", "comandos", "comando",
+  "\"end of file\"", "error", "\"invalid token\"", "PROGRAM",
+  "ABRE_PARENTESES", "FECHA_PARENTESES", "VIRGULA", "PONTO_E_VIRGULA",
+  "DOIS_PONTOS", "PONTO", "T_BEGIN", "T_END", "VAR", "IDENT", "ATRIBUICAO",
+  "LABEL", "TYPE", "ARRAY", "PROCEDURE", "FUNCTION", "GOTO", "IF", "THEN",
+  "ELSE", "WHILE", "DO", "OR", "DIV", "AND", "NOT", "IGUAL", "DIFERENTE",
+  "MENOR_IGUAL", "MAIOR_IGUAL", "MENOR", "MAIOR", "MAIS", "MENOS",
+  "ASTERISCO", "NUMERO", "READ", "WRITE", "LOWER_THAN_ELSE", "$accept",
+  "programa", "$@1", "bloco", "$@2", "$@3", "parte_declara_rotulos",
+  "parte_declara_vars", "var", "$@4", "declara_vars", "declara_var", "$@5",
+  "$@6", "tipo", "lista_id_var", "lista_idents",
+  "parte_declara_subrotinas", "declaracao_procedimento", "$@7", "$@8",
+  "declaracao_funcao", "$@9", "$@10", "$@11", "parametros_ou_nada", "$@12",
+  "$@13", "paramentros_formais", "secao_pfs", "$@14", "$@15",
+  "lista_id_pf", "parametro", "comando_composto", "comandos", "comando",
   "comando_sem_rotulo", "atribuicao_ou_procedimento", "$@16",
   "atribuicao_ou_procedimento_token", "atribuicao", "$@17",
   "chamada_procedimento", "$@18", "lista_parametros",
@@ -603,20 +669,13 @@ static const char *const yytname[] =
   "comando_repetitivo", "$@22", "$@23", "comando_condicional", "cond_else",
   "if_then", "$@24", YY_NULLPTR
 };
-#endif
 
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_int16 yytoknum[] =
+static const char *
+yysymbol_name (yysymbol_kind_t yysymbol)
 {
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297
-};
-# endif
+  return yytname[yysymbol];
+}
+#endif
 
 #define YYPACT_NINF (-114)
 
@@ -628,8 +687,8 @@ static const yytype_int16 yytoknum[] =
 #define yytable_value_is_error(Yyn) \
   0
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
 static const yytype_int8 yypact[] =
 {
     -114,    11,    18,  -114,     0,    15,    37,  -114,    10,    23,
@@ -652,9 +711,9 @@ static const yytype_int8 yypact[] =
     -114,    -9,  -114,  -114,   116,     1,  -114,    -9
 };
 
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE does not specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_int8 yydefact[] =
 {
        2,     0,     0,     1,     0,     0,     0,    22,     0,     0,
@@ -677,7 +736,7 @@ static const yytype_int8 yydefact[] =
       68,    71,    99,    40,     0,     0,    32,    69
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
+/* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
     -114,  -114,  -114,   -86,  -114,  -114,  -114,  -114,  -114,  -114,
@@ -689,10 +748,10 @@ static const yytype_int8 yypgoto[] =
     -114,  -114,  -114,  -114,  -114,  -114,  -114
 };
 
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_uint8 yydefgoto[] =
 {
-      -1,     1,     2,    14,    21,    31,    15,    18,    19,    20,
+       0,     1,     2,    14,    21,    31,    15,    18,    19,    20,
       26,    27,    28,    84,    64,    35,     8,    24,    32,    44,
      156,    25,    36,    89,   174,    43,    65,   122,    86,    87,
      120,    88,   124,   125,    50,    51,    52,    53,    54,    68,
@@ -701,9 +760,9 @@ static const yytype_int16 yydefgoto[] =
       58,    59,   163,    60,    83,    61,    99
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule whose
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
       97,   116,   126,   118,   127,    69,    96,   150,   114,   108,
@@ -740,8 +799,8 @@ static const yytype_int16 yycheck[] =
      146,    -1,    -1,    -1,    -1,    31
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+   state STATE-NUM.  */
 static const yytype_int8 yystos[] =
 {
        0,    44,    45,     0,     3,    13,     4,    13,    59,     5,
@@ -764,7 +823,7 @@ static const yytype_int8 yystos[] =
        6,    98,    80,    57,    67,    90,     7,    98
 };
 
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
 static const yytype_int8 yyr1[] =
 {
        0,    43,    45,    44,    47,    48,    46,    49,    49,    50,
@@ -780,7 +839,7 @@ static const yytype_int8 yyr1[] =
      106,   107,   107,   109,   108
 };
 
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
 static const yytype_int8 yyr2[] =
 {
        0,     2,     0,     9,     0,     0,     6,     2,     0,     1,
@@ -797,14 +856,15 @@ static const yytype_int8 yyr2[] =
 };
 
 
+enum { YYENOMEM = -2 };
+
 #define yyerrok         (yyerrstatus = 0)
 #define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
 
 #define YYACCEPT        goto yyacceptlab
 #define YYABORT         goto yyabortlab
 #define YYERROR         goto yyerrorlab
+#define YYNOMEM         goto yyexhaustedlab
 
 
 #define YYRECOVERING()  (!!yyerrstatus)
@@ -826,10 +886,9 @@ static const yytype_int8 yyr2[] =
       }                                                           \
   while (0)
 
-/* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
+/* Backward compatibility with an undocumented macro.
+   Use YYerror or YYUNDEF. */
+#define YYERRCODE YYUNDEF
 
 
 /* Enable debugging if requested.  */
@@ -846,19 +905,16 @@ do {                                            \
     YYFPRINTF Args;                             \
 } while (0)
 
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
 
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
+
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
 do {                                                                      \
   if (yydebug)                                                            \
     {                                                                     \
       YYFPRINTF (stderr, "%s ", Title);                                   \
       yy_symbol_print (stderr,                                            \
-                  Type, Value); \
+                  Kind, Value); \
       YYFPRINTF (stderr, "\n");                                           \
     }                                                                     \
 } while (0)
@@ -869,18 +925,15 @@ do {                                                                      \
 `-----------------------------------*/
 
 static void
-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_value_print (FILE *yyo,
+                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
   FILE *yyoutput = yyo;
-  YYUSE (yyoutput);
+  YY_USE (yyoutput);
   if (!yyvaluep)
     return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
-# endif
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
@@ -890,12 +943,13 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
 `---------------------------*/
 
 static void
-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_print (FILE *yyo,
+                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
   YYFPRINTF (yyo, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
 
-  yy_symbol_value_print (yyo, yytype, yyvaluep);
+  yy_symbol_value_print (yyo, yykind, yyvaluep);
   YYFPRINTF (yyo, ")");
 }
 
@@ -928,7 +982,8 @@ do {                                                            \
 `------------------------------------------------*/
 
 static void
-yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
+yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
+                 int yyrule)
 {
   int yylno = yyrline[yyrule];
   int yynrhs = yyr2[yyrule];
@@ -940,9 +995,8 @@ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
     {
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr,
-                       yystos[+yyssp[yyi + 1 - yynrhs]],
-                       &yyvsp[(yyi + 1) - (yynrhs)]
-                                              );
+                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
+                       &yyvsp[(yyi + 1) - (yynrhs)]);
       YYFPRINTF (stderr, "\n");
     }
 }
@@ -957,8 +1011,8 @@ do {                                    \
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YYDPRINTF(Args) ((void) 0)
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
 # define YY_STACK_PRINT(Bottom, Top)
 # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
@@ -981,259 +1035,30 @@ int yydebug;
 #endif
 
 
-#if YYERROR_VERBOSE
 
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
-#  else
-/* Return the length of YYSTR.  */
-static YYPTRDIFF_T
-yystrlen (const char *yystr)
-{
-  YYPTRDIFF_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
 
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
 
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYPTRDIFF_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYPTRDIFF_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            else
-              goto append;
-
-          append:
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
-    do_not_strip_quotes: ;
-    }
-
-  if (yyres)
-    return yystpcpy (yyres, yystr) - yyres;
-  else
-    return yystrlen (yystr);
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
-                yy_state_t *yyssp, int yytoken)
-{
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
-  /* Arguments of yyformat: reported tokens (one for the "unexpected",
-     one per "expected"). */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Actual size of YYARG. */
-  int yycount = 0;
-  /* Cumulated lengths of YYARG.  */
-  YYPTRDIFF_T yysize = 0;
-
-  /* There are many possibilities here to consider:
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[+*yyssp];
-      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
-      yysize = yysize0;
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                {
-                  YYPTRDIFF_T yysize1
-                    = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
-                    yysize = yysize1;
-                  else
-                    return 2;
-                }
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-    default: /* Avoid compiler warnings. */
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  {
-    /* Don't count the "%s"s in the final size, but reserve room for
-       the terminator.  */
-    YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
-    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
-      yysize = yysize1;
-    else
-      return 2;
-  }
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          ++yyp;
-          ++yyformat;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
 
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
 static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg,
+            yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
 {
-  YYUSE (yyvaluep);
+  YY_USE (yyvaluep);
   if (!yymsg)
     yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
 
-
-
-/* The lookahead symbol.  */
+/* Lookahead token kind.  */
 int yychar;
 
 /* The semantic value of the lookahead symbol.  */
@@ -1242,6 +1067,8 @@ YYSTYPE yylval;
 int yynerrs;
 
 
+
+
 /*----------.
 | yyparse.  |
 `----------*/
@@ -1249,43 +1076,36 @@ int yynerrs;
 int
 yyparse (void)
 {
-    yy_state_fast_t yystate;
+    yy_state_fast_t yystate = 0;
     /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
+    int yyerrstatus = 0;
 
-       Refer to the stacks through separate pointers, to allow yyoverflow
+    /* Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
 
-    /* The state stack.  */
+    /* Their size.  */
+    YYPTRDIFF_T yystacksize = YYINITDEPTH;
+
+    /* The state stack: array, bottom, top.  */
     yy_state_t yyssa[YYINITDEPTH];
-    yy_state_t *yyss;
-    yy_state_t *yyssp;
+    yy_state_t *yyss = yyssa;
+    yy_state_t *yyssp = yyss;
 
-    /* The semantic value stack.  */
+    /* The semantic value stack: array, bottom, top.  */
     YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYPTRDIFF_T yystacksize;
+    YYSTYPE *yyvs = yyvsa;
+    YYSTYPE *yyvsp = yyvs;
 
   int yyn;
+  /* The return value of yyparse.  */
   int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
+  /* Lookahead symbol kind.  */
+  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
-#endif
+
 
 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
@@ -1293,16 +1113,10 @@ yyparse (void)
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
   YYDPRINTF ((stderr, "Starting parse\n"));
 
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
   yychar = YYEMPTY; /* Cause a token to be read.  */
+
   goto yysetstate;
 
 
@@ -1324,10 +1138,11 @@ yysetstate:
   YY_IGNORE_USELESS_CAST_BEGIN
   *yyssp = YY_CAST (yy_state_t, yystate);
   YY_IGNORE_USELESS_CAST_END
+  YY_STACK_PRINT (yyss, yyssp);
 
   if (yyss + yystacksize - 1 <= yyssp)
 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
-    goto yyexhaustedlab;
+    YYNOMEM;
 #else
     {
       /* Get the current used size of the three stacks, in elements.  */
@@ -1355,7 +1170,7 @@ yysetstate:
 # else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+        YYNOMEM;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
         yystacksize = YYMAXDEPTH;
@@ -1366,10 +1181,10 @@ yysetstate:
           YY_CAST (union yyalloc *,
                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
         if (! yyptr)
-          goto yyexhaustedlab;
+          YYNOMEM;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-# undef YYSTACK_RELOCATE
+#  undef YYSTACK_RELOCATE
         if (yyss1 != yyssa)
           YYSTACK_FREE (yyss1);
       }
@@ -1388,6 +1203,7 @@ yysetstate:
     }
 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
+
   if (yystate == YYFINAL)
     YYACCEPT;
 
@@ -1408,18 +1224,29 @@ yybackup:
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
   if (yychar == YYEMPTY)
     {
-      YYDPRINTF ((stderr, "Reading a token: "));
+      YYDPRINTF ((stderr, "Reading a token\n"));
       yychar = yylex ();
     }
 
   if (yychar <= YYEOF)
     {
-      yychar = yytoken = YYEOF;
+      yychar = YYEOF;
+      yytoken = YYSYMBOL_YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
+  else if (yychar == YYerror)
+    {
+      /* The scanner already issued an error message, process directly
+         to error recovery.  But do not keep the error token as
+         lookahead, it is too special and may lead us to an endless
+         loop in error recovery. */
+      yychar = YYUNDEF;
+      yytoken = YYSYMBOL_YYerror;
+      goto yyerrlab1;
+    }
   else
     {
       yytoken = YYTRANSLATE (yychar);
@@ -1488,23 +1315,23 @@ yyreduce:
   YY_REDUCE_PRINT (yyn);
   switch (yyn)
     {
-  case 2:
+  case 2: /* $@1: %empty  */
 #line 47 "compilador.y"
              {
              geraCodigo (NULL, "INPP");
              }
-#line 1497 "compilador.tab.c"
+#line 1324 "compilador.tab.c"
     break;
 
-  case 3:
+  case 3: /* programa: $@1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO  */
 #line 53 "compilador.y"
              {
                geraCodigo (NULL, "PARA");
              }
-#line 1505 "compilador.tab.c"
+#line 1332 "compilador.tab.c"
     break;
 
-  case 4:
+  case 4: /* $@2: %empty  */
 #line 63 "compilador.y"
          {
             char r_main[4];
@@ -1516,20 +1343,20 @@ yyreduce:
             strcat(buffer,r_main);
             geraCodigo(NULL,buffer);
          }
-#line 1520 "compilador.tab.c"
+#line 1347 "compilador.tab.c"
     break;
 
-  case 5:
+  case 5: /* $@3: %empty  */
 #line 74 "compilador.y"
          {
             char r_main[4];
             desempilha(r_main,rot);
             geraCodigo(r_main,"NADA");
          }
-#line 1530 "compilador.tab.c"
+#line 1357 "compilador.tab.c"
     break;
 
-  case 6:
+  case 6: /* bloco: parte_declara_rotulos parte_declara_vars $@2 parte_declara_subrotinas $@3 comando_composto  */
 #line 80 "compilador.y"
                           {
             char buffer[50];
@@ -1541,32 +1368,32 @@ yyreduce:
                nivel_lexico -= 1;
             mostra_ts(ts);
          }
-#line 1545 "compilador.tab.c"
+#line 1372 "compilador.tab.c"
     break;
 
-  case 10:
+  case 10: /* $@4: %empty  */
 #line 101 "compilador.y"
               { }
-#line 1551 "compilador.tab.c"
+#line 1378 "compilador.tab.c"
     break;
 
-  case 15:
+  case 15: /* $@5: %empty  */
 #line 110 "compilador.y"
               { num_vars = 0; }
-#line 1557 "compilador.tab.c"
+#line 1384 "compilador.tab.c"
     break;
 
-  case 16:
+  case 16: /* $@6: %empty  */
 #line 113 "compilador.y"
               { 
                char buffer[50];
                sprintf(buffer, "AMEM %d", num_vars);
                geraCodigo(NULL, buffer);
               }
-#line 1567 "compilador.tab.c"
+#line 1394 "compilador.tab.c"
     break;
 
-  case 18:
+  case 18: /* tipo: IDENT  */
 #line 122 "compilador.y"
                {
                 if (strcmp(token, "integer") == 0) {
@@ -1578,10 +1405,10 @@ yyreduce:
                 }
                 mostra_ts(ts); // Mostra a tabela após a inserção
                }
-#line 1582 "compilador.tab.c"
+#line 1409 "compilador.tab.c"
     break;
 
-  case 19:
+  case 19: /* lista_id_var: lista_id_var VIRGULA IDENT  */
 #line 135 "compilador.y"
               { /* insere �ltima vars na tabela de s�mbolos */ 
                num_vars += 1;
@@ -1591,10 +1418,10 @@ yyreduce:
                insere_ts(token,VS,nivel_lexico,info,ts);
                desloc += 1;
               }
-#line 1595 "compilador.tab.c"
+#line 1422 "compilador.tab.c"
     break;
 
-  case 20:
+  case 20: /* lista_id_var: IDENT  */
 #line 143 "compilador.y"
                     { 
                num_vars += 1;
@@ -1605,10 +1432,10 @@ yyreduce:
                desloc += 1;
                /* insere vars na tabela de s�mbolos */
             }
-#line 1609 "compilador.tab.c"
+#line 1436 "compilador.tab.c"
     break;
 
-  case 26:
+  case 26: /* $@7: %empty  */
 #line 167 "compilador.y"
                                          {
                // Insere o procedimento na tabela de símbolos
@@ -1632,10 +1459,10 @@ yyreduce:
                geraCodigo(r_proc,buffer);
                mostra_ts(ts);
             }
-#line 1636 "compilador.tab.c"
+#line 1463 "compilador.tab.c"
     break;
 
-  case 27:
+  case 27: /* $@8: %empty  */
 #line 191 "compilador.y"
             {
                char buffer[50];
@@ -1646,10 +1473,10 @@ yyreduce:
                desloc = retira_vs_pf(ts);
                mostra_ts(ts);
             }
-#line 1650 "compilador.tab.c"
+#line 1477 "compilador.tab.c"
     break;
 
-  case 29:
+  case 29: /* $@9: %empty  */
 #line 205 "compilador.y"
                                   {
              // Insere o funcao na tabela de símbolos
@@ -1674,18 +1501,18 @@ yyreduce:
             geraCodigo(r_func,buffer);
             mostra_ts(ts);
             }
-#line 1678 "compilador.tab.c"
+#line 1505 "compilador.tab.c"
     break;
 
-  case 30:
+  case 30: /* $@10: %empty  */
 #line 229 "compilador.y"
                         {
                num_vars = 1;
             }
-#line 1686 "compilador.tab.c"
+#line 1513 "compilador.tab.c"
     break;
 
-  case 31:
+  case 31: /* $@11: %empty  */
 #line 233 "compilador.y"
             { 
                char buffer[50];
@@ -1696,16 +1523,16 @@ yyreduce:
                desloc = retira_vs_pf(ts);
                mostra_ts(ts); 
             }
-#line 1700 "compilador.tab.c"
+#line 1527 "compilador.tab.c"
     break;
 
-  case 33:
+  case 33: /* $@12: %empty  */
 #line 246 "compilador.y"
             {num_param = 0;}
-#line 1706 "compilador.tab.c"
+#line 1533 "compilador.tab.c"
     break;
 
-  case 34:
+  case 34: /* $@13: %empty  */
 #line 247 "compilador.y"
                                 {
                char proc_ident[50];
@@ -1714,43 +1541,43 @@ yyreduce:
                empilha(proc_ident,proc);
                mostra_ts(ts);
             }
-#line 1718 "compilador.tab.c"
+#line 1545 "compilador.tab.c"
     break;
 
-  case 39:
+  case 39: /* $@14: %empty  */
 #line 263 "compilador.y"
             {
                num_vars = 0; 
                val_ou_ref = REF;
             }
-#line 1727 "compilador.tab.c"
+#line 1554 "compilador.tab.c"
     break;
 
-  case 40:
+  case 40: /* secao_pfs: VAR $@14 lista_id_pf DOIS_PONTOS tipo  */
 #line 268 "compilador.y"
             { 
                num_param += num_vars;
                val_ou_ref = VLR;
             }
-#line 1736 "compilador.tab.c"
+#line 1563 "compilador.tab.c"
     break;
 
-  case 41:
+  case 41: /* $@15: %empty  */
 #line 272 "compilador.y"
                {
                num_vars = 0;
                val_ou_ref = VLR;
             }
-#line 1745 "compilador.tab.c"
+#line 1572 "compilador.tab.c"
     break;
 
-  case 42:
+  case 42: /* secao_pfs: $@15 lista_id_pf DOIS_PONTOS tipo  */
 #line 277 "compilador.y"
             {num_param += num_vars;}
-#line 1751 "compilador.tab.c"
+#line 1578 "compilador.tab.c"
     break;
 
-  case 45:
+  case 45: /* parametro: IDENT  */
 #line 284 "compilador.y"
                  {
                num_vars += 1;
@@ -1760,16 +1587,16 @@ yyreduce:
                info.pf.passagem = val_ou_ref;
                insere_ts(token,PF,nivel_lexico,info,ts);
             }
-#line 1764 "compilador.tab.c"
+#line 1591 "compilador.tab.c"
     break;
 
-  case 58:
+  case 58: /* $@16: %empty  */
 #line 314 "compilador.y"
                                   {l_elem = busca(token, ts);}
-#line 1770 "compilador.tab.c"
+#line 1597 "compilador.tab.c"
     break;
 
-  case 62:
+  case 62: /* $@17: %empty  */
 #line 322 "compilador.y"
             {
     if (l_elem == NULL) {
@@ -1790,10 +1617,10 @@ yyreduce:
 
     }
 }
-#line 1794 "compilador.tab.c"
+#line 1621 "compilador.tab.c"
     break;
 
-  case 63:
+  case 63: /* atribuicao: $@17 ATRIBUICAO expressao_simples  */
 #line 340 "compilador.y"
                                {
     // Gera código ARMZ para armazenar valor
@@ -1805,10 +1632,10 @@ yyreduce:
     }
     geraCodigo(NULL, buffer);
 }
-#line 1809 "compilador.tab.c"
+#line 1636 "compilador.tab.c"
     break;
 
-  case 64:
+  case 64: /* $@18: %empty  */
 #line 353 "compilador.y"
             {
                if (l_elem == NULL){
@@ -1822,10 +1649,10 @@ yyreduce:
                if (l_elem->categ == PR || l_elem->categ == FUN)
                   num_param = 0; // Reinicia a contagem de parâmetros reais   
             }
-#line 1826 "compilador.tab.c"
+#line 1653 "compilador.tab.c"
     break;
 
-  case 65:
+  case 65: /* chamada_procedimento: $@18 lista_parametros  */
 #line 368 "compilador.y"
             { 
                char buffer[50];
@@ -1852,10 +1679,10 @@ yyreduce:
                   geraCodigo(NULL, buffer);
                }
             }
-#line 1856 "compilador.tab.c"
+#line 1683 "compilador.tab.c"
     break;
 
-  case 68:
+  case 68: /* $@19: %empty  */
 #line 402 "compilador.y"
                {
                   char buffer[50];
@@ -1864,19 +1691,19 @@ yyreduce:
                   val_ou_ref = l_elem->info.pr.param[num_param][1];
                   empilha(buffer,proc);
                }
-#line 1868 "compilador.tab.c"
+#line 1695 "compilador.tab.c"
     break;
 
-  case 69:
+  case 69: /* lista_parametros_parenteses: lista_parametros_parenteses VIRGULA $@19 expressao_simples  */
 #line 410 "compilador.y"
                {
                   num_param++; // Incrementa para cada parâmetro real
                   val_ou_ref = VLR;
                }
-#line 1877 "compilador.tab.c"
+#line 1704 "compilador.tab.c"
     break;
 
-  case 70:
+  case 70: /* $@20: %empty  */
 #line 414 "compilador.y"
                  {
                   char buffer[50];
@@ -1885,19 +1712,19 @@ yyreduce:
                   val_ou_ref = l_elem->info.pr.param[num_param][1];
                   empilha(buffer,proc);
                }
-#line 1889 "compilador.tab.c"
+#line 1716 "compilador.tab.c"
     break;
 
-  case 71:
+  case 71: /* lista_parametros_parenteses: $@20 expressao_simples  */
 #line 422 "compilador.y"
                {
                   num_param++; // Conta o primeiro parâmetro real
                   val_ou_ref = VLR;
                }
-#line 1898 "compilador.tab.c"
+#line 1725 "compilador.tab.c"
     break;
 
-  case 75:
+  case 75: /* simb_leitura: IDENT  */
 #line 435 "compilador.y"
                     {
                geraCodigo(NULL, "LEIT");
@@ -1906,74 +1733,74 @@ yyreduce:
                sprintf(buffer,"ARMZ %d, %d",l_elem->nivel,l_elem->info.vs.desloc);
                geraCodigo(NULL,buffer);
             }
-#line 1910 "compilador.tab.c"
+#line 1737 "compilador.tab.c"
     break;
 
-  case 77:
+  case 77: /* lista_escritas: lista_escritas VIRGULA expressao_simples  */
 #line 447 "compilador.y"
                                                          {
                geraCodigo(NULL,"IMPR");
             }
-#line 1918 "compilador.tab.c"
+#line 1745 "compilador.tab.c"
     break;
 
-  case 78:
+  case 78: /* lista_escritas: expressao_simples  */
 #line 450 "compilador.y"
                                 {
                geraCodigo(NULL,"IMPR");
             }
-#line 1926 "compilador.tab.c"
+#line 1753 "compilador.tab.c"
     break;
 
-  case 79:
+  case 79: /* expressao: expressao_simples IGUAL expressao_simples  */
 #line 455 "compilador.y"
                                                      {
             geraCodigo(NULL, "CMIG"); // Adiciona operação de cmig
          }
-#line 1934 "compilador.tab.c"
+#line 1761 "compilador.tab.c"
     break;
 
-  case 80:
+  case 80: /* expressao: expressao_simples DIFERENTE expressao_simples  */
 #line 458 "compilador.y"
                                                         {
             geraCodigo(NULL, "CMDG"); // Adiciona operação de cmdg
          }
-#line 1942 "compilador.tab.c"
+#line 1769 "compilador.tab.c"
     break;
 
-  case 81:
+  case 81: /* expressao: expressao_simples MENOR expressao_simples  */
 #line 461 "compilador.y"
                                                      {
             geraCodigo(NULL, "CMME"); // Adiciona operação de cmme
          }
-#line 1950 "compilador.tab.c"
+#line 1777 "compilador.tab.c"
     break;
 
-  case 82:
+  case 82: /* expressao: expressao_simples MENOR_IGUAL expressao_simples  */
 #line 464 "compilador.y"
                                                            {
             geraCodigo(NULL, "CMEG"); // Adiciona operação de cmeg
          }
-#line 1958 "compilador.tab.c"
+#line 1785 "compilador.tab.c"
     break;
 
-  case 83:
+  case 83: /* expressao: expressao_simples MAIOR expressao_simples  */
 #line 467 "compilador.y"
                                                      {
             geraCodigo(NULL, "CMMA"); // Adiciona operação de cmma
          }
-#line 1966 "compilador.tab.c"
+#line 1793 "compilador.tab.c"
     break;
 
-  case 84:
+  case 84: /* expressao: expressao_simples MAIOR_IGUAL expressao_simples  */
 #line 470 "compilador.y"
                                                            {
             geraCodigo(NULL, "CMAG"); // Adiciona operação de cmag
          }
-#line 1974 "compilador.tab.c"
+#line 1801 "compilador.tab.c"
     break;
 
-  case 85:
+  case 85: /* expressao_simples: expressao_simples MAIS termo  */
 #line 475 "compilador.y"
                                                 {
                if (val_ou_ref == REF)
@@ -1981,10 +1808,10 @@ yyreduce:
                else
                   geraCodigo(NULL, "SOMA"); // Adiciona operação de soma
             }
-#line 1985 "compilador.tab.c"
+#line 1812 "compilador.tab.c"
     break;
 
-  case 86:
+  case 86: /* expressao_simples: expressao_simples MENOS termo  */
 #line 481 "compilador.y"
                                             {
                if (val_ou_ref == REF)
@@ -1992,36 +1819,36 @@ yyreduce:
                else
                   geraCodigo(NULL, "SUBT"); // Adiciona operação de subt
             }
-#line 1996 "compilador.tab.c"
+#line 1823 "compilador.tab.c"
     break;
 
-  case 88:
+  case 88: /* termo: termo ASTERISCO fator  */
 #line 490 "compilador.y"
                              {
                geraCodigo(NULL, "MULT"); // Adiciona operação de mult
             }
-#line 2004 "compilador.tab.c"
+#line 1831 "compilador.tab.c"
     break;
 
-  case 89:
+  case 89: /* termo: termo DIV fator  */
 #line 493 "compilador.y"
                               {
                geraCodigo(NULL, "DIVI"); // Adiciona operação de divi
             }
-#line 2012 "compilador.tab.c"
+#line 1839 "compilador.tab.c"
     break;
 
-  case 91:
+  case 91: /* $@21: %empty  */
 #line 499 "compilador.y"
              {
     // Carrega variável
     l_elem = busca(token, ts);
     empilha(token, proc);
    }
-#line 2022 "compilador.tab.c"
+#line 1849 "compilador.tab.c"
     break;
 
-  case 92:
+  case 92: /* fator: IDENT $@21 chamada_procedimento  */
 #line 505 "compilador.y"
    {
       char buffer[50];
@@ -2062,10 +1889,10 @@ yyreduce:
          }
       }
    }
-#line 2066 "compilador.tab.c"
+#line 1893 "compilador.tab.c"
     break;
 
-  case 93:
+  case 93: /* fator: NUMERO  */
 #line 544 "compilador.y"
          {
     // Empilha constante
@@ -2077,10 +1904,10 @@ yyreduce:
     }
     geraCodigo(NULL, buffer);
 }
-#line 2081 "compilador.tab.c"
+#line 1908 "compilador.tab.c"
     break;
 
-  case 97:
+  case 97: /* $@22: %empty  */
 #line 560 "compilador.y"
                     {
                char r_ini[4];
@@ -2089,10 +1916,10 @@ yyreduce:
                rot_id += 1;
                geraCodigo(r_ini,"NADA");
             }
-#line 2093 "compilador.tab.c"
+#line 1920 "compilador.tab.c"
     break;
 
-  case 98:
+  case 98: /* $@23: %empty  */
 #line 567 "compilador.y"
                                {
                char r_fim[4];
@@ -2104,10 +1931,10 @@ yyreduce:
                strcat(buffer,r_fim);
                geraCodigo(NULL,buffer);
             }
-#line 2108 "compilador.tab.c"
+#line 1935 "compilador.tab.c"
     break;
 
-  case 99:
+  case 99: /* comando_repetitivo: $@22 WHILE expressao DO $@23 comando_sem_rotulo  */
 #line 577 "compilador.y"
                                {
                char r_ini[4];
@@ -2123,20 +1950,20 @@ yyreduce:
 
                geraCodigo(r_fim,"NADA");
             }
-#line 2127 "compilador.tab.c"
+#line 1954 "compilador.tab.c"
     break;
 
-  case 100:
+  case 100: /* comando_condicional: if_then cond_else  */
 #line 593 "compilador.y"
                                        {
                char r_fim[4];
                desempilha(r_fim,rot);
                geraCodigo(r_fim,"NADA");
             }
-#line 2137 "compilador.tab.c"
+#line 1964 "compilador.tab.c"
     break;
 
-  case 103:
+  case 103: /* $@24: %empty  */
 #line 605 "compilador.y"
                       {
                char r_else[4];
@@ -2153,10 +1980,10 @@ yyreduce:
                empilha(r_fim, rot);
                rot_id += 1;
             }
-#line 2157 "compilador.tab.c"
+#line 1984 "compilador.tab.c"
     break;
 
-  case 104:
+  case 104: /* if_then: IF expressao $@24 THEN comando_sem_rotulo  */
 #line 620 "compilador.y"
                                     {
                char r_fim[4];
@@ -2172,11 +1999,11 @@ yyreduce:
 
                geraCodigo(r_else,"NADA");
             }
-#line 2176 "compilador.tab.c"
+#line 2003 "compilador.tab.c"
     break;
 
 
-#line 2180 "compilador.tab.c"
+#line 2007 "compilador.tab.c"
 
       default: break;
     }
@@ -2191,11 +2018,10 @@ yyreduce:
      case of YYERROR or YYBACKUP, subsequent parser actions might lead
      to an incorrect destructor call or verbose syntax error message
      before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
 
   YYPOPSTACK (yylen);
   yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
@@ -2219,50 +2045,14 @@ yyreduce:
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
      user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
+  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
   /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)
     {
       ++yynerrs;
-#if ! YYERROR_VERBOSE
       yyerror (YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
     }
 
-
-
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
@@ -2295,6 +2085,7 @@ yyerrorlab:
      label yyerrorlab therefore never appears in user code.  */
   if (0)
     YYERROR;
+  ++yynerrs;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -2311,13 +2102,14 @@ yyerrorlab:
 yyerrlab1:
   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
+  /* Pop stack until we find a state that shifts the error token.  */
   for (;;)
     {
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
         {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+          yyn += YYSYMBOL_YYerror;
+          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
             {
               yyn = yytable[yyn];
               if (0 < yyn)
@@ -2331,7 +2123,7 @@ yyerrlab1:
 
 
       yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp);
+                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -2343,7 +2135,7 @@ yyerrlab1:
 
 
   /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
 
   yystate = yyn;
   goto yynewstate;
@@ -2354,7 +2146,7 @@ yyerrlab1:
 `-------------------------------------*/
 yyacceptlab:
   yyresult = 0;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
 /*-----------------------------------.
@@ -2362,24 +2154,22 @@ yyacceptlab:
 `-----------------------------------*/
 yyabortlab:
   yyresult = 1;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
+`-----------------------------------------------------------*/
 yyexhaustedlab:
   yyerror (YY_("memory exhausted"));
   yyresult = 2;
-  /* Fall through.  */
-#endif
+  goto yyreturnlab;
 
 
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result.  |
-`-----------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return.  |
+`----------------------------------------------------------*/
+yyreturnlab:
   if (yychar != YYEMPTY)
     {
       /* Make sure we have latest lookahead translation.  See comments at
@@ -2395,19 +2185,17 @@ yyreturn:
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                  yystos[+*yyssp], yyvsp);
+                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
 #endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
+
   return yyresult;
 }
+
 #line 637 "compilador.y"
 
 
diff --git a/ORIGNAL/compilador.tab.h b/ORIGNAL/compilador.tab.h
index 2be6c98..98da8d5 100644
--- a/ORIGNAL/compilador.tab.h
+++ b/ORIGNAL/compilador.tab.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.5.1.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -31,8 +31,9 @@
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-/* Undocumented macros, especially those whose name start with YY_,
-   are private implementation details.  Do not rely on them.  */
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+   especially those whose name start with YY_ or yy_.  They are
+   private implementation details that can be changed or removed.  */
 
 #ifndef YY_YY_COMPILADOR_TAB_H_INCLUDED
 # define YY_YY_COMPILADOR_TAB_H_INCLUDED
@@ -44,52 +45,57 @@
 extern int yydebug;
 #endif
 
-/* Token type.  */
+/* Token kinds.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
   enum yytokentype
   {
-    PROGRAM = 258,
-    ABRE_PARENTESES = 259,
-    FECHA_PARENTESES = 260,
-    VIRGULA = 261,
-    PONTO_E_VIRGULA = 262,
-    DOIS_PONTOS = 263,
-    PONTO = 264,
-    T_BEGIN = 265,
-    T_END = 266,
-    VAR = 267,
-    IDENT = 268,
-    ATRIBUICAO = 269,
-    LABEL = 270,
-    TYPE = 271,
-    ARRAY = 272,
-    PROCEDURE = 273,
-    FUNCTION = 274,
-    GOTO = 275,
-    IF = 276,
-    THEN = 277,
-    ELSE = 278,
-    WHILE = 279,
-    DO = 280,
-    OR = 281,
-    DIV = 282,
-    AND = 283,
-    NOT = 284,
-    IGUAL = 285,
-    DIFERENTE = 286,
-    MENOR_IGUAL = 287,
-    MAIOR_IGUAL = 288,
-    MENOR = 289,
-    MAIOR = 290,
-    MAIS = 291,
-    MENOS = 292,
-    ASTERISCO = 293,
-    NUMERO = 294,
-    READ = 295,
-    WRITE = 296,
-    LOWER_THAN_ELSE = 297
+    YYEMPTY = -2,
+    YYEOF = 0,                     /* "end of file"  */
+    YYerror = 256,                 /* error  */
+    YYUNDEF = 257,                 /* "invalid token"  */
+    PROGRAM = 258,                 /* PROGRAM  */
+    ABRE_PARENTESES = 259,         /* ABRE_PARENTESES  */
+    FECHA_PARENTESES = 260,        /* FECHA_PARENTESES  */
+    VIRGULA = 261,                 /* VIRGULA  */
+    PONTO_E_VIRGULA = 262,         /* PONTO_E_VIRGULA  */
+    DOIS_PONTOS = 263,             /* DOIS_PONTOS  */
+    PONTO = 264,                   /* PONTO  */
+    T_BEGIN = 265,                 /* T_BEGIN  */
+    T_END = 266,                   /* T_END  */
+    VAR = 267,                     /* VAR  */
+    IDENT = 268,                   /* IDENT  */
+    ATRIBUICAO = 269,              /* ATRIBUICAO  */
+    LABEL = 270,                   /* LABEL  */
+    TYPE = 271,                    /* TYPE  */
+    ARRAY = 272,                   /* ARRAY  */
+    PROCEDURE = 273,               /* PROCEDURE  */
+    FUNCTION = 274,                /* FUNCTION  */
+    GOTO = 275,                    /* GOTO  */
+    IF = 276,                      /* IF  */
+    THEN = 277,                    /* THEN  */
+    ELSE = 278,                    /* ELSE  */
+    WHILE = 279,                   /* WHILE  */
+    DO = 280,                      /* DO  */
+    OR = 281,                      /* OR  */
+    DIV = 282,                     /* DIV  */
+    AND = 283,                     /* AND  */
+    NOT = 284,                     /* NOT  */
+    IGUAL = 285,                   /* IGUAL  */
+    DIFERENTE = 286,               /* DIFERENTE  */
+    MENOR_IGUAL = 287,             /* MENOR_IGUAL  */
+    MAIOR_IGUAL = 288,             /* MAIOR_IGUAL  */
+    MENOR = 289,                   /* MENOR  */
+    MAIOR = 290,                   /* MAIOR  */
+    MAIS = 291,                    /* MAIS  */
+    MENOS = 292,                   /* MENOS  */
+    ASTERISCO = 293,               /* ASTERISCO  */
+    NUMERO = 294,                  /* NUMERO  */
+    READ = 295,                    /* READ  */
+    WRITE = 296,                   /* WRITE  */
+    LOWER_THAN_ELSE = 297          /* LOWER_THAN_ELSE  */
   };
+  typedef enum yytokentype yytoken_kind_t;
 #endif
 
 /* Value type.  */
@@ -102,6 +108,8 @@ typedef int YYSTYPE;
 
 extern YYSTYPE yylval;
 
+
 int yyparse (void);
 
+
 #endif /* !YY_YY_COMPILADOR_TAB_H_INCLUDED  */
-- 
GitLab