Ejemplo - JFlex y CUP

August 16, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Ejemplo - JFlex y CUP...

Description

 

Scanner (lexer (lexer.l) .l) %option noyywrap %{ #include "parser.h" #include #include int columna=0; %} letra [a-zñA-ZÑ] digito [0-9] cadena [\"][^\"\n]+[\"\n] iden {letra}+ Numero {digito}+ %% "carita" { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Ncarita; } "casita" { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Ncasita; } "ovalo" { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Novalo; } "rectangulo" { columna=columna+strlen(yylval.STR); sstrcpy(yylval.STR, trcpy(yylval.STR, yytext); return return Nrectangulo; } "texto" { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Ntexto; } [(] { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Nparen; } [)] { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Ncparen; } [,] { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Ncoma; } [;] { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Npcoma; } {cadena} { columna=columna+strlen(yylval.STR); c olumna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Ncadena; } {iden} { columna=columna+strlen(yylval.STR); strcpy(yylval.STR, yytext); return Niden; } {Numero} { columna=columna+strlen(yylval.STR c olumna=columna+strlen(yylval.STR); ); strcpy(yylval.STR, yytext); return Nnum; } [[:blank:]] { /*Se ignoran los espacios en blanco */ } . { std::cout
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF