Skip to content
Snippets Groups Projects
Commit 4c009176 authored by hm19's avatar hm19
Browse files

Parte 1 pronta

parent 797fade7
No related branches found
No related tags found
No related merge requests found
INPP
AMEM 1
AMEM 2
DSVS R00
R01: ENPR 1
AMEM 1
DSVS R02
R02: NADA
CRVL 1, -5
CRCT 2
CMME
DSVF R03
CRVI 1, -4
CRVL 1, -5
SOMA
ARMI 1, -4
DSVS R04
R03: NADA
CRVI 1, -4
ARMZ 1, 0
CRVL 1, -5
CRCT 1
SUBT
CREN 1, 0
CHPR R01, 1
CRVL 1, 0
ARMI 1, -4
CRVL 1, -5
CRCT 2
SUBT
CREN 1, -4
CHPR R01, 1
R04: NADA
CRVL 1, -5
IMPR
CRVI 1, -4
IMPR
DMEM 1
RTPR 1, 2
R00: NADA
CRCT 0
LEIT
ARMZ 0, 0
CRCT 3
CREN 0, 0
CHPR R01, 0
DMEM 1
PARA
LEIT
ARMZ 0, 1
CRVL 0, 0
CRCT 1
SOMA
No preview for this file type
......@@ -47,23 +47,3 @@ Tabela de Símbolos:
numero # 1
fecha_parenteses # )
then # then
ident # n
atribuicao # :=
numero # 1
pt_virgula # ;
write # write
abre_parenteses # (
ident # n
fecha_parenteses # )
Tabela de Símbolos:
----------------------------------------------------------------------------------
| Ident | Categ | Nivel | Tipo | Desloc | Detalhes |
----------------------------------------------------------------------------------
| k | VS | 0 | Inteiro | 1 | - |
| n | VS | 0 | Inteiro | 0 | - |
----------------------------------------------------------------------------------
pt_virgula # ;
end # end
Tabela de Símbolos está vazia ou não inicializada.
ponto # .
INPP
AMEM 1
AMEM 3
DSVS R00
R01: ENPR 1
AMEM 1
DSVS R02
R02: NADA
CRVL 1, -5
CRVL 0, 2
CRVL 0, 2
MULT
ARMZ 1, 0
CRVL 0, 2
CRCT 2
DIVI
CRCT 2
CMME
MULT
CRVL 0, 2
CMIG
DSVF R03
CRVI 1, -4
CRVL 1, -5
CRVL 0, 1
CRVL 1, 0
SOMA
ARMI 1, -4
ARMZ 0, 1
DSVS R04
R03: NADA
CRVI 1, -4
ARMZ 1, 0
CRVL 1, -5
CRCT 1
SUBT
CREN 1, 0
CHPR R01, 1
CRVL 0, 1
CRVL 1, 0
ARMI 1, -4
CRVL 1, -5
CRCT 2
SUBT
CRVL 1, -4
CHPR R01, 1
ARMZ 0, 1
R04: NADA
CRVL 1, -5
IMPR
CRVI 1, -4
IMPR
DMEM 1
RTPR 1, 2
RTPR 1, 0
R00: NADA
CRCT 0
LEIT
ARMZ 0, 0
CRCT 3
CREN 0, 0
CRCT 0
ARMZ 0, 1
CRCT 0
ARMZ 0, 2
R05: NADA
CRVL 0, 2
CRVL 0, 0
CMEG
DSVF R06
CHPR R01, 0
DMEM 1
CRVL 0, 1
IMPR
CRVL 0, 2
CRCT 1
SOMA
ARMZ 0, 2
DSVS R05
R06: NADA
DMEM 3
PARA
No preview for this file type
This diff is collapsed.
This diff is collapsed.
......@@ -452,25 +452,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 {
......@@ -553,6 +552,7 @@ fator: IDENT {
geraCodigo(NULL, buffer);
}
| ABRE_PARENTESES expressao FECHA_PARENTESES
| ABRE_PARENTESES expressao_simples FECHA_PARENTESES
;
numero: NUMERO;
......
......@@ -452,25 +452,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 {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment