/* PERMITIR EL LENGUAJE DE SQL PARA ARCHIVOS DBF */ /* ---------------------------------------------------- -- Programa: dbf.lex ----- -- TEcnica: Dirigida por la sintAxis ----- -- Programador: J. Rafael R. ochoa ----- ---------------------------------------------------- */ %{ #include "y.tab.h" %} st [ \t] blank ({st}) let [a-zA-Z] numero ([0-9]+[0-9]*) bdd ({let}+.dbf) texto ({let}+{numero}*) todo (\<[^\>]*\>) %% "*" {return ASTERISCO;} "'" {return APOSTROFE;} "," {return COMA;} "=" {return IGUAL;} "\n" {return LINEA;} "(" {return LEFT;} ")" {return RIGHT;} "\\Q" {return SALIR;} "\\q" {return SALIR;} "\\G" {return GO;} "\\g" {return GO;} "INSERT" {return INSERT;} "INTO" {return INTO;} "VALUES" {return VALUES;} "DELETE" {return DELETE;} "FROM" {return FROM;} "WHERE" {return WHERE;} "SELECT" {return SELECT;} "UPDATE" {return UPDATE;} "CREATE" {return CREATE;} "TABLE" {return TABLE;} "DROP" {return DROP;} "NOT NULL" {return NOT_NULL;} "SET" {return SET;} "AND" {return AND;} "OR" {return OR;} "CHAR" {return CHAR;} "INT" {return INT;} "insert" {return INSERT;} "into" {return INTO;} "values" {return VALUES;} "delete" {return DELETE;} "from" {return FROM;} "where" {return WHERE;} "select" {return SELECT;} "update" {return UPDATE;} "create" {return CREATE;} "table" {return TABLE;} "drop" {return DROP;} "not null" {return NOT_NULL;} "set" {return SET;} "and" {return AND;} "or" {return OR;} "char" {return CHAR;} "int" {return INT;} {numero} { sprintf(yylval.str, "%s", yytext); return NUMERO; } {bdd} { sprintf(yylval.str, "%s",yytext); return BDD; } {texto} { sprintf(yylval.str, "%s",yytext); return TEXTO; } . { ; } %% int yywrap() { return(1); }