/* Analizador léxico de NémesisObj */ cifra [0-9] letra [a-z] letram [A-Z] entero {cifra}+ ident {letra}({cifra}|{letra})* identm {letram}({cifra}|{letram})* nonsense [ \t\n] saltar {nonsense}+ operador "="|";" %{ int numlinea=0; char aaa; %} %% obj {return TOBJ;} finobj {return TFINOBJ;} max {return TMAX;} aka {return TAKA;} estado {return TESTADO;} limbo {return TLIMBO;} jugador {return TJUGADOR;} localidad {return TLOC;} loc {return TLOC;} maxjug {return TMAXJUG;} nocogible {return TNOCOGIBLE;} "/""*" { while (1) /*saltar comentario */ { aaa=input(); while (aaa!='*') { if (aaa=='\n') numlinea++; aaa=input(); } if (input()=='/') break; } } \n {++numlinea;} {identm} {strcpy(yylval.cadena,yytext); return TIDM;} {entero} {yylval.entero=atoi(yytext); return TENTERO; } {operador} { return yytext[0]; } {nonsense} ; "'" { { int i=0; char c=input(); while (c!='\'') { yylval.cadena[i++]=c; c=input(); } yylval.cadena[i]='\0'; /* printf("La cadena es %s",yyval.cadena);*/ return TCADENA; } } %% yywrap() { return 1; }