type token = | CHAR of (int) | IDENT of (string) | LET | EQ | END_OF_LET | RBRACKET | PIPE | LBRACKET | RANGE | EOF open Parsing;; let yytransl_const = [| 259 (* LET *); 260 (* EQ *); 261 (* END_OF_LET *); 262 (* RBRACKET *); 263 (* PIPE *); 264 (* LBRACKET *); 265 (* RANGE *); 0 (* EOF *); 0|] let yytransl_block = [| 257 (* CHAR *); 258 (* IDENT *); 0|] let yylhs = "\255\255\ \001\000\001\000\002\000\003\000\003\000\004\000\004\000\004\000\ \000\000" let yylen = "\002\000\ \001\000\002\000\005\000\003\000\001\000\001\000\005\000\001\000\ \002\000" let yydefred = "\000\000\ \000\000\000\000\000\000\001\000\009\000\000\000\000\000\002\000\ \000\000\006\000\008\000\000\000\000\000\000\000\000\000\003\000\ \000\000\000\000\004\000\000\000\007\000" let yydgoto = "\002\000\ \005\000\006\000\013\000\014\000" let yysindex = "\255\255\ \001\000\000\000\002\255\000\000\000\000\001\000\003\255\000\000\ \001\255\000\000\000\000\004\255\005\255\255\254\006\255\000\000\ \001\255\007\255\000\000\008\255\000\000" let yyrindex = "\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\011\255\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000" let yygindex = "\000\000\ \005\000\000\000\251\255\000\000" let yytablesize = 260 let yytable = "\001\000\ \004\000\010\000\011\000\007\000\015\000\017\000\009\000\020\000\ \012\000\016\000\008\000\019\000\000\000\021\000\018\000\005\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\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" let yycheck = "\001\000\ \000\000\001\001\002\001\002\001\001\001\007\001\004\001\001\001\ \008\001\005\001\006\000\017\000\255\255\006\001\009\001\005\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\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\003\001" let yynames_const = "\ LET\000\ EQ\000\ END_OF_LET\000\ RBRACKET\000\ PIPE\000\ LBRACKET\000\ RANGE\000\ EOF\000\ " let yynames_block = "\ CHAR\000\ IDENT\000\ " let yyact = [| (fun _ -> failwith "parser") ; (fun __caml_parser_env -> Obj.repr( # 27 "uni_parser.mly" ( [] ) # 153 "uni_parser.ml" : Uni_types.definition list)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 1 : 'declaration) in let _2 = (Parsing.peek_val __caml_parser_env 0 : Uni_types.definition list) in Obj.repr( # 28 "uni_parser.mly" ( _1::_2 ) # 161 "uni_parser.ml" : Uni_types.definition list)) ; (fun __caml_parser_env -> let _2 = (Parsing.peek_val __caml_parser_env 3 : string) in let _4 = (Parsing.peek_val __caml_parser_env 1 : 'regexp) in Obj.repr( # 33 "uni_parser.mly" ( { Uni_types.id = _2 ; Uni_types.rel = _4 } ) # 169 "uni_parser.ml" : 'declaration)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 2 : 'regexptoken) in let _3 = (Parsing.peek_val __caml_parser_env 0 : 'regexp) in Obj.repr( # 37 "uni_parser.mly" ( _1::_3 ) # 177 "uni_parser.ml" : 'regexp)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : 'regexptoken) in Obj.repr( # 38 "uni_parser.mly" ( [_1] ) # 184 "uni_parser.ml" : 'regexp)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : int) in Obj.repr( # 42 "uni_parser.mly" ( Uni_types.Char _1 ) # 191 "uni_parser.ml" : 'regexptoken)) ; (fun __caml_parser_env -> let _2 = (Parsing.peek_val __caml_parser_env 3 : int) in let _4 = (Parsing.peek_val __caml_parser_env 1 : int) in Obj.repr( # 43 "uni_parser.mly" ( Uni_types.Interval (_2,_4) ) # 199 "uni_parser.ml" : 'regexptoken)) ; (fun __caml_parser_env -> let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in Obj.repr( # 44 "uni_parser.mly" ( Uni_types.Identifier _1 ) # 206 "uni_parser.ml" : 'regexptoken)) (* 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 : Uni_types.definition list)