Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/IcaroRios/Compilador
Browse files Browse the repository at this point in the history
  • Loading branch information
nalmeida94 committed Aug 17, 2017
2 parents 299b93a + 463274b commit 766b4ca
Show file tree
Hide file tree
Showing 18 changed files with 353 additions and 170 deletions.
1 change: 0 additions & 1 deletion Testes/Testes para Lexico/TesteCerto0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@ comentario em bloco

*/
/ || && >= != //comentario de linha na linha dos operadores

6 changes: 4 additions & 2 deletions Testes/Testes para Lexico/TesteCerto1.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
/*****
COMENTÁRIO DE BLOCO PODE TER QUAQUER COISA....,/30139~´ ''"]~[~[´´ ]
COMENT�RIO DE BLOCO PODE TER QUAQUER COISA....,/30139~ ''"]~[~[�� ]
*/
//PROGRAMA PRA CALCULAR FATORIAL
begin function fatorial(int num)
int cont = 1;
//laço pra calculo do fatorial
//la�o pra calculo do fatorial
while(num>1) begin
cont=cont*num;
num=num-1;
Expand All @@ -25,3 +25,5 @@ begin program
end program


Contact GitHub API Training Shop Blog About
� 2017 GitHub, Inc. Terms Privacy Security Status Help
8 changes: 4 additions & 4 deletions Testes/Testes para Lexico/TesteCertoBasico.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ TEM QUE DAR CERTO
//PALAVRAS RESERVADAS
program const var function begin end if then else while do
read write integer real boolean true false string char
//NÚMEROS
//N�MEROS
0.9 -0.9 - 0.9 - 0.09 23333.210212
//OPERADORES ARITMÉTICOS
//OPERADORES ARITM�TICOS
+ - * / %
//OPERADORES RELACIONAIS
!= = < <= > >=
//OPERADORES ATRIBUIÇÃO
//OPERADORES ATRIBUI��O
==
//OPERADORES LÓGICOS
//OPERADORES L�GICOS
! && ||
//TIPO DELIMITADOR
; , () [] :
Expand Down
6 changes: 3 additions & 3 deletions Testes/Testes para Lexico/TesteErrado1.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/COMENTARIO DE LINHA TEM QUE TER 2/ TBM DA MERDA
begi {} //BEGIN ERRADO IRA VIRAR IDENTIFICADOR, CHAVES N SÃO RECONHECIDAS
begi {} //BEGIN ERRADO IRA VIRAR IDENTIFICADOR, CHAVES N S�O RECONHECIDAS
0. //NUMERO ERRADO
.0 //NUMERO ERRADO
'EDEDE' //CARACTER ERRADO
Expand All @@ -8,14 +8,14 @@ begi {} //BEGIN ERRADO IRA VIRAR IDENTIFICADOR, CHAVES N SÃO RECONHECIDAS
"2" //CADEIA DE CARACTERES ERRADO
"EE"" //CADEIA DE CARACTERES ERRADO
/*****
COMENTARIO DE BLOCO PODE TER QUAQUER COISA....,/30139~´ ''"]~[~[´´ ]
COMENTARIO DE BLOCO PODE TER QUAQUER COISA....,/30139~ ''"]~[~[�� ]

MAS TEM QUE TERMINAR COM ESTRELA/
AQUI TA FALTANDO UMA ESTRELA, VAI DAR MUITA MERDA
NAO VAI ANALISAR NADA PQ O COMENTARIO EM BLOCO NAO FECHOU
/
/COMENTARIO DE LINHA TEM QUE TER 2/ TBM DA MERDA
begi {} //BEGIN ERRADO IRA VIRAR IDENTIFICADOR, CHAVES N SÃO RECONHECIDAS
begi {} //BEGIN ERRADO IRA VIRAR IDENTIFICADOR, CHAVES N S�O RECONHECIDAS
0. //NUMERO ERRADO
.0 //NUMERO ERRADO
'EDEDE' //CARACTER ERRADO
Expand Down
44 changes: 44 additions & 0 deletions entrada/Out_Lex_area_circ.oLex
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<reservada - program>
<reservada - var>
<reservada - begin>
<reservada - real>
<identificador - raio>
<delimitador - ;>
<reservada - end>
<reservada - function>
<identificador - area_circulo>
<delimitador - (>
<reservada - real>
<identificador - raio>
<delimitador - )>
<delimitador - :>
<reservada - real>
<reservada - begin>
<reservada - return>
<identificador - raio>
<delimitador - ;>
<reservada - end>
<reservada - begin>
<reservada - write>
<delimitador - (>
<cadeia_de_caracteres - "Digite o valor do raio">
<delimitador - )>
<delimitador - ;>
<reservada - read>
<delimitador - (>
<identificador - raio>
<delimitador - )>
<delimitador - ;>
<reservada - write>
<delimitador - (>
<cadeia_de_caracteres - "A area do circulo eh ">
<delimitador - ,>
<identificador - area_circulo>
<delimitador - (>
<identificador - raio>
<delimitador - )>
<delimitador - )>
<delimitador - ;>
<reservada - end>

SUCESSO NA ANALISE LEXICA DO ARQUIVO: area_circ.txt
128 changes: 128 additions & 0 deletions entrada/Out_Lex_fatorial.oLex
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
<reservada - program>
<reservada - var>
<reservada - begin>
<reservada - integer>
<identificador - fat>
<delimitador - ,>
<identificador - m>
<delimitador - [>
<numero - 2>
<delimitador - ]>
<delimitador - ;>
<reservada - end>
<reservada - const>
<reservada - begin>
<reservada - integer>
<identificador - c1>
<delimitador - ;>
<reservada - end>
<reservada - function>
<identificador - fatorial>
<delimitador - (>
<reservada - integer>
<identificador - n>
<delimitador - ,>
<reservada - real>
<identificador - a>
<delimitador - )>
<delimitador - :>
<reservada - integer>
<reservada - begin>
<reservada - var>
<reservada - begin>
<reservada - integer>
<identificador - k>
<delimitador - ,>
<identificador - fat>
<delimitador - ;>
<reservada - end>
<reservada - if>
<delimitador - (>
<identificador - k>
<operador_relacional - >>
<numero - 1>
<delimitador - )>
<reservada - then>
<reservada - begin>
<identificador - k>
<operador_de_atribuicao - =>
<identificador - n>
<operador_aritmetico - *>
<identificador - fatorial>
<delimitador - (>
<identificador - n>
<operador_aritmetico - ->
<numero - 1>
<delimitador - )>
<delimitador - ;>
<reservada - return>
<identificador - k>
<delimitador - ;>
<reservada - end>
<reservada - else>
<reservada - begin>
<identificador - k>
<operador_de_atribuicao - =>
<caractere - 'a'>
<delimitador - ;>
<reservada - return>
<identificador - k>
<delimitador - ;>
<reservada - end>
<reservada - return>
<identificador - k>
<delimitador - ;>
<reservada - end>
<reservada - function>
<identificador - f>
<delimitador - (>
<delimitador - )>
<delimitador - :>
<reservada - real>
<reservada - begin>
<reservada - return>
<identificador - fat>
<delimitador - ;>
<reservada - end>
<reservada - begin>
<reservada - write>
<delimitador - (>
<cadeia_de_caracteres - "Digite o numero para calcular o fatorial.">
<delimitador - )>
<delimitador - ;>
<reservada - read>
<delimitador - (>
<identificador - m>
<delimitador - )>
<delimitador - ;>
<identificador - fat>
<operador_de_atribuicao - =>
<identificador - fatorial>
<delimitador - (>
<delimitador - )>
<delimitador - ;>
<reservada - while>
<delimitador - (>
<delimitador - (>
<numero - 3>
<operador_aritmetico - ->
<numero - 1>
<delimitador - )>
<operador_relacional - <>
<delimitador - (>
<numero - 2>
<operador_aritmetico - +>
<numero - 1>
<delimitador - )>
<delimitador - )>
<reservada - do>
<reservada - begin>
<reservada - end>
<reservada - write>
<delimitador - (>
<identificador - fat>
<delimitador - )>
<delimitador - ;>
<reservada - end>

SUCESSO NA ANALISE LEXICA DO ARQUIVO: fatorial.txt
1 change: 1 addition & 0 deletions entrada/Out_Sem_area_circ.oSem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SUCESSO NA ANALISE SEMANTICA DO ARQUIVO: area_circ.txt
1 change: 1 addition & 0 deletions entrada/Out_Sem_fatorial.oSem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SUCESSO NA ANALISE SEMANTICA DO ARQUIVO: fatorial.txt
1 change: 1 addition & 0 deletions entrada/Out_Syn_area_circ.oSyn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SUCESSO NA ANALISE SINTATICA DO ARQUIVO: area_circ.txt
1 change: 1 addition & 0 deletions entrada/Out_Syn_fatorial.oSyn
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SUCESSO NA ANALISE SINTATICA DO ARQUIVO: fatorial.txt
3 changes: 2 additions & 1 deletion entrada/area_circ.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ end

function area_circulo(real raio) : real
begin
area_circulo = 3.14 * (raio * raio);
//area_circulo = 3.14 * (raio * raio);
return raio;
end

begin
Expand Down
43 changes: 20 additions & 23 deletions entrada/fatorial.txt
Original file line number Diff line number Diff line change
@@ -1,41 +1,38 @@
program

var begin
integer fat, m[2] = [2,3,2,4];
integer fat, m[2];
end

const begin
integer c1;
end

function fatorial(integer n) : integer
function fatorial(integer n, real a) : integer
begin
var begin
integer k, fat;
end
if(n > 1) then begin
k = n*fatorial(n-1);
return k;
end else begin
var begin
integer k, fat;
end
if(k>1) then begin
k = n*fatorial(n-1);
return k;
end else begin
k = 'a';
return k;
end

return k;
return k;
end
return k;
end


function f() : real
begin
return fat;
end

begin
write("Digite o numero para calcular o fatorial.");
read(m);
fat = fatorial();
while((3-1) > (2+1)) do begin
write("Digite o numero para calcular o fatorial.");
read(m);
fat = fatorial();
while((3-1) < (2+1)) do begin

end
write(fat);
write(fat);
end

1 change: 0 additions & 1 deletion src/Controller/Controlador.java
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,5 @@ private void analiseSintatica(String fileName){

private void analiseSemantica(String name) {
this.semantico.executar(name, sintatico.getTree(), lexico.getListTokens());
this.semantico.cleanLists();
}
}
4 changes: 4 additions & 0 deletions src/Model/Token.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ public boolean isIsError() {
public int getTipo() {
return tipo;
}

public void setTipo(int tipo) {
this.tipo = tipo;
}

@Override
public String toString() {
Expand Down
2 changes: 0 additions & 2 deletions src/exceptions/FunctionWithoutReturnStatement.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package exceptions;

import syntactic.RegraTerminal;

public class FunctionWithoutReturnStatement extends Exception {
private static final long serialVersionUID = 1L;

Expand Down
Loading

0 comments on commit 766b4ca

Please sign in to comment.