X-Git-Url: https://git.kianting.info/?a=blobdiff_plain;f=ocaml_yacc%2Flexer.ml;fp=ocaml_yacc%2Flexer.ml;h=6f9f5bb9b1bfd322ea0e25c65f7bcae7f8752a8c;hb=1ea8dfd99517fdfe98c81aa206ad2615c1113426;hp=0000000000000000000000000000000000000000;hpb=c2cab771be8b40c091556c7df314b6a5abbe366e;p=uann diff --git a/ocaml_yacc/lexer.ml b/ocaml_yacc/lexer.ml new file mode 100644 index 0000000..6f9f5bb --- /dev/null +++ b/ocaml_yacc/lexer.ml @@ -0,0 +1,281 @@ +# 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 + +;; +