X-Git-Url: https://git.kianting.info/?a=blobdiff_plain;f=ocaml_yacc%2Fparser.ml;fp=ocaml_yacc%2Fparser.ml;h=0000000000000000000000000000000000000000;hb=a788ad367540fe853285fe83428d4fe7b2a82309;hp=9337a959bd71796c076ac6897cdb8ee3d8f90c03;hpb=dc89f114ae00fcae1f8cd0bb5eae9977f15c3582;p=uann diff --git a/ocaml_yacc/parser.ml b/ocaml_yacc/parser.ml deleted file mode 100644 index 9337a95..0000000 --- a/ocaml_yacc/parser.ml +++ /dev/null @@ -1,327 +0,0 @@ -type token = - | INT of (string) - | ID of (string) - | PLUS - | MINUS - | TIMES - | DIV - | LPAREN - | RPAREN - | ASSIGN - | IN - | IMPLY - | FUNC - | EOL - -open Parsing;; -let _ = parse_error;; -let yytransl_const = [| - 259 (* PLUS *); - 260 (* MINUS *); - 261 (* TIMES *); - 262 (* DIV *); - 263 (* LPAREN *); - 264 (* RPAREN *); - 265 (* ASSIGN *); - 266 (* IN *); - 267 (* IMPLY *); - 268 (* FUNC *); - 269 (* EOL *); - 0|] - -let yytransl_block = [| - 257 (* INT *); - 258 (* ID *); - 0|] - -let yylhs = "\255\255\ -\001\000\002\000\002\000\003\000\003\000\005\000\006\000\006\000\ -\004\000\004\000\004\000\009\000\010\000\007\000\008\000\008\000\ -\008\000\008\000\008\000\008\000\008\000\008\000\000\000" - -let yylen = "\002\000\ -\002\000\001\000\002\000\001\000\001\000\006\000\001\000\003\000\ -\001\000\001\000\001\000\003\000\002\000\002\000\001\000\001\000\ -\003\000\003\000\003\000\003\000\003\000\002\000\002\000" - -let yydefred = "\000\000\ -\000\000\000\000\015\000\000\000\000\000\000\000\023\000\000\000\ -\002\000\000\000\005\000\000\000\009\000\010\000\011\000\000\000\ -\000\000\000\000\000\000\001\000\003\000\000\000\000\000\000\000\ -\000\000\000\000\000\000\000\000\000\000\013\000\017\000\000\000\ -\000\000\000\000\000\000\000\000\007\000\000\000\012\000\000\000\ -\000\000\006\000" - -let yydgoto = "\002\000\ -\007\000\008\000\009\000\026\000\011\000\018\000\013\000\014\000\ -\015\000\016\000" - -let yysindex = "\007\000\ -\120\255\000\000\000\000\000\000\120\255\120\255\000\000\012\255\ -\000\000\106\255\000\000\001\255\000\000\000\000\000\000\245\254\ -\124\255\049\255\098\255\000\000\000\000\120\255\120\255\120\255\ -\120\255\106\255\009\255\024\255\120\255\000\000\000\000\113\255\ -\124\255\124\255\124\255\120\255\000\000\026\255\000\000\088\255\ -\120\255\000\000" - -let yyrindex = "\000\000\ -\000\000\000\000\000\000\042\255\000\000\000\000\000\000\000\000\ -\000\000\063\255\000\000\000\000\000\000\000\000\000\000\000\000\ -\028\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ -\000\000\074\255\050\255\000\000\000\000\000\000\000\000\007\255\ -\053\255\064\255\075\255\000\000\000\000\052\255\000\000\000\000\ -\000\000\000\000" - -let yygindex = "\000\000\ -\000\000\000\000\254\255\255\255\000\000\001\000\000\000\000\000\ -\000\000\000\000" - -let yytablesize = 131 -let yytable = "\010\000\ -\029\000\012\000\027\000\017\000\019\000\021\000\010\000\001\000\ -\012\000\018\000\018\000\028\000\003\000\004\000\018\000\005\000\ -\018\000\036\000\006\000\018\000\032\000\033\000\034\000\035\000\ -\020\000\037\000\039\000\010\000\038\000\012\000\022\000\022\000\ -\022\000\022\000\040\000\022\000\028\000\022\000\042\000\010\000\ -\022\000\012\000\016\000\007\000\016\000\016\000\016\000\016\000\ -\016\000\016\000\030\000\016\000\007\000\008\000\016\000\019\000\ -\019\000\022\000\022\000\028\000\019\000\013\000\019\000\000\000\ -\000\000\019\000\020\000\020\000\020\000\020\000\004\000\020\000\ -\004\000\020\000\000\000\004\000\020\000\021\000\021\000\021\000\ -\021\000\014\000\021\000\014\000\021\000\000\000\014\000\021\000\ -\003\000\004\000\022\000\023\000\024\000\025\000\006\000\000\000\ -\000\000\041\000\003\000\004\000\022\000\023\000\024\000\025\000\ -\006\000\031\000\003\000\004\000\022\000\023\000\024\000\025\000\ -\006\000\003\000\004\000\000\000\000\000\024\000\025\000\006\000\ -\003\000\004\000\000\000\005\000\003\000\004\000\006\000\000\000\ -\000\000\000\000\006\000" - -let yycheck = "\001\000\ -\012\001\001\000\002\001\005\000\006\000\008\000\008\000\001\000\ -\008\000\003\001\004\001\011\001\001\001\002\001\008\001\004\001\ -\010\001\009\001\007\001\013\001\022\000\023\000\024\000\025\000\ -\013\001\002\001\029\000\029\000\028\000\029\000\003\001\004\001\ -\005\001\006\001\036\000\008\001\011\001\010\001\041\000\041\000\ -\013\001\041\000\001\001\002\001\003\001\004\001\005\001\006\001\ -\007\001\008\001\002\001\010\001\011\001\002\001\013\001\003\001\ -\004\001\005\001\006\001\011\001\008\001\012\001\010\001\255\255\ -\255\255\013\001\003\001\004\001\005\001\006\001\008\001\008\001\ -\010\001\010\001\255\255\013\001\013\001\003\001\004\001\005\001\ -\006\001\008\001\008\001\010\001\010\001\255\255\013\001\013\001\ -\001\001\002\001\003\001\004\001\005\001\006\001\007\001\255\255\ -\255\255\010\001\001\001\002\001\003\001\004\001\005\001\006\001\ -\007\001\008\001\001\001\002\001\003\001\004\001\005\001\006\001\ -\007\001\001\001\002\001\255\255\255\255\005\001\006\001\007\001\ -\001\001\002\001\255\255\004\001\001\001\002\001\007\001\255\255\ -\255\255\255\255\007\001" - -let yynames_const = "\ - PLUS\000\ - MINUS\000\ - TIMES\000\ - DIV\000\ - LPAREN\000\ - RPAREN\000\ - ASSIGN\000\ - IN\000\ - IMPLY\000\ - FUNC\000\ - EOL\000\ - " - -let yynames_block = "\ - INT\000\ - ID\000\ - " - -let yyact = [| - (fun _ -> failwith "parser") -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'blocks) in - Obj.repr( -# 15 "parser.mly" - ( _1 ) -# 145 "parser.ml" - : Ast.ast)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'block) in - Obj.repr( -# 18 "parser.mly" - ( _1 ) -# 152 "parser.ml" - : 'blocks)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'blocks) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'block) in - Obj.repr( -# 19 "parser.mly" - (match _1 with Ast.Node x -> Ast.Node (x @ [_2]) - | Ast.Int x -> Ast.Node[_1; _2] | Ast.Leaf x -> Ast.Node [_1; _2]) -# 161 "parser.ml" - : 'blocks)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 24 "parser.mly" - (_1) -# 168 "parser.ml" - : 'block)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'let_bind) in - Obj.repr( -# 25 "parser.mly" - (_1) -# 175 "parser.ml" - : 'block)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 5 : 'typ) in - let _2 = (Parsing.peek_val __caml_parser_env 4 : string) in - let _4 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _6 = (Parsing.peek_val __caml_parser_env 0 : 'block) in - Obj.repr( -# 29 "parser.mly" - (Ast.Node [Ast.Leaf "%let"; Ast.Node[_1; Ast.Leaf _2; _4]; _6]) -# 185 "parser.ml" - : 'let_bind)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 33 "parser.mly" - (Ast.Leaf _1) -# 192 "parser.ml" - : 'typ)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'typ) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'typ) in - Obj.repr( -# 34 "parser.mly" - (Ast.Node [Ast.Leaf "->"; _1 ; _3]) -# 200 "parser.ml" - : 'typ)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'app_expr) in - Obj.repr( -# 37 "parser.mly" - (_1) -# 207 "parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'bin_expr) in - Obj.repr( -# 38 "parser.mly" - (_1) -# 214 "parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : 'lam_expr) in - Obj.repr( -# 39 "parser.mly" - (_1) -# 221 "parser.ml" - : 'expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'arg) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'block) in - Obj.repr( -# 43 "parser.mly" - (Ast.Node [Ast.Leaf "%lambda"; _1 ; _3]) -# 229 "parser.ml" - : 'lam_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'typ) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 46 "parser.mly" - ( Ast.Node [_1;Ast.Leaf _2] ) -# 237 "parser.ml" - : 'arg)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 50 "parser.mly" - ( Ast.Node [ Ast.Leaf "%apply"; _1; _2] ) -# 245 "parser.ml" - : 'app_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 54 "parser.mly" - ( Ast.Int (int_of_string _1)) -# 252 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in - Obj.repr( -# 55 "parser.mly" - ( Ast.Leaf _1 ) -# 259 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 1 : 'expr) in - Obj.repr( -# 56 "parser.mly" - ( _2 ) -# 266 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 57 "parser.mly" - ( Ast.Node [ Ast.Leaf "+"; _1; _3] ) -# 274 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 58 "parser.mly" - ( Ast.Node[ Ast.Leaf "-"; _1 ; _3] ) -# 282 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 59 "parser.mly" - ( Ast.Node[ Ast.Leaf "*"; _1 ;_3] ) -# 290 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _1 = (Parsing.peek_val __caml_parser_env 2 : 'expr) in - let _3 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 60 "parser.mly" - ( Ast.Node[ Ast.Leaf "/"; _1; _3] ) -# 298 "parser.ml" - : 'bin_expr)) -; (fun __caml_parser_env -> - let _2 = (Parsing.peek_val __caml_parser_env 0 : 'expr) in - Obj.repr( -# 61 "parser.mly" - ( Ast.Node[ Ast.Leaf "-" ; _2] ) -# 305 "parser.ml" - : 'bin_expr)) -(* Entry main *) -; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0))) -|] -let yytables = - { Parsing.actions=yyact; - Parsing.transl_const=yytransl_const; - Parsing.transl_block=yytransl_block; - Parsing.lhs=yylhs; - Parsing.len=yylen; - Parsing.defred=yydefred; - Parsing.dgoto=yydgoto; - Parsing.sindex=yysindex; - Parsing.rindex=yyrindex; - Parsing.gindex=yygindex; - Parsing.tablesize=yytablesize; - Parsing.table=yytable; - Parsing.check=yycheck; - Parsing.error_function=parse_error; - Parsing.names_const=yynames_const; - Parsing.names_block=yynames_block } -let main (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = - (Parsing.yyparse yytables 1 lexfun lexbuf : Ast.ast)