{ #open "parser";; (* parser.mli ge'ne're' automatiquement par yacc *) } rule Token = parse [` ` `\t` `\n`] { Token lexbuf } (* skip blanks *) | [`0`-`9`]+ { INT(int_of_string (get_lexeme lexbuf)) } | `+` { PLUS } | `-` { MINUS } | `*` { TIMES } | `/` { DIV } | `(` { LPAREN } | `)` { RPAREN } | eof { raise End_of_file } | ";;" { FIN } | "let" { LET } | "letrec" { LETREC } | `=` { EQUAL } | "fun" { FUN } | "in" { IN } | "->" { IS } | "ifz" { IFZ } | "then" { THEN } | "else" { ELSE } | [`a`-`z``A`-`Z`][`a`-`z``A`-`Z``0`-`9`]* { VAR(get_lexeme lexbuf) } ;;