
%{
//import YYtokentypes;
%}



/* regular definitions 
*/

delim		[ \t\n]
ws		{delim}+
digit		[0-9]
/*
number		\-?{digit}+(\.{digit}+)?((E|e)[+\-]?{digit}+)?
*/
integer		\-?{digit}+
purefloat	(\-?{digit}*(\.{digit}+))|(\-?{digit}+(\.{digit}*))
real		({purefloat}((E|e)[+\-]?{digit}+)?)|({integer}((E|e)[+\-]?{digit}+))
string		\"([^"\\]|(\\.))*\"
constant	[^ )(\t\n]+
indvar		\?{constant}+
seqvar		\@{constant}+


%%

{ws}			/* no action */
"("			{yyreturn('('); System.out.println("current token: " + "("); }
")"			{yyreturn(')'); System.out.println("current token: " + ")"); }
{indvar}		{yyreturn(INDVAR); System.out.println("current token: " + "INDVAR"); }
{seqvar}		{yyreturn(SEQVAR); System.out.println("current token: " + "SEQVAR"); }
("true"|"TRUE")  	{yyreturn(TRUE); System.out.println("current token: " + "TRUE"); }
("false"|"FALSE")  	{yyreturn(FALSE); System.out.println("current token: " + "FALSE"); }
{string}		{yyreturn(STRING); System.out.println("current token: " + "STRING"); }
{integer}		{yyreturn(INTEGER); System.out.println("current token: " + "INTEGER"); }
{real}			{yyreturn(REAL); System.out.println("current token: " + "REAL"); }
"="			{yyreturn(EQ); System.out.println("current token: " + "EQ"); }
"/="			{yyreturn(NOTEQ); System.out.println("current token: " + "NOTEQ"); }
"=>"			{yyreturn(IMPLIES); System.out.println("current token: " + "IMPLIES"); }
"<="			{yyreturn(IMPLIED); System.out.println("current token: " + "IMPLIED"); }
"<=>"			{yyreturn(EQUIV); System.out.println("current token: " + "EQUIV"); }
"=<"			{yyreturn(EQLESS); System.out.println("current token: " + "EQLESS"); }
"<"			{yyreturn(LESS); System.out.println("current token: " + "LESS"); }
">="			{yyreturn(EQGREATER); System.out.println("current token: " + "EQGREATER"); }
">"			{yyreturn(GREATER); System.out.println("current token: " + "GREATER"); }
("quote"|"QUOTE")	{yyreturn(QUOTE); System.out.println("current token: " + "QUOTE"); }
("forall"|"FORALL")	{yyreturn(FORALL); System.out.println("current token: " + "FORALL"); }
("exists"|"EXISTS")	{yyreturn(EXISTS); System.out.println("current token: " + "EXISTS"); }
("and"|"AND")		{yyreturn(AND); System.out.println("current token: " + "AND"); }
("or"|"OR")		{yyreturn(OR); System.out.println("current token: " + "OR"); }
("not"|"NOT")		{yyreturn(NOT); System.out.println("current token: " + "NOT"); }
("if"|"IF")		{yyreturn(IF); System.out.println("current token: " + "IF"); }
("cond"|"COND")		{yyreturn(COND); System.out.println("current token: " + "COND"); }
("listof"|"LISTOF")	{yyreturn(LISTOF);} System.out.println("current token: " + "LISTOF"); 	
("defobject"|"DEFOBJECT")	{yyreturn(DEFOBJECT);} System.out.println("current token: " + "DEFOBJECT"); 	
("deffunction"|"DEFFUNCTION")	{yyreturn(DEFFUNCTION);} System.out.println("current token: " + "DEFFUNCTION"); 	
("defrelation"|"DEFRELATION")	{yyreturn(DEFRELATION);}  System.out.println("current token: " + "DEFRELATION");  
("deflogical"|"DEFLOGICAL")	{yyreturn(DEFLOGICAL);}  System.out.println("current token: " + "DEFLOGICAL");  
{constant}		{yyreturn(CONSTANT); System.out.println("current token: " + "CONSTANT"); }

%%


@TOKENTYPES@
