{ open Parser exception Eof } let var_id = ['A'-'Z'] ['0'-'9']* let func_id = ['a'-'z' '0'-'9']+ let space = [' ' '\t']+ let newline = '\r' | '\n' | "\r\n" rule read = parse | var_id { VAR (Lexing.lexeme lexbuf) } | func_id { SYM (Lexing.lexeme lexbuf) } | '(' { LEFT_PAR } | ')' { RIGHT_PAR } | ',' { COMMA } | '[' { LEFT_BRACK } | ']' { RIGHT_BRACK } | '{' { LEFT_BRACE } | '}' { RIGHT_BRACE } | '+' { PLUS } | '-' { MINUS } | "|-" { VDASH } | '.' { DOT } | space { read lexbuf } | newline { read lexbuf } | eof { exit 0 }