-
Notifications
You must be signed in to change notification settings - Fork 0
/
lexer.mll
executable file
·25 lines (24 loc) · 965 Bytes
/
lexer.mll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
open Parser;; (* le type "token" est défini dans parser.mli *)
(* ce n'est pas à vous d'écrire ce fichier, il est engendré automatiquement *)
exception Eof;;
}
rule token = parse (* la "fonction" aussi s'appelle token .. *)
| [' ' '\t'] { token lexbuf } (* on saute les blancs et les tabulations *)
(* token: appel récursif *)
(* lexbuf: argument implicite
associé au tampon où sont
lus les caractères *)
| '\n' { EOL }
| "/\\" { CONJ }
| "\\/" { DISJ }
| "0" { EOL}
| 'X' { XOR }
| "=>" { IMPL }
| "<=>" { EQUIV }
| '-' { VNOT }
| '~' { NOT }
| '(' { LPAREN }
| ')' { RPAREN }
| ['0'-'9']+ as s { INT (int_of_string s) }
| eof { raise Eof }