Está en la página 1de 3

UNIVERSIDAD DE GUADALAJARA

Centro Universitario de Ciencias Exactas e Ingenieras


Divisin de Electrnica y Computacin

TRADUCTORES DE LENGUAJES II
TAREA 2 ANALIZADOR SINTCTICO EBNF
PROFESOR: CARLOS ALBERTO LPEZ FRANCO
SECCIN: D01
ALUMNO: CARLOS ANDRS FERNNDEZ JALOMO
CODIGO: 210711118
CARRERA: ING. EN COMPUTACIN
CICLO: 2016B

TRADUCTORES DE LENGUAJES II

Analizador Sintctico en EBNF


Validacin de Identificadores, Sumas, Multiplicaciones y Expresiones.

Gramtica
{+}
{ }
|
Expression* E(){
Expression* aux;
aux=M();
while(lexical.symbol==+){
lexical.next_symbol();
aux=new Sum(aux,M(),+);
}
Return aux;
}
Expression* M(){
Expression* aux;
aux=F();
while(lexical. symbol ==*){
lexical. next_symbol ();
aux=new Multiplication(aux,F(),*);
}
Return aux;
}
Expression* F(){
Expression* aux;
if(lexical. symbol.type==IDENTIFIER){
aux=new Identifier(lexical. symbol);
}else{
aux=new Integer(lexical. symbol);
check(INTEGER);
}
Return aux;
}
Class Expression{
Expression* izq,*der;
Std::string Symbol;
}

TRADUCTORES DE LENGUAJES II

Class Sum:public Expression{


Public:
Sum(Expression* i,Expression* d,std::string Symbol){
This->symbol=symbol;
Izq=i;
Der=d;
}
}
Class Sum:public Expression{
Public:
Multiplication(Expression* i,Expression* d,std::string
Symbol){
This->symbol=symbol;
Izq=i;
Der=d;
}
}
Class Identifier:public Expression{
Public:
Identifier(std::string Symbol){
This->symbol=symbol;
Izq=der=nullptr;
}
}

También podría gustarte