%%
[ \t\n]
+= return ASSIGN;
+; return SEMICOLON;
(\\|λ) return LAMBDA;
\. return DOT;
\( return OBRACE;
\) return CBRACE;
-I return I;
-K return K;
-S return S;
-F return F;
-T return T;
-[a-zA-Z]+ yylval = make_ident(strdup(yytext)); return IDENT;
+\! return BANG;
+true yylval = make_bool(true); return LITERAL;
+false yylval = make_bool(false); return LITERAL;
+[0-9]+ yylval = make_numeral(atoi(yytext)); return LITERAL;
+[a-z]+ yylval = make_ident(yytext); return IDENT;
+[A-Z]+ yylval = make_ident(yytext); return FUNC;
%%