Select Git revision
curso_ens_superior.csv
compilador.output 39.46 KiB
Terminals which are not used
TYPE
ARRAY
FUNCTION
GOTO
OR
AND
NOT
State 71 conflicts: 1 reduce/reduce
Grammar
0 $accept: programa $end
1 @1: /* empty */
2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
3 @2: /* empty */
4 @3: /* empty */
5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas @3 comando_composto
6 parte_declara_rotulos: LABEL VIRGULA
7 | /* empty */
8 parte_declara_vars: var
9 @4: /* empty */
10 var: @4 VAR declara_vars
11 | /* empty */
12 declara_vars: declara_vars declara_var
13 | declara_var
14 @5: /* empty */
15 @6: /* empty */
16 declara_var: @5 lista_id_var DOIS_PONTOS tipo @6 PONTO_E_VIRGULA
17 tipo: IDENT
18 lista_id_var: lista_id_var VIRGULA IDENT
19 | IDENT
20 lista_idents: lista_idents VIRGULA IDENT
21 | IDENT
22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento
23 | /* empty */
24 @7: /* empty */
25 @8: /* empty */
26 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
27 @9: /* empty */
28 @10: /* empty */
29 parametros_ou_nada: ABRE_PARENTESES @9 paramentros_formais @10 FECHA_PARENTESES
30 | /* empty */
31 paramentros_formais: secao_pfs
32 | paramentros_formais PONTO_E_VIRGULA secao_pfs
33 @11: /* empty */
34 secao_pfs: @11 lista_id_pf DOIS_PONTOS tipo
35 lista_id_pf: parametro VIRGULA lista_id_pf
36 | parametro
37 parametro: IDENT
38 comando_composto: T_BEGIN comandos T_END
39 comandos: comando PONTO_E_VIRGULA comandos
40 | comando PONTO_E_VIRGULA
41 | /* empty */
42 comando: numero DOIS_PONTOS comando_sem_rotulo
43 | comando_sem_rotulo
44 comando_sem_rotulo: atribuicao_ou_procedimento
45 | comando_composto
46 | comando_condicional
47 | comando_repetitivo
48 | leitura
49 | escrita
50 @12: /* empty */
51 atribuicao_ou_procedimento: IDENT @12 atribuicao_ou_procedimento_token
52 atribuicao_ou_procedimento_token: atribuicao
53 | chamada_procedimento
54 @13: /* empty */
55 atribuicao: @13 ATRIBUICAO expressao_simples
56 @14: /* empty */
57 chamada_procedimento: @14 lista_parametros
58 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES
59 | /* empty */
60 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA expressao_simples
61 | expressao_simples
62 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES
63 lista_leituras: lista_leituras VIRGULA simb_leitura
64 | simb_leitura
65 simb_leitura: IDENT
66 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES
67 lista_escritas: lista_escritas VIRGULA expressao_simples
68 | expressao_simples
69 expressao: expressao IGUAL expressao_simples
70 | expressao DIFERENTE expressao_simples
71 | expressao MENOR expressao_simples
72 | expressao MENOR_IGUAL expressao_simples
73 | expressao MAIOR expressao_simples
74 | expressao MAIOR_IGUAL expressao_simples
75 | expressao_simples
76 expressao_simples: expressao_simples MAIS termo
77 | expressao_simples MENOS termo
78 | termo
79 termo: termo ASTERISCO fator
80 | termo DIV fator
81 | fator
82 fator: IDENT
83 | NUMERO
84 numero: NUMERO
85 @15: /* empty */
86 @16: /* empty */
87 comando_repetitivo: @15 WHILE expressao DO @16 comando_sem_rotulo
88 comando_condicional: if_then cond_else
89 cond_else: ELSE comando_sem_rotulo
90 | /* empty */
91 @17: /* empty */
92 if_then: IF expressao @17 THEN comando_sem_rotulo
Terminals, with rules where they appear
$end (0) 0
error (256)
PROGRAM (258) 2
ABRE_PARENTESES (259) 2 29 58 62 66
FECHA_PARENTESES (260) 2 29 58 62 66
VIRGULA (261) 6 18 20 35 60 63 67
PONTO_E_VIRGULA (262) 2 16 26 32 39 40
DOIS_PONTOS (263) 16 34 42
PONTO (264) 2
T_BEGIN (265) 38
T_END (266) 38
VAR (267) 10
IDENT (268) 2 17 18 19 20 21 26 37 51 65 82
ATRIBUICAO (269) 55
LABEL (270) 6
TYPE (271)
ARRAY (272)
PROCEDURE (273) 26
FUNCTION (274)
GOTO (275)
IF (276) 92
THEN (277) 92
ELSE (278) 89
WHILE (279) 87
DO (280) 87
OR (281)
DIV (282) 80
AND (283)
NOT (284)
IGUAL (285) 69
DIFERENTE (286) 70
MENOR_IGUAL (287) 72
MAIOR_IGUAL (288) 74
MENOR (289) 71
MAIOR (290) 73
MAIS (291) 76
MENOS (292) 77
ASTERISCO (293) 79
NUMERO (294) 83 84
READ (295) 62
WRITE (296) 66
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 26
@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 34
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, on right: 5 22
declaracao_procedimento (61)
on left: 26, on right: 22
@7 (62)
on left: 24, on right: 26
@8 (63)
on left: 25, on right: 26
parametros_ou_nada (64)
on left: 29 30, on right: 26
@9 (65)
on left: 27, on right: 29
@10 (66)
on left: 28, on right: 29
paramentros_formais (67)
on left: 31 32, on right: 29 32
secao_pfs (68)
on left: 34, on right: 31 32
@11 (69)
on left: 33, on right: 34
lista_id_pf (70)
on left: 35 36, on right: 34 35
parametro (71)
on left: 37, on right: 35 36
comando_composto (72)
on left: 38, on right: 5 45
comandos (73)
on left: 39 40 41, on right: 38 39
comando (74)
on left: 42 43, on right: 39 40
comando_sem_rotulo (75)
on left: 44 45 46 47 48 49, on right: 42 43 87 89 92
atribuicao_ou_procedimento (76)
on left: 51, on right: 44
@12 (77)
on left: 50, on right: 51
atribuicao_ou_procedimento_token (78)
on left: 52 53, on right: 51
atribuicao (79)
on left: 55, on right: 52
@13 (80)
on left: 54, on right: 55
chamada_procedimento (81)
on left: 57, on right: 53
@14 (82)
on left: 56, on right: 57
lista_parametros (83)
on left: 58 59, on right: 57
lista_parametros_parenteses (84)
on left: 60 61, on right: 58 60
leitura (85)
on left: 62, on right: 48
lista_leituras (86)
on left: 63 64, on right: 62 63
simb_leitura (87)
on left: 65, on right: 63 64
escrita (88)
on left: 66, on right: 49
lista_escritas (89)
on left: 67 68, on right: 66 67
expressao (90)
on left: 69 70 71 72 73 74 75, on right: 69 70 71 72 73 74 87 92
expressao_simples (91)
on left: 76 77 78, on right: 55 60 61 67 68 69 70 71 72 73 74 75
76 77
termo (92)
on left: 79 80 81, on right: 76 77 78 79 80
fator (93)
on left: 82 83, on right: 79 80 81
numero (94)
on left: 84, on right: 42
comando_repetitivo (95)
on left: 87, on right: 47
@15 (96)
on left: 85, on right: 87
@16 (97)
on left: 86, on right: 87
comando_condicional (98)
on left: 88, on right: 46
cond_else (99)
on left: 89 90, on right: 88
if_then (100)
on left: 92, on right: 88
@17 (101)
on left: 91, on right: 92
state 0
0 $accept: . programa $end
$default reduce using rule 1 (@1)
programa go to state 1
@1 go to state 2
state 1
0 $accept: programa . $end
$end shift, and go to state 3
state 2
2 programa: @1 . PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
PROGRAM shift, and go to state 4
state 3
0 $accept: programa $end .
$default accept
state 4
2 programa: @1 PROGRAM . IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
IDENT shift, and go to state 5
state 5
2 programa: @1 PROGRAM IDENT . ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
ABRE_PARENTESES shift, and go to state 6
state 6
2 programa: @1 PROGRAM IDENT ABRE_PARENTESES . lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO
IDENT shift, and go to state 7
lista_idents go to state 8
state 7
21 lista_idents: IDENT .
$default reduce using rule 21 (lista_idents)
state 8
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
state 9
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
state 10
20 lista_idents: lista_idents VIRGULA . IDENT
IDENT shift, and go to state 12
state 11
2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA . bloco PONTO
LABEL shift, and go to state 13
$default reduce using rule 7 (parte_declara_rotulos)
bloco go to state 14
parte_declara_rotulos go to state 15
state 12
20 lista_idents: lista_idents VIRGULA IDENT .
$default reduce using rule 20 (lista_idents)
state 13
6 parte_declara_rotulos: LABEL . VIRGULA
VIRGULA shift, and go to state 16
state 14
2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco . PONTO
PONTO shift, and go to state 17
state 15
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)
parte_declara_vars go to state 18
var go to state 19
@4 go to state 20
state 16
6 parte_declara_rotulos: LABEL VIRGULA .
$default reduce using rule 6 (parte_declara_rotulos)
state 17
2 programa: @1 PROGRAM IDENT ABRE_PARENTESES lista_idents FECHA_PARENTESES PONTO_E_VIRGULA bloco PONTO .
$default reduce using rule 2 (programa)
state 18
5 bloco: parte_declara_rotulos parte_declara_vars . @2 parte_declara_subrotinas @3 comando_composto
$default reduce using rule 3 (@2)
@2 go to state 21
state 19
8 parte_declara_vars: var .
$default reduce using rule 8 (parte_declara_vars)
state 20
10 var: @4 . VAR declara_vars
VAR shift, and go to state 22
state 21
5 bloco: parte_declara_rotulos parte_declara_vars @2 . parte_declara_subrotinas @3 comando_composto
$default reduce using rule 23 (parte_declara_subrotinas)
parte_declara_subrotinas go to state 23
state 22
10 var: @4 VAR . declara_vars
$default reduce using rule 14 (@5)
declara_vars go to state 24
declara_var go to state 25
@5 go to state 26
state 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
PROCEDURE shift, and go to state 27
$default reduce using rule 4 (@3)
@3 go to state 28
declaracao_procedimento go to state 29
state 24
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)
declara_var go to state 30
@5 go to state 26
state 25
13 declara_vars: declara_var .
$default reduce using rule 13 (declara_vars)
state 26
16 declara_var: @5 . lista_id_var DOIS_PONTOS tipo @6 PONTO_E_VIRGULA
IDENT shift, and go to state 31
lista_id_var go to state 32
state 27
26 declaracao_procedimento: PROCEDURE . IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
IDENT shift, and go to state 33
state 28
5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas @3 . comando_composto
T_BEGIN shift, and go to state 34
comando_composto go to state 35
state 29
22 parte_declara_subrotinas: parte_declara_subrotinas declaracao_procedimento .
$default reduce using rule 22 (parte_declara_subrotinas)
state 30
12 declara_vars: declara_vars declara_var .
$default reduce using rule 12 (declara_vars)
state 31
19 lista_id_var: IDENT .
$default reduce using rule 19 (lista_id_var)
state 32
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 36
DOIS_PONTOS shift, and go to state 37
state 33
26 declaracao_procedimento: PROCEDURE IDENT . @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
$default reduce using rule 24 (@7)
@7 go to state 38
state 34
38 comando_composto: T_BEGIN . comandos T_END
T_BEGIN shift, and go to state 34
IDENT shift, and go to state 39
IF shift, and go to state 40
NUMERO shift, and go to state 41
READ shift, and go to state 42
WRITE shift, and go to state 43
WHILE reduce using rule 85 (@15)
$default reduce using rule 41 (comandos)
comando_composto go to state 44
comandos go to state 45
comando go to state 46
comando_sem_rotulo go to state 47
atribuicao_ou_procedimento go to state 48
leitura go to state 49
escrita go to state 50
numero go to state 51
comando_repetitivo go to state 52
@15 go to state 53
comando_condicional go to state 54
if_then go to state 55
state 35
5 bloco: parte_declara_rotulos parte_declara_vars @2 parte_declara_subrotinas @3 comando_composto .
$default reduce using rule 5 (bloco)
state 36
18 lista_id_var: lista_id_var VIRGULA . IDENT
IDENT shift, and go to state 56
state 37
16 declara_var: @5 lista_id_var DOIS_PONTOS . tipo @6 PONTO_E_VIRGULA
IDENT shift, and go to state 57
tipo go to state 58
state 38
26 declaracao_procedimento: PROCEDURE IDENT @7 . parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
ABRE_PARENTESES shift, and go to state 59
$default reduce using rule 30 (parametros_ou_nada)
parametros_ou_nada go to state 60
state 39
51 atribuicao_ou_procedimento: IDENT . @12 atribuicao_ou_procedimento_token
$default reduce using rule 50 (@12)
@12 go to state 61
state 40
92 if_then: IF . expressao @17 THEN comando_sem_rotulo
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao go to state 64
expressao_simples go to state 65
termo go to state 66
fator go to state 67
state 41
84 numero: NUMERO .
$default reduce using rule 84 (numero)
state 42
62 leitura: READ . ABRE_PARENTESES lista_leituras FECHA_PARENTESES
ABRE_PARENTESES shift, and go to state 68
state 43
66 escrita: WRITE . ABRE_PARENTESES lista_escritas FECHA_PARENTESES
ABRE_PARENTESES shift, and go to state 69
state 44
45 comando_sem_rotulo: comando_composto .
$default reduce using rule 45 (comando_sem_rotulo)
state 45
38 comando_composto: T_BEGIN comandos . T_END
T_END shift, and go to state 70
state 46
39 comandos: comando . PONTO_E_VIRGULA comandos
40 | comando . PONTO_E_VIRGULA
PONTO_E_VIRGULA shift, and go to state 71
state 47
43 comando: comando_sem_rotulo .
$default reduce using rule 43 (comando)
state 48
44 comando_sem_rotulo: atribuicao_ou_procedimento .
$default reduce using rule 44 (comando_sem_rotulo)
state 49
48 comando_sem_rotulo: leitura .
$default reduce using rule 48 (comando_sem_rotulo)
state 50
49 comando_sem_rotulo: escrita .
$default reduce using rule 49 (comando_sem_rotulo)
state 51
42 comando: numero . DOIS_PONTOS comando_sem_rotulo
DOIS_PONTOS shift, and go to state 72
state 52
47 comando_sem_rotulo: comando_repetitivo .
$default reduce using rule 47 (comando_sem_rotulo)
state 53
87 comando_repetitivo: @15 . WHILE expressao DO @16 comando_sem_rotulo
WHILE shift, and go to state 73
state 54
46 comando_sem_rotulo: comando_condicional .
$default reduce using rule 46 (comando_sem_rotulo)
state 55
88 comando_condicional: if_then . cond_else
ELSE shift, and go to state 74
$default reduce using rule 90 (cond_else)
cond_else go to state 75
state 56
18 lista_id_var: lista_id_var VIRGULA IDENT .
$default reduce using rule 18 (lista_id_var)
state 57
17 tipo: IDENT .
$default reduce using rule 17 (tipo)
state 58
16 declara_var: @5 lista_id_var DOIS_PONTOS tipo . @6 PONTO_E_VIRGULA
$default reduce using rule 15 (@6)
@6 go to state 76
state 59
29 parametros_ou_nada: ABRE_PARENTESES . @9 paramentros_formais @10 FECHA_PARENTESES
$default reduce using rule 27 (@9)
@9 go to state 77
state 60
26 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada . PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA
PONTO_E_VIRGULA shift, and go to state 78
state 61
51 atribuicao_ou_procedimento: IDENT @12 . atribuicao_ou_procedimento_token
ATRIBUICAO reduce using rule 54 (@13)
$default reduce using rule 56 (@14)
atribuicao_ou_procedimento_token go to state 79
atribuicao go to state 80
@13 go to state 81
chamada_procedimento go to state 82
@14 go to state 83
state 62
82 fator: IDENT .
$default reduce using rule 82 (fator)
state 63
83 fator: NUMERO .
$default reduce using rule 83 (fator)
state 64
69 expressao: expressao . IGUAL expressao_simples
70 | expressao . DIFERENTE expressao_simples
71 | expressao . MENOR expressao_simples
72 | expressao . MENOR_IGUAL expressao_simples
73 | expressao . MAIOR expressao_simples
74 | expressao . MAIOR_IGUAL expressao_simples
92 if_then: IF expressao . @17 THEN comando_sem_rotulo
IGUAL shift, and go to state 84
DIFERENTE shift, and go to state 85
MENOR_IGUAL shift, and go to state 86
MAIOR_IGUAL shift, and go to state 87
MENOR shift, and go to state 88
MAIOR shift, and go to state 89
$default reduce using rule 91 (@17)
@17 go to state 90
state 65
75 expressao: expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 75 (expressao)
state 66
78 expressao_simples: termo .
79 termo: termo . ASTERISCO fator
80 | termo . DIV fator
DIV shift, and go to state 93
ASTERISCO shift, and go to state 94
$default reduce using rule 78 (expressao_simples)
state 67
81 termo: fator .
$default reduce using rule 81 (termo)
state 68
62 leitura: READ ABRE_PARENTESES . lista_leituras FECHA_PARENTESES
IDENT shift, and go to state 95
lista_leituras go to state 96
simb_leitura go to state 97
state 69
66 escrita: WRITE ABRE_PARENTESES . lista_escritas FECHA_PARENTESES
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
lista_escritas go to state 98
expressao_simples go to state 99
termo go to state 66
fator go to state 67
state 70
38 comando_composto: T_BEGIN comandos T_END .
$default reduce using rule 38 (comando_composto)
state 71
39 comandos: comando PONTO_E_VIRGULA . comandos
40 | comando PONTO_E_VIRGULA .
T_BEGIN shift, and go to state 34
IDENT shift, and go to state 39
IF shift, and go to state 40
NUMERO shift, and go to state 41
READ shift, and go to state 42
WRITE shift, and go to state 43
T_END reduce using rule 40 (comandos)
T_END [reduce using rule 41 (comandos)]
WHILE reduce using rule 85 (@15)
$default reduce using rule 40 (comandos)
comando_composto go to state 44
comandos go to state 100
comando go to state 46
comando_sem_rotulo go to state 47
atribuicao_ou_procedimento go to state 48
leitura go to state 49
escrita go to state 50
numero go to state 51
comando_repetitivo go to state 52
@15 go to state 53
comando_condicional go to state 54
if_then go to state 55
state 72
42 comando: numero DOIS_PONTOS . comando_sem_rotulo
T_BEGIN shift, and go to state 34
IDENT shift, and go to state 39
IF shift, and go to state 40
READ shift, and go to state 42
WRITE shift, and go to state 43
$default reduce using rule 85 (@15)
comando_composto go to state 44
comando_sem_rotulo go to state 101
atribuicao_ou_procedimento go to state 48
leitura go to state 49
escrita go to state 50
comando_repetitivo go to state 52
@15 go to state 53
comando_condicional go to state 54
if_then go to state 55
state 73
87 comando_repetitivo: @15 WHILE . expressao DO @16 comando_sem_rotulo
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao go to state 102
expressao_simples go to state 65
termo go to state 66
fator go to state 67
state 74
89 cond_else: ELSE . comando_sem_rotulo
T_BEGIN shift, and go to state 34
IDENT shift, and go to state 39
IF shift, and go to state 40
READ shift, and go to state 42
WRITE shift, and go to state 43
$default reduce using rule 85 (@15)
comando_composto go to state 44
comando_sem_rotulo go to state 103
atribuicao_ou_procedimento go to state 48
leitura go to state 49
escrita go to state 50
comando_repetitivo go to state 52
@15 go to state 53
comando_condicional go to state 54
if_then go to state 55
state 75
88 comando_condicional: if_then cond_else .
$default reduce using rule 88 (comando_condicional)
state 76
16 declara_var: @5 lista_id_var DOIS_PONTOS tipo @6 . PONTO_E_VIRGULA
PONTO_E_VIRGULA shift, and go to state 104
state 77
29 parametros_ou_nada: ABRE_PARENTESES @9 . paramentros_formais @10 FECHA_PARENTESES
$default reduce using rule 33 (@11)
paramentros_formais go to state 105
secao_pfs go to state 106
@11 go to state 107
state 78
26 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA . bloco @8 PONTO_E_VIRGULA
LABEL shift, and go to state 13
$default reduce using rule 7 (parte_declara_rotulos)
bloco go to state 108
parte_declara_rotulos go to state 15
state 79
51 atribuicao_ou_procedimento: IDENT @12 atribuicao_ou_procedimento_token .
$default reduce using rule 51 (atribuicao_ou_procedimento)
state 80
52 atribuicao_ou_procedimento_token: atribuicao .
$default reduce using rule 52 (atribuicao_ou_procedimento_token)
state 81
55 atribuicao: @13 . ATRIBUICAO expressao_simples
ATRIBUICAO shift, and go to state 109
state 82
53 atribuicao_ou_procedimento_token: chamada_procedimento .
$default reduce using rule 53 (atribuicao_ou_procedimento_token)
state 83
57 chamada_procedimento: @14 . lista_parametros
ABRE_PARENTESES shift, and go to state 110
$default reduce using rule 59 (lista_parametros)
lista_parametros go to state 111
state 84
69 expressao: expressao IGUAL . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 112
termo go to state 66
fator go to state 67
state 85
70 expressao: expressao DIFERENTE . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 113
termo go to state 66
fator go to state 67
state 86
72 expressao: expressao MENOR_IGUAL . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 114
termo go to state 66
fator go to state 67
state 87
74 expressao: expressao MAIOR_IGUAL . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 115
termo go to state 66
fator go to state 67
state 88
71 expressao: expressao MENOR . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 116
termo go to state 66
fator go to state 67
state 89
73 expressao: expressao MAIOR . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 117
termo go to state 66
fator go to state 67
state 90
92 if_then: IF expressao @17 . THEN comando_sem_rotulo
THEN shift, and go to state 118
state 91
76 expressao_simples: expressao_simples MAIS . termo
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
termo go to state 119
fator go to state 67
state 92
77 expressao_simples: expressao_simples MENOS . termo
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
termo go to state 120
fator go to state 67
state 93
80 termo: termo DIV . fator
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
fator go to state 121
state 94
79 termo: termo ASTERISCO . fator
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
fator go to state 122
state 95
65 simb_leitura: IDENT .
$default reduce using rule 65 (simb_leitura)
state 96
62 leitura: READ ABRE_PARENTESES lista_leituras . FECHA_PARENTESES
63 lista_leituras: lista_leituras . VIRGULA simb_leitura
FECHA_PARENTESES shift, and go to state 123
VIRGULA shift, and go to state 124
state 97
64 lista_leituras: simb_leitura .
$default reduce using rule 64 (lista_leituras)
state 98
66 escrita: WRITE ABRE_PARENTESES lista_escritas . FECHA_PARENTESES
67 lista_escritas: lista_escritas . VIRGULA expressao_simples
FECHA_PARENTESES shift, and go to state 125
VIRGULA shift, and go to state 126
state 99
68 lista_escritas: expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 68 (lista_escritas)
state 100
39 comandos: comando PONTO_E_VIRGULA comandos .
$default reduce using rule 39 (comandos)
state 101
42 comando: numero DOIS_PONTOS comando_sem_rotulo .
$default reduce using rule 42 (comando)
state 102
69 expressao: expressao . IGUAL expressao_simples
70 | expressao . DIFERENTE expressao_simples
71 | expressao . MENOR expressao_simples
72 | expressao . MENOR_IGUAL expressao_simples
73 | expressao . MAIOR expressao_simples
74 | expressao . MAIOR_IGUAL expressao_simples
87 comando_repetitivo: @15 WHILE expressao . DO @16 comando_sem_rotulo
DO shift, and go to state 127
IGUAL shift, and go to state 84
DIFERENTE shift, and go to state 85
MENOR_IGUAL shift, and go to state 86
MAIOR_IGUAL shift, and go to state 87
MENOR shift, and go to state 88
MAIOR shift, and go to state 89
state 103
89 cond_else: ELSE comando_sem_rotulo .
$default reduce using rule 89 (cond_else)
state 104
16 declara_var: @5 lista_id_var DOIS_PONTOS tipo @6 PONTO_E_VIRGULA .
$default reduce using rule 16 (declara_var)
state 105
29 parametros_ou_nada: ABRE_PARENTESES @9 paramentros_formais . @10 FECHA_PARENTESES
32 paramentros_formais: paramentros_formais . PONTO_E_VIRGULA secao_pfs
PONTO_E_VIRGULA shift, and go to state 128
$default reduce using rule 28 (@10)
@10 go to state 129
state 106
31 paramentros_formais: secao_pfs .
$default reduce using rule 31 (paramentros_formais)
state 107
34 secao_pfs: @11 . lista_id_pf DOIS_PONTOS tipo
IDENT shift, and go to state 130
lista_id_pf go to state 131
parametro go to state 132
state 108
26 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco . @8 PONTO_E_VIRGULA
$default reduce using rule 25 (@8)
@8 go to state 133
state 109
55 atribuicao: @13 ATRIBUICAO . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 134
termo go to state 66
fator go to state 67
state 110
58 lista_parametros: ABRE_PARENTESES . lista_parametros_parenteses FECHA_PARENTESES
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
lista_parametros_parenteses go to state 135
expressao_simples go to state 136
termo go to state 66
fator go to state 67
state 111
57 chamada_procedimento: @14 lista_parametros .
$default reduce using rule 57 (chamada_procedimento)
state 112
69 expressao: expressao IGUAL expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 69 (expressao)
state 113
70 expressao: expressao DIFERENTE expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 70 (expressao)
state 114
72 expressao: expressao MENOR_IGUAL expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 72 (expressao)
state 115
74 expressao: expressao MAIOR_IGUAL expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 74 (expressao)
state 116
71 expressao: expressao MENOR expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 71 (expressao)
state 117
73 expressao: expressao MAIOR expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 73 (expressao)
state 118
92 if_then: IF expressao @17 THEN . comando_sem_rotulo
T_BEGIN shift, and go to state 34
IDENT shift, and go to state 39
IF shift, and go to state 40
READ shift, and go to state 42
WRITE shift, and go to state 43
$default reduce using rule 85 (@15)
comando_composto go to state 44
comando_sem_rotulo go to state 137
atribuicao_ou_procedimento go to state 48
leitura go to state 49
escrita go to state 50
comando_repetitivo go to state 52
@15 go to state 53
comando_condicional go to state 54
if_then go to state 55
state 119
76 expressao_simples: expressao_simples MAIS termo .
79 termo: termo . ASTERISCO fator
80 | termo . DIV fator
DIV shift, and go to state 93
ASTERISCO shift, and go to state 94
$default reduce using rule 76 (expressao_simples)
state 120
77 expressao_simples: expressao_simples MENOS termo .
79 termo: termo . ASTERISCO fator
80 | termo . DIV fator
DIV shift, and go to state 93
ASTERISCO shift, and go to state 94
$default reduce using rule 77 (expressao_simples)
state 121
80 termo: termo DIV fator .
$default reduce using rule 80 (termo)
state 122
79 termo: termo ASTERISCO fator .
$default reduce using rule 79 (termo)
state 123
62 leitura: READ ABRE_PARENTESES lista_leituras FECHA_PARENTESES .
$default reduce using rule 62 (leitura)
state 124
63 lista_leituras: lista_leituras VIRGULA . simb_leitura
IDENT shift, and go to state 95
simb_leitura go to state 138
state 125
66 escrita: WRITE ABRE_PARENTESES lista_escritas FECHA_PARENTESES .
$default reduce using rule 66 (escrita)
state 126
67 lista_escritas: lista_escritas VIRGULA . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 139
termo go to state 66
fator go to state 67
state 127
87 comando_repetitivo: @15 WHILE expressao DO . @16 comando_sem_rotulo
$default reduce using rule 86 (@16)
@16 go to state 140
state 128
32 paramentros_formais: paramentros_formais PONTO_E_VIRGULA . secao_pfs
$default reduce using rule 33 (@11)
secao_pfs go to state 141
@11 go to state 107
state 129
29 parametros_ou_nada: ABRE_PARENTESES @9 paramentros_formais @10 . FECHA_PARENTESES
FECHA_PARENTESES shift, and go to state 142
state 130
37 parametro: IDENT .
$default reduce using rule 37 (parametro)
state 131
34 secao_pfs: @11 lista_id_pf . DOIS_PONTOS tipo
DOIS_PONTOS shift, and go to state 143
state 132
35 lista_id_pf: parametro . VIRGULA lista_id_pf
36 | parametro .
VIRGULA shift, and go to state 144
$default reduce using rule 36 (lista_id_pf)
state 133
26 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 . PONTO_E_VIRGULA
PONTO_E_VIRGULA shift, and go to state 145
state 134
55 atribuicao: @13 ATRIBUICAO expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 55 (atribuicao)
state 135
58 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses . FECHA_PARENTESES
60 lista_parametros_parenteses: lista_parametros_parenteses . VIRGULA expressao_simples
FECHA_PARENTESES shift, and go to state 146
VIRGULA shift, and go to state 147
state 136
61 lista_parametros_parenteses: expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 61 (lista_parametros_parenteses)
state 137
92 if_then: IF expressao @17 THEN comando_sem_rotulo .
$default reduce using rule 92 (if_then)
state 138
63 lista_leituras: lista_leituras VIRGULA simb_leitura .
$default reduce using rule 63 (lista_leituras)
state 139
67 lista_escritas: lista_escritas VIRGULA expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 67 (lista_escritas)
state 140
87 comando_repetitivo: @15 WHILE expressao DO @16 . comando_sem_rotulo
T_BEGIN shift, and go to state 34
IDENT shift, and go to state 39
IF shift, and go to state 40
READ shift, and go to state 42
WRITE shift, and go to state 43
$default reduce using rule 85 (@15)
comando_composto go to state 44
comando_sem_rotulo go to state 148
atribuicao_ou_procedimento go to state 48
leitura go to state 49
escrita go to state 50
comando_repetitivo go to state 52
@15 go to state 53
comando_condicional go to state 54
if_then go to state 55
state 141
32 paramentros_formais: paramentros_formais PONTO_E_VIRGULA secao_pfs .
$default reduce using rule 32 (paramentros_formais)
state 142
29 parametros_ou_nada: ABRE_PARENTESES @9 paramentros_formais @10 FECHA_PARENTESES .
$default reduce using rule 29 (parametros_ou_nada)
state 143
34 secao_pfs: @11 lista_id_pf DOIS_PONTOS . tipo
IDENT shift, and go to state 57
tipo go to state 149
state 144
35 lista_id_pf: parametro VIRGULA . lista_id_pf
IDENT shift, and go to state 130
lista_id_pf go to state 150
parametro go to state 132
state 145
26 declaracao_procedimento: PROCEDURE IDENT @7 parametros_ou_nada PONTO_E_VIRGULA bloco @8 PONTO_E_VIRGULA .
$default reduce using rule 26 (declaracao_procedimento)
state 146
58 lista_parametros: ABRE_PARENTESES lista_parametros_parenteses FECHA_PARENTESES .
$default reduce using rule 58 (lista_parametros)
state 147
60 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA . expressao_simples
IDENT shift, and go to state 62
NUMERO shift, and go to state 63
expressao_simples go to state 151
termo go to state 66
fator go to state 67
state 148
87 comando_repetitivo: @15 WHILE expressao DO @16 comando_sem_rotulo .
$default reduce using rule 87 (comando_repetitivo)
state 149
34 secao_pfs: @11 lista_id_pf DOIS_PONTOS tipo .
$default reduce using rule 34 (secao_pfs)
state 150
35 lista_id_pf: parametro VIRGULA lista_id_pf .
$default reduce using rule 35 (lista_id_pf)
state 151
60 lista_parametros_parenteses: lista_parametros_parenteses VIRGULA expressao_simples .
76 expressao_simples: expressao_simples . MAIS termo
77 | expressao_simples . MENOS termo
MAIS shift, and go to state 91
MENOS shift, and go to state 92
$default reduce using rule 60 (lista_parametros_parenteses)