COMMIT.LEX



/* OPERACION COMMIT EN BASES DE DATOS */
/* ---------------------------------------------------*/
/* --  Programa:    commit.lex                    ----*/
/* --  TEcnica:     Dirigida por la sintAxis      ----*/
/* --  Programador: J. Rafael R. ochoa            ----*/
/*----------------------------------------------------*/

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

st                     [ \t]
blank                  ({st})
let                    [a-zA-Z]
numlet                 [a-zA-Z0-9_-]
numero                 ([0-9]+)
texto                  ({let}+{numlet}*)
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;}
"BEGIN"                {return BEGINX;}
"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;}
"COMMIT"               {return COMMIT;}
"ROLLBACK"             {return ROLLBACK;}
"TRANSACTION"          {return TRANSACTION;}
"transaction"          {return TRANSACTION;}
"begin"                {return BEGINX;}
"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;}
"commit"               {return COMMIT;}
"rollback"             {return ROLLBACK;}
{numero}               { sprintf(yylval.str, "%s", yytext);
                         return NUMERO;
                       }
{texto}                { sprintf(yylval.str, "%s",yytext);
                         return TEXTO;
                       }
.                      { ; }
%%

int yywrap()  { return(1); }