CONJUNTO.LEX



/* OPERACIONES CON CONJUNTOS */
/* ==================================================*/
/* === Programa:    1.lex                         ===*/
/* === TEcnica:     Dirigida por la sintAxis       ===*/
/* === Programador: J. Rafael R. ochoa            ===*/
/* ==================================================*/

%{
#include "y.tab.h"
%}

st                     [ \t]
blank                  ({st})
let                    [a-z]
dig_pos                [1-9]
dig                    [0-9]
dig_seq                ({dig_pos}{dig}*)
entero                 ({dig_seq}|[0])
let_o_dig              ([a-z0-9_-])
secuencia              ({let_o_dig}+)
variable               ([v]{let_o_dig}+)
todo                   (\<[^\>]*\>)

%%
"+"                    {return UNION;}
"*"                    {return INTER;}
","                    {return COMA;}
"["                    {return CLEFT;}
"]"                    {return CRIGHT;}
"="                    {return IGUAL;}
"\n"                   {return LINEA;}
"("                    {return PLEFT;}
")"                    {return PRIGHT;}
print		       {return PRINT;}
PRINT                  {return PRINT;}
"salir"                {return SALIR;}
{secuencia}            { sprintf(yylval.str, "%s",yytext);
                         return CAD;}
.                      { ; }
%%

int yywrap()  { return(1); }