281 lines
12 KiB
OCaml
281 lines
12 KiB
OCaml
# 2 "lexer.mll"
|
|
|
|
open Parser(* The type token is defined in parser.mli *)
|
|
exception Eof
|
|
|
|
# 7 "lexer.ml"
|
|
let __ocaml_lex_tables = {
|
|
Lexing.lex_base =
|
|
"\000\000\240\255\000\000\244\255\245\255\246\255\247\255\001\000\
|
|
\249\255\075\000\085\000\160\000\254\255\255\255\235\000\054\001\
|
|
\243\255\242\255";
|
|
Lexing.lex_backtrk =
|
|
"\255\255\255\255\014\000\255\255\255\255\255\255\255\255\007\000\
|
|
\255\255\005\000\003\000\003\000\255\255\255\255\004\000\002\000\
|
|
\255\255\255\255";
|
|
Lexing.lex_default =
|
|
"\255\255\000\000\255\255\000\000\000\000\000\000\000\000\255\255\
|
|
\000\000\255\255\255\255\255\255\000\000\000\000\255\255\255\255\
|
|
\000\000\000\000";
|
|
Lexing.lex_trans =
|
|
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\013\000\012\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\004\000\003\000\006\000\008\000\000\000\007\000\000\000\005\000\
|
|
\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
|
|
\009\000\009\000\000\000\000\000\000\000\002\000\017\000\016\000\
|
|
\000\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\000\000\000\000\000\000\000\000\010\000\
|
|
\000\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\011\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\009\000\009\000\009\000\009\000\009\000\
|
|
\009\000\009\000\009\000\009\000\009\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\000\000\000\000\000\000\000\000\014\000\000\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\000\000\000\000\000\000\000\000\014\000\
|
|
\001\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\015\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\000\000\000\000\
|
|
\000\000\000\000\014\000\000\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\000\000\000\000\000\000\000\000\014\000\000\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000";
|
|
Lexing.lex_check =
|
|
"\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\000\000\000\000\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\000\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\000\000\000\000\000\000\000\000\255\255\000\000\255\255\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\255\255\255\255\255\255\000\000\002\000\007\000\
|
|
\255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\255\255\255\255\255\255\255\255\000\000\
|
|
\255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
|
\000\000\000\000\000\000\009\000\009\000\009\000\009\000\009\000\
|
|
\009\000\009\000\009\000\009\000\009\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\255\255\255\255\255\255\255\255\010\000\255\255\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
|
|
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\011\000\255\255\255\255\255\255\255\255\011\000\
|
|
\000\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
|
|
\011\000\011\000\011\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\255\255\255\255\
|
|
\255\255\255\255\014\000\255\255\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
|
|
\014\000\014\000\014\000\014\000\014\000\014\000\015\000\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\015\000\255\255\255\255\255\255\255\255\015\000\255\255\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
|
|
\015\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
|
\255\255\255\255\255\255\255\255\255\255\255\255\255\255";
|
|
Lexing.lex_base_code =
|
|
"";
|
|
Lexing.lex_backtrk_code =
|
|
"";
|
|
Lexing.lex_default_code =
|
|
"";
|
|
Lexing.lex_trans_code =
|
|
"";
|
|
Lexing.lex_check_code =
|
|
"";
|
|
Lexing.lex_code =
|
|
"";
|
|
}
|
|
|
|
let rec token lexbuf =
|
|
__ocaml_lex_token_rec lexbuf 0
|
|
and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
|
|
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
|
|
| 0 ->
|
|
# 7 "lexer.mll"
|
|
( token lexbuf )
|
|
# 186 "lexer.ml"
|
|
|
|
| 1 ->
|
|
# 8 "lexer.mll"
|
|
( EOL )
|
|
# 191 "lexer.ml"
|
|
|
|
| 2 ->
|
|
# 9 "lexer.mll"
|
|
( IN )
|
|
# 196 "lexer.ml"
|
|
|
|
| 3 ->
|
|
let
|
|
# 10 "lexer.mll"
|
|
lxm
|
|
# 202 "lexer.ml"
|
|
= Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in
|
|
# 10 "lexer.mll"
|
|
( ID((String.make 1 lxm)) )
|
|
# 206 "lexer.ml"
|
|
|
|
| 4 ->
|
|
let
|
|
# 11 "lexer.mll"
|
|
lxm
|
|
# 212 "lexer.ml"
|
|
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
|
|
# 11 "lexer.mll"
|
|
( ID(lxm) )
|
|
# 216 "lexer.ml"
|
|
|
|
| 5 ->
|
|
let
|
|
# 12 "lexer.mll"
|
|
lxm
|
|
# 222 "lexer.ml"
|
|
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
|
|
# 12 "lexer.mll"
|
|
( INT(lxm) )
|
|
# 226 "lexer.ml"
|
|
|
|
| 6 ->
|
|
# 13 "lexer.mll"
|
|
( PLUS )
|
|
# 231 "lexer.ml"
|
|
|
|
| 7 ->
|
|
# 14 "lexer.mll"
|
|
( MINUS )
|
|
# 236 "lexer.ml"
|
|
|
|
| 8 ->
|
|
# 15 "lexer.mll"
|
|
( TIMES )
|
|
# 241 "lexer.ml"
|
|
|
|
| 9 ->
|
|
# 16 "lexer.mll"
|
|
( DIV )
|
|
# 246 "lexer.ml"
|
|
|
|
| 10 ->
|
|
# 17 "lexer.mll"
|
|
( LPAREN )
|
|
# 251 "lexer.ml"
|
|
|
|
| 11 ->
|
|
# 18 "lexer.mll"
|
|
( RPAREN )
|
|
# 256 "lexer.ml"
|
|
|
|
| 12 ->
|
|
# 19 "lexer.mll"
|
|
( IMPLY )
|
|
# 261 "lexer.ml"
|
|
|
|
| 13 ->
|
|
# 20 "lexer.mll"
|
|
( FUNC )
|
|
# 266 "lexer.ml"
|
|
|
|
| 14 ->
|
|
# 21 "lexer.mll"
|
|
( ASSIGN )
|
|
# 271 "lexer.ml"
|
|
|
|
| 15 ->
|
|
# 22 "lexer.mll"
|
|
( raise Eof )
|
|
# 276 "lexer.ml"
|
|
|
|
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
|
|
__ocaml_lex_token_rec lexbuf __ocaml_lex_state
|
|
|
|
;;
|
|
|