type token = | LAMBDA of (Support.Error.info) | UCID of (string Support.Error.withinfo) | LCID of (string Support.Error.withinfo) | INTV of (int Support.Error.withinfo) | FLOATV of (float Support.Error.withinfo) | STRINGV of (string Support.Error.withinfo) | APOSTROPHE of (Support.Error.info) | DQUOTE of (Support.Error.info) | ARROW of (Support.Error.info) | BANG of (Support.Error.info) | BARGT of (Support.Error.info) | BARRCURLY of (Support.Error.info) | BARRSQUARE of (Support.Error.info) | COLON of (Support.Error.info) | COLONCOLON of (Support.Error.info) | COLONEQ of (Support.Error.info) | COLONHASH of (Support.Error.info) | COMMA of (Support.Error.info) | DARROW of (Support.Error.info) | DDARROW of (Support.Error.info) | DOT of (Support.Error.info) | EOF of (Support.Error.info) | EQ of (Support.Error.info) | EQEQ of (Support.Error.info) | EXISTS of (Support.Error.info) | GT of (Support.Error.info) | HASH of (Support.Error.info) | LCURLY of (Support.Error.info) | LCURLYBAR of (Support.Error.info) | LEFTARROW of (Support.Error.info) | LPAREN of (Support.Error.info) | LSQUARE of (Support.Error.info) | LSQUAREBAR of (Support.Error.info) | LT of (Support.Error.info) | RCURLY of (Support.Error.info) | RPAREN of (Support.Error.info) | RSQUARE of (Support.Error.info) | SEMI of (Support.Error.info) | SLASH of (Support.Error.info) | STAR of (Support.Error.info) | TRIANGLE of (Support.Error.info) | USCORE of (Support.Error.info) | VBAR of (Support.Error.info) open Parsing;; # 7 "parser.mly" open Support.Error open Support.Pervasive open Syntax # 52 "parser.ml" let yytransl_const = [| 0|] let yytransl_block = [| 257 (* LAMBDA *); 258 (* UCID *); 259 (* LCID *); 260 (* INTV *); 261 (* FLOATV *); 262 (* STRINGV *); 263 (* APOSTROPHE *); 264 (* DQUOTE *); 265 (* ARROW *); 266 (* BANG *); 267 (* BARGT *); 268 (* BARRCURLY *); 269 (* BARRSQUARE *); 270 (* COLON *); 271 (* COLONCOLON *); 272 (* COLONEQ *); 273 (* COLONHASH *); 274 (* COMMA *); 275 (* DARROW *); 276 (* DDARROW *); 277 (* DOT *); 0 (* EOF *); 278 (* EQ *); 279 (* EQEQ *); 280 (* EXISTS *); 281 (* GT *); 282 (* HASH *); 283 (* LCURLY *); 284 (* LCURLYBAR *); 285 (* LEFTARROW *); 286 (* LPAREN *); 287 (* LSQUARE *); 288 (* LSQUAREBAR *); 289 (* LT *); 290 (* RCURLY *); 291 (* RPAREN *); 292 (* RSQUARE *); 293 (* SEMI *); 294 (* SLASH *); 295 (* STAR *); 296 (* TRIANGLE *); 297 (* USCORE *); 298 (* VBAR *); 0|] let yylhs = "\255\255\ \001\000\001\000\002\000\002\000\004\000\003\000\003\000\003\000\ \005\000\005\000\006\000\006\000\000\000" let yylen = "\002\000\ \001\000\003\000\001\000\002\000\001\000\001\000\004\000\004\000\ \001\000\002\000\003\000\001\000\002\000" let yydefred = "\000\000\ \000\000\000\000\000\000\000\000\001\000\000\000\013\000\000\000\ \003\000\000\000\009\000\000\000\000\000\005\000\004\000\012\000\ \000\000\000\000\010\000\000\000\000\000\011\000\002\000\007\000\ \008\000" let yydgoto = "\002\000\ \007\000\008\000\009\000\015\000\010\000\011\000" let yysindex = "\005\000\ \001\000\000\000\253\254\229\254\000\000\002\255\000\000\231\254\ \000\000\001\255\000\000\245\254\248\254\000\000\000\000\000\000\ \235\254\001\000\000\000\002\255\002\255\000\000\000\000\000\000\ \000\000" let yyrindex = "\000\000\ \000\000\000\000\000\000\255\254\000\000\000\000\000\000\000\000\ \000\000\228\254\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000" let yygindex = "\000\000\ \253\255\000\000\002\000\000\000\000\000\006\000" let yytablesize = 287 let yytable = "\012\000\ \005\000\012\000\003\000\016\000\016\000\001\000\006\000\017\000\ \006\000\020\000\014\000\018\000\021\000\022\000\023\000\019\000\ \000\000\000\000\000\000\000\000\000\000\024\000\025\000\000\000\ \000\000\000\000\000\000\000\000\012\000\000\000\006\000\006\000\ \000\000\000\000\000\000\012\000\000\000\013\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\003\000\000\000\004\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\006\000" let yycheck = "\003\001\ \000\000\003\001\001\001\003\001\003\001\001\000\035\001\006\000\ \037\001\021\001\038\001\037\001\021\001\035\001\018\000\010\000\ \255\255\255\255\255\255\255\255\255\255\020\000\021\000\255\255\ \255\255\255\255\255\255\255\255\030\001\255\255\030\001\030\001\ \255\255\255\255\255\255\037\001\255\255\041\001\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\001\001\255\255\003\001\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\030\001" let yynames_const = "\ " let yynames_block = "\ LAMBDA\000\ UCID\000\ LCID\000\ INTV\000\ FLOATV\000\ STRINGV\000\ APOSTROPHE\000\ DQUOTE\000\ ARROW\000\ BANG\000\ BARGT\000\ BARRCURLY\000\ BARRSQUARE\000\ COLON\000\ COLONCOLON\000\ COLONEQ\000\ COLONHASH\000\ COMMA\000\ DARROW\000\ DDARROW\000\ DOT\000\ EOF\000\ EQ\000\ EQEQ\000\ EXISTS\000\ GT\000\ HASH\000\ LCURLY\000\ LCURLYBAR\000\ LEFTARROW\000\ LPAREN\000\ LSQUARE\000\ LSQUAREBAR\000\ LT\000\ RCURLY\000\ RPAREN\000\ RSQUARE\000\ SEMI\000\ SLASH\000\ STAR\000\ TRIANGLE\000\ USCORE\000\ VBAR\000\ " let yyact = [| (fun _ -> failwith "parser") ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : Support.Error.info) in Obj.repr( # 100 "parser.mly" ( fun ctx -> [],ctx ) # 267 "parser.ml" : Syntax.context -> (Syntax.command list * Syntax.context) )) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 2 : 'Command) in let _2 = (Parsing.peek_val __caml_parser_env 1 : Support.Error.info) in let _3 = (Parsing.peek_val __caml_parser_env 0 : Syntax.context -> (Syntax.command list * Syntax.context) ) in Obj.repr( # 102 "parser.mly" ( fun ctx -> let cmd,ctx = _1 ctx in let cmds,ctx = _3 ctx in cmd::cmds,ctx ) # 279 "parser.ml" : Syntax.context -> (Syntax.command list * Syntax.context) )) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : 'Term) in Obj.repr( # 110 "parser.mly" ( fun ctx -> (let t = _1 ctx in Eval(tmInfo t,t)),ctx ) # 286 "parser.ml" : 'Command)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 1 : string Support.Error.withinfo) in let _2 = (Parsing.peek_val __caml_parser_env 0 : 'Binder) in Obj.repr( # 112 "parser.mly" ( fun ctx -> ((Bind(_1.i,_1.v,_2 ctx)), addname ctx _1.v) ) # 294 "parser.ml" : 'Command)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : Support.Error.info) in Obj.repr( # 117 "parser.mly" ( fun ctx -> NameBind ) # 301 "parser.ml" : 'Binder)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : 'AppTerm) in Obj.repr( # 121 "parser.mly" ( _1 ) # 308 "parser.ml" : 'Term)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 3 : Support.Error.info) in let _2 = (Parsing.peek_val __caml_parser_env 2 : string Support.Error.withinfo) in let _3 = (Parsing.peek_val __caml_parser_env 1 : Support.Error.info) in let _4 = (Parsing.peek_val __caml_parser_env 0 : 'Term) in Obj.repr( # 123 "parser.mly" ( fun ctx -> let ctx1 = addname ctx _2.v in TmAbs(_1, _2.v, _4 ctx1) ) # 320 "parser.ml" : 'Term)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 3 : Support.Error.info) in let _2 = (Parsing.peek_val __caml_parser_env 2 : Support.Error.info) in let _3 = (Parsing.peek_val __caml_parser_env 1 : Support.Error.info) in let _4 = (Parsing.peek_val __caml_parser_env 0 : 'Term) in Obj.repr( # 127 "parser.mly" ( fun ctx -> let ctx1 = addname ctx "_" in TmAbs(_1, "_", _4 ctx1) ) # 332 "parser.ml" : 'Term)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : 'ATerm) in Obj.repr( # 133 "parser.mly" ( _1 ) # 339 "parser.ml" : 'AppTerm)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 1 : 'AppTerm) in let _2 = (Parsing.peek_val __caml_parser_env 0 : 'ATerm) in Obj.repr( # 135 "parser.mly" ( fun ctx -> let e1 = _1 ctx in let e2 = _2 ctx in TmApp(tmInfo e1,e1,e2) ) # 350 "parser.ml" : 'AppTerm)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 2 : Support.Error.info) in let _2 = (Parsing.peek_val __caml_parser_env 1 : 'Term) in let _3 = (Parsing.peek_val __caml_parser_env 0 : Support.Error.info) in Obj.repr( # 143 "parser.mly" ( _2 ) # 359 "parser.ml" : 'ATerm)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : string Support.Error.withinfo) in Obj.repr( # 145 "parser.mly" ( fun ctx -> TmVar(_1.i, name2index _1.i ctx _1.v, ctxlength ctx) ) # 367 "parser.ml" : 'ATerm)) (* Entry toplevel *) ; (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 toplevel (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) = (Parsing.yyparse yytables 1 lexfun lexbuf : Syntax.context -> (Syntax.command list * Syntax.context) )