                /* LEX - GERADOR DE ANALISE LEXICA */
  
/*Definicao de Simbolos*/
/*para usar por exemplo := para retornar recebe, isto deve ser declarado nos simbolos*/

D	[0-9]
L	[a-zA-Z]
 
%{
#include "token.h"
 /* #includes */
%}
 
%%

((A|a))                                           					{ return(a) ; }
((N|n)(U|u)("L"|l)("L"|l))                       					{ return(null) ; }
((V|v)(A|a)(Z|z)(I|i)(O|o))                      					{ return(vazio) ; }
((D|d)(E|e))                                     					{ return(de) ; }
((N|n)(A|a)(O|o))                               					{ return(nao) ; }
((E|e)(X|x)(I|i)(S|s)(T|t)(E|e))                 					{ return(existe) ; }
((A|a)(C|c)(H|h)(A|a)(R|r))								{ return(achar) ; }
((A|a)("L"|l)(O|o)(C|c)(A|a)(R|r))							{ return(alocar) ; }
((A|a)(R|r)(M|m)(A|a)(Z|z)(E|e)(N|n)(A|a)(R|r))						{ return(armazenar) ; }
((A|a)(T|t)(E|e))									{ return(ate) ; }
((A|a)(T|t)(R|r)(I|i)(B|b)(U|u)(I|i)(R|r))						{ return(atribuir) ; }
((C|c)(A|a)("L"|l)(C|c)(U|u)("L"|l)(A|a)(R|r))						{ return(calcular) ; }
((C|c)(O|o)(M|m)(P|p)(A|a)(R|r)(A|a)(R|r))						{ return(comparar) ; }
((C|c)(R|r)(I|i)(A|a)(R|r))								{ return(criar) ; }
(("D"|d)(E|e)(C|c)(R|r)(E|e)(M|m)(E|e)(N|n)(T|t)(A|a)(R|r))				{ return(decrementar) ; }
(("D"|d)(E|e)("L"|l)(E|e)(T|t)(A|a)(R|r))			        		{ return(deletar) ; }
(("D"|d)(I|i)(F|f)(E|e)(R|r)(E|e)(N|n)(T|t)(E|e))        				{ return(diferente) ; }
((E|e)|(&&))						        			{ return(e) ; }
((E|e)(N|n)(Q|q)(U|u)(A|a)(N|n)(T|t)(O|o))						{ return(enquanto) ; }
((E|e)(S|s)(C|c)(A|a)("L"|l)(O|o)(N|n)(A|a)(R|r))					{ return(escalonar) ; }
((E|e)(N|n)(T|t)(A|a)(O|o)) 								{ return(entao) ; }
((E|e)(N|n)(T|t)(R|r)(A|a)(R|r))							{ return(entrar) ; }
((E|e)(X|x)(E|e)(C|c)(U|u)(T|t)(A|a)(R|r))						{ return(executar) ; }
((F|f)(A|a)(Z|z)(E|e)(R|r)|(F|f)(A|a)(C|c)(A|a))					{ return(faca) ; }
((I|i)(G|g)(U|u)(A|a)(L|l))            			        			{ return(igual) ; }
((I|i)(N|n)(C|r)(R|r)(E|e)(M|m)(E|e)(N|n)(T|t)(A|a)(R|r))				{ return(incrementar) ; }
((I|i)(N|n)(S|s)(E|e)(R|r)(I|i)(R|r))			        			{ return(inserir) ; }
((I|i)(R|r))					       					{ return(ir) ; }
(("L"|l)(E|e)(R|r))									{ return(ler) ; }
(("L"|l)(I|i)(B|b)(E|e)(R|r)(A|a)(R|r))							{ return(liberar) ; }
((M|m)(A|a)(I|i)(O|o)(R|r))                                                             { return(maior); }
((M|m)(A|a)(I|i)(O|o)(R|r)(O|o)(U|u)(I|i)(G|g)(U|u)(A|a)(L|l))                          { return(maiorouigual); }
((M|m)(A|a)(I|i)(S|s))                                                                  { return(mais); }
((M|m)(E|e)(N|n)(O|o)(R|r))                                                             { return(menor); }
((M|m)(E|e)(N|n)(O|o)(R|r)(O|o)(U|u)(I|i)(G|g)(U|u)(A|a)(L|l))                          { return(menorouigual); }
((M|m)(E|e)(N|n)(O|o)(S|s))                                                             { return(menos); }
((O|o)(R|r)("D"|d)(E|e)(N|n)(A|a)(R|r))							{ return(ordenar) ; }
((O|o)(U|u)|("||"))									{ return(ou) ; }
((P|p)(A|a)(R|r)(A|a))				         				{ return(para) ; }
((P|p)(A|a)(R|r)(A|a)(R|r))								{ return(parar) ; }
((P|p)(A|a)(S|s)(S|s)(O|o))								{ return(passo) ; }
((P|p)(R|r)(O|o)(C|c)(U|u)(R|r)(A|a)(R|r))						{ return(procurar) ; }
((Q|q)(U|u)(E|e))        								{ return(que) ; }
((R|r)(E|e)(C|c)(E|e)(B|b)(E|e))                                                	{ return(recebe) ; } 
((R|r)(E|e)(T|t)(I|i)(R|r)(A|a)(R|r))	 	        				{ return(retirar) ; } 
((S|s)(E|e)) 			                                        		{ return(se) ; }
((S|s)(E|e)(N|n)(A|a)(O|o)) 				                		{ return(senao) ; }
((V|v)(E|e)(R|r)(I|i)(F|f)(I|i)(C|c)(A|a)(R|r))                         		{ return(verificar) ; }
((V|v)(E|e)(Z|z)(E|e)(S|s))                                              		{ return(vezes) ; }
((V|v)(O|o)("L"|l)(T|t)(A|a)(R|r))	 	        				{ return(voltar) ; }
({L}|"_")({L}|{D}|"_"|"->")*          		{ int ret ; ret=(procura_palavra(yytext,1)) ; 
                                                             return(ret) ; }
(({D})*|(({D}*)"."({D}*)))                      { int ret ; ret=(procura_palavra(yytext,2)) ; 
                                                             return(ret) ; }
[\t\v\f]                                 	{ } ;

%% 
  
procura_palavra(char *palavra; int code)
{
/* codigo da funcao procura_palavra */
}


  
	

