ing sistemas

Páginas: 2 (271 palabras) Publicado: 16 de abril de 2013
%{
import java.io.*;
%}

// lista de tokens por orden de prioridad

%token CONSTANTE // constante (entero o flotante)
%token ABR_PARENT // abrir paréntesis
%token CER_PARENT// cerrar paréntesis
%token ASIG // simbolo usado para la asignación
%token IDENTIFICADOR
%token PYC // punto y coma
%left OP_MAS_MENOS // operadores binarios demenos prioridad (o unarios)
%left OP_MULT_DIV // operadores binarios de mas prioridad


%%
lista_sent
: lista_sent sentencia
|
;
sentencia
: exprPYC
{ System.out.println($1.obj.toString());
}
| IDENTIFICADOR ASIG expr PYC
{ Acc.Asignacion($1.obj,$3.obj) ;
}| error PYC
;
expr
: CONSTANTE
{ $$.obj = $1.obj ;
}
| IDENTIFICADOR
{ $$.obj =Acc.LeerValorVariable($1.obj) ;
}
| expr OP_MAS_MENOS expr
{ $$.obj = Acc.Operador($2.obj,$1.obj,$3.obj);
}
| expr OP_MULT_DIV expr{ $$.obj = Acc.Operador($2.obj,$1.obj,$3.obj);
}
| OP_MAS_MENOS expr
{ $$.obj = Acc.Operador($1.obj,$2.obj);
}| ABR_PARENT expr CER_PARENT
{ $$.obj = $2.obj ;
}
;
%%

// referencia al analizador léxico
//
private Yylex analex ;

//constructor: crea el analizador sintactico
// invoca la creación dela analizador lexico (lexer)
//
public Parser(Reader r)
{
analex = new Yylex(r, this) ;
}

// esta función seinvoca por el analizador cuando necesita el
// siguiente token del analizador léxico
//
private int yylex ()
{
int yyl_return = -1;
try
{ yylval = new ParserVal(0);...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ing de sistemas
  • Ing sistemas
  • Ing de sistemas
  • Ing. Sistemas
  • Ing Sistemas
  • Ing De Sistemas
  • Ing. En Sistemas
  • Ing. De Sistemas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS