real [-0-9][0-9]*\.[0-9]+
integer [-0-9][0-9]*
string \"[^"\n]*\"
-identifier [a-zA-Z][.a-zA-Z0-9]*
+identifier [a-zA-Z][-.a-zA-Z0-9]*
bool ([tT][rR][uU][eE]|[fF][aA][lL][sS][eE]|[yY][eE][sS]|[nN][oO]|[oO][nN]|[oO][fF][fF])
%%
}
{identifier} { yylval.identifier = g_strdup(yytext); return IDENTIFIER; }
[{}()\[\]=,] { yylval.character = *yytext; return *yytext; }
-\n { yylval.character = *yytext; ++yylineno; return *yytext; }
+\n { yylval.character = *yytext; return *yytext; }
. { return INVALID; }
%%