Repositorio que almacena el proyecto final de la materia de compiladores
Las siguientes son las gramáticas definidas en el compilador.
Gramática de asignación:
S -> int V | float V ;
V -> ID, V | ID
Gramática de operaciones aritméticas:
S -> ID = V;
V -> ID + V | num + V | ID - V | num - V | num - V | ID * V | num * V |
ID / V | num / v | ID | num
Gramática de while:
S -> while ( C ) { sentencia } | while ( C ) { S } |
while ( C ) { S sentencias } | while ( C ) { sentencias S sentencias }
C -> CR OL C | CR
CR -> id OR id | id OR num | num OR id
OL -> && | ||
OR -> < | > | <= | >= | == | !=