ARBOL.LEX



/* CALCULADORA */
/* ==================================================*/
/* === Programa:    1.lex                         ===*/
/* === TEcnica:     Dirigida por la sintAxis      ===*/
/* === Programador: J. Rafael R. Ochoa            ===*/
/* ==================================================*/

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

let                    [a-zA-Z0-9_-]
dig                    [0-9]
entero                 ({dig}+)
variable               ([x]|[X])
todo                   ({let}+)

%%
"+"                    { return MAS;   }
"-"                    { return MENOS; }
"*"                    { return POR;   }
"/"                    { return ENTRE; }
"("                    { return LEFT;  }
")"                    { return RIGHT; }
"\n"                   { return LINEA; }
"salir"                { return SALIR; }
{variable}             { return VAR;   }
{entero}               { sprintf(yylval.str, "%s",yytext);
                         return NUM;}
todo                   { return CUALQUIER_COSA; }
%%

int yywrap()  { return(1); }