/* milly's Flex grammar */ %{ #include "parser.tab.h" int yywrap(); %} DIGIT [0-9] IDENT_START [a-zA-Z_?*+!/=]|"-" IDENT_CONT {IDENT_START}|{DIGIT} ESCAPED \\[nt"\\] STRING_CHAR {ESCAPED}|[[:print:]]{-}["\\] %% "true" { return TRUE; } "false" { return FALSE; } "case" { return CASE; } "let" { return LET; } "in" { return IN; } "match" { return MATCH; } "of" { return OF; } "def" { return DEF; } "datatype" { return DATATYPE; } "alias" { return ALIAS; } "typecheck" { return TYPECHECK; } "->" { return ARROW; } "=" { return *yytext; } "\\" { return *yytext; } "(" { return *yytext; } ")" { return *yytext; } "[" { return *yytext; } "]" { return *yytext; } "{" { return *yytext; } "}" { return *yytext; } "," { return *yytext; } "|" { return *yytext; } ":" { return *yytext; } "<" { return *yytext; } ">" { return *yytext; } [ \t\n]+ ; #[^\n]* ; {IDENT_START}{IDENT_CONT}* { return IDENT; } '{IDENT_START}{IDENT_CONT}* { return PARAM_IDENT; } {DIGIT}+ { return INT; } \"{STRING_CHAR}*\" { return STRING; } %% int yywrap() { return 1; }