# 12 "save.mll" open Lexing open Misc let header = "$Id: save.mll,v 1.73 2006-08-02 19:09:05 maranget Exp $" let rec peek_next_char lb = let pos = lb.lex_curr_pos and len = lb.lex_buffer_len in if pos >= len then begin if lb.lex_eof_reached then raise Not_found else begin lb.refill_buff lb ; peek_next_char lb end end else lb.lex_buffer.[pos] let if_next_char c lb = try peek_next_char lb = c with | Not_found -> false let rec if_next_string s lb = if s = "" then true else let pos = lb.lex_curr_pos and len = lb.lex_buffer_len and slen = String.length s in if pos + slen - 1 >= len then begin if lb.lex_eof_reached then begin false end else begin lb.refill_buff lb ; if_next_string s lb end end else String.sub lb.lex_buffer pos slen = s let verbose = ref 0 and silent = ref false ;; let set_verbose s v = silent := s ; verbose := v ;; exception Error of string ;; exception Delim of string ;; let seen_par = ref false ;; let brace_nesting = ref 0 and arg_buff = Out.create_buff () and echo_buff = Out.create_buff () and tag_buff = Out.create_buff () ;; let echo = ref false ;; let get_echo () = echo := false ; Out.to_string echo_buff and start_echo () = echo := true ; Out.reset echo_buff and stop_echo () = echo := false ; Out.reset echo_buff ;; let empty_buffs () = brace_nesting := 0 ; Out.reset arg_buff ; echo := false ; Out.reset echo_buff ; Out.reset tag_buff ;; let error s = empty_buffs () ; raise (Error s) ;; let my_int_of_string s = try int_of_string s with Failure "int_of_string" -> error ("Integer argument expected: ``"^s^"''") exception Eof ;; exception LimitEof of Misc.limits option ;; exception NoOpt ;; let put_echo s = if !echo then Out.put echo_buff s and put_echo_char c = if !echo then Out.put_char echo_buff c and blit_echo lb = if !echo then Out.blit echo_buff lb ;; let put_both s = put_echo s ; Out.put arg_buff s ;; let blit_both lexbuf = blit_echo lexbuf ; Out.blit arg_buff lexbuf let put_both_char c = put_echo_char c ; Out.put_char arg_buff c ;; type kmp_t = Continue of int | Stop of string let rec kmp_char delim next i c = if i < 0 then begin Out.put_char arg_buff c ; Continue 0 end else if c = delim.[i] then begin if i >= String.length delim - 1 then Stop (Out.to_string arg_buff) else Continue (i+1) end else begin if next.(i) >= 0 then Out.put arg_buff (String.sub delim 0 (i-next.(i))) ; kmp_char delim next next.(i) c end # 134 "save.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\254\255\255\255\002\000\007\000\002\000\251\255\064\000\ \253\255\252\255\000\000\162\000\030\000\005\000\001\000\034\000\ \248\255\249\255\000\000\227\000\002\000\013\000\004\000\052\001\ \133\001\214\001\039\002\097\002\178\002\250\255\001\000\029\000\ \049\000\051\000\064\000\069\000\054\000\016\000\066\000\095\000\ \096\000\036\003\000\000\000\000\075\000\001\000\000\000\000\000\ \000\000\001\000\091\000\011\000\034\003\023\000\115\003\196\003\ \021\004\102\004\183\004\008\005\122\005\181\000\032\000\004\000\ \001\000\006\000\009\000\002\000\002\000\016\000\005\000\017\000\ \030\000\038\003\039\003\123\005\183\000\031\000\129\005\236\005\ \239\002\246\005\157\000\048\001\190\000\058\001\013\006\127\001\ \033\000\124\005\127\005\058\000\062\000\248\005\038\001\041\003\ \009\000\009\000\016\000\013\000\055\000\079\000\082\000\090\000\ \096\000\093\000\109\000\100\000\102\000\107\000\116\000\120\000\ \144\000\149\000\139\000\206\000\247\005\039\006\040\006\063\003\ \237\005\200\000\136\001\238\005\222\001\021\001\031\003\155\001\ \004\000\005\000\010\000\254\000\255\000\047\001\032\001\082\001\ \016\000\017\000\021\000\207\002\096\002\001\000\103\001\116\001\ \085\001\120\001\119\001\124\001\143\001\145\001\153\001\157\001\ \155\001\161\001\151\001\153\001\221\001\002\003\146\001\046\003\ \014\001\028\000\223\001\015\001\016\001"; Lexing.lex_backtrk = "\002\000\255\255\255\255\255\255\255\255\255\255\255\255\004\000\ \255\255\255\255\003\000\003\000\255\255\001\000\001\000\008\000\ \255\255\255\255\006\000\006\000\000\000\000\000\004\000\004\000\ \004\000\004\000\004\000\255\255\003\000\255\255\255\255\255\255\ \001\000\001\000\000\000\255\255\000\000\000\000\255\255\004\000\ \005\000\002\000\255\255\255\255\000\000\255\255\255\255\255\255\ \255\255\255\255\001\000\001\000\255\255\001\000\001\000\001\000\ \001\000\001\000\001\000\001\000\000\000\000\000\255\255\001\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \000\000\001\000\255\255\005\000\003\000\255\255\000\000\007\000\ \255\255\255\255\255\255\001\000\000\000\002\000\003\000\006\000\ \006\000\002\000\001\000\000\000\255\255\005\000\255\255\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\002\000\255\255\002\000\255\255\ \002\000\001\000\001\000\002\000\001\000\000\000\255\255\005\000\ \001\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\002\000\002\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\002\000\255\255\002\000\001\000\ \255\255\001\000\002\000\255\255\001\000"; Lexing.lex_default = "\255\255\000\000\000\000\255\255\255\255\006\000\000\000\009\000\ \000\000\000\000\255\255\255\255\008\000\255\255\255\255\017\000\ \000\000\000\000\255\255\006\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\009\000\255\255\000\000\002\000\031\000\ \255\255\255\255\255\255\255\255\255\255\255\255\039\000\039\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\001\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\001\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\078\000\255\255\077\000\078\000\255\255\ \017\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \006\000\090\000\090\000\255\255\092\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\ \001\000\255\255\255\255\001\000\255\255\125\000\029\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\008\000\008\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\008\000\255\255\255\255\ \002\000\255\255\002\000\002\000\002\000"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\004\000\003\000\003\000\020\000\004\000\013\000\003\000\ \004\000\003\000\013\000\000\000\004\000\000\000\021\000\000\000\ \000\000\037\000\021\000\000\000\000\000\037\000\000\000\000\000\ \004\000\000\000\003\000\001\000\000\000\013\000\002\000\004\000\ \013\000\001\000\009\000\021\000\020\000\021\000\006\000\021\000\ \037\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\032\000\002\000\035\000\034\000\032\000\036\000\ \035\000\001\000\021\000\036\000\091\000\018\000\129\000\008\000\ \002\000\034\000\034\000\008\000\009\000\034\000\035\000\034\000\ \006\000\032\000\035\000\035\000\044\000\044\000\036\000\130\000\ \044\000\002\000\091\000\002\000\042\000\002\000\007\000\008\000\ \034\000\048\000\002\000\045\000\050\000\035\000\050\000\052\000\ \050\000\064\000\066\000\044\000\067\000\049\000\047\000\065\000\ \069\000\070\000\071\000\037\000\046\000\068\000\072\000\109\000\ \103\000\099\000\100\000\050\000\063\000\002\000\019\000\001\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\011\000\002\000\010\000\001\000\040\000\255\255\ \101\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\255\255\008\000\002\000\061\000\001\000\ \076\000\076\000\061\000\102\000\076\000\001\000\104\000\084\000\ \084\000\105\000\106\000\084\000\009\000\085\000\085\000\085\000\ \085\000\085\000\085\000\085\000\085\000\061\000\107\000\076\000\ \108\000\008\000\255\255\008\000\255\255\008\000\084\000\110\000\ \111\000\112\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\011\000\113\000\114\000\115\000\ \001\000\001\000\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\002\000\002\000\255\255\ \008\000\255\255\016\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\002\000\022\000\ \255\255\009\000\009\000\001\000\023\000\024\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\006\000\255\255\ \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ \083\000\083\000\085\000\085\000\085\000\085\000\085\000\085\000\ \085\000\085\000\138\000\137\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\096\000\ \255\255\134\000\098\000\135\000\097\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\006\000\ \029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\ \002\000\002\000\136\000\143\000\150\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \145\000\146\000\144\000\255\255\147\000\148\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\025\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \006\000\002\000\132\000\149\000\002\000\151\000\152\000\131\000\ \153\000\133\000\154\000\155\000\001\000\002\000\001\000\001\000\ \255\255\000\000\000\000\000\000\000\000\255\255\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\026\000\023\000\ \023\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\ \001\000\002\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\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\002\000\027\000\000\000\000\000\000\000\000\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\141\000\000\000\000\000\000\000\ \000\000\000\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\009\000\002\000\000\000\001\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\001\000\000\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\002\000\000\000\000\000\ \000\000\000\000\087\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\044\000\044\000\074\000\ \074\000\044\000\095\000\074\000\074\000\000\000\095\000\002\000\ \002\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\044\000\127\000\074\000\074\000\ \119\000\095\000\000\000\088\000\119\000\000\000\002\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\128\000\000\000\000\000\158\000\119\000\ \009\000\255\255\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\001\000\053\000\000\000\ \042\000\000\000\000\000\054\000\054\000\055\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\001\000\002\000\043\000\ \000\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\000\000\009\000\ \000\000\000\000\000\000\000\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\001\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\009\000\000\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\017\000\ \000\000\000\000\255\255\000\000\000\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\056\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\001\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \000\000\000\000\000\000\000\000\000\000\000\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\057\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\000\000\000\000\000\000\000\000\000\000\000\000\058\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\000\000\000\000\000\000\000\000\000\000\000\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\059\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\001\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\000\000\000\000\000\000\000\000\000\000\ \000\000\054\000\054\000\054\000\054\000\060\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\061\000\076\000\076\000\091\000\061\000\ \076\000\255\255\255\255\255\255\000\000\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\061\000\076\000\091\000\000\000\000\000\255\255\ \077\000\255\255\000\000\000\000\001\000\000\000\255\255\008\000\ \000\000\000\000\000\000\000\000\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\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\000\000\000\000\000\000\ \000\000\000\000\000\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\084\000\084\000\255\255\ \006\000\084\000\255\255\000\000\000\000\000\000\255\255\000\000\ \117\000\095\000\000\000\000\000\117\000\095\000\000\000\000\000\ \000\000\000\000\000\000\000\000\084\000\000\000\081\000\000\000\ \122\000\255\255\000\000\082\000\000\000\000\000\000\000\117\000\ \095\000\000\000\000\000\000\000\083\000\083\000\083\000\083\000\ \083\000\083\000\083\000\083\000\083\000\083\000\086\000\086\000\ \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ \117\000\119\000\000\000\000\000\117\000\119\000\000\000\086\000\ \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ \086\000\086\000\086\000\086\000\086\000\086\000\086\000\117\000\ \119\000\121\000\124\000\000\000\080\000\000\000\086\000\086\000\ \086\000\086\000\086\000\086\000\094\000\002\000\000\000\086\000\ \086\000\086\000\086\000\086\000\086\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\000\000\000\000\000\000\000\000\086\000\086\000\ \086\000\086\000\086\000\086\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\255\255\255\255\000\000\000\000\255\255\ \000\000\255\255\000\000\000\000\000\000\002\000\000\000\002\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\ \006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \001\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\003\000\020\000\000\000\013\000\003\000\ \004\000\004\000\013\000\255\255\004\000\255\255\021\000\255\255\ \255\255\037\000\021\000\255\255\255\255\037\000\255\255\255\255\ \000\000\255\255\003\000\141\000\255\255\013\000\014\000\004\000\ \012\000\077\000\010\000\015\000\015\000\021\000\022\000\015\000\ \037\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\ \018\000\018\000\032\000\032\000\033\000\033\000\032\000\036\000\ \033\000\053\000\015\000\036\000\091\000\015\000\128\000\015\000\ \130\000\034\000\034\000\136\000\137\000\034\000\035\000\035\000\ \138\000\032\000\035\000\033\000\044\000\044\000\036\000\129\000\ \044\000\161\000\091\000\000\000\043\000\003\000\005\000\005\000\ \034\000\047\000\004\000\042\000\050\000\035\000\049\000\051\000\ \050\000\063\000\065\000\044\000\066\000\048\000\046\000\064\000\ \068\000\069\000\070\000\036\000\045\000\067\000\071\000\096\000\ \097\000\098\000\099\000\050\000\062\000\005\000\015\000\005\000\ \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ \007\000\007\000\007\000\072\000\007\000\015\000\038\000\015\000\ \100\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ \007\000\007\000\007\000\039\000\040\000\038\000\061\000\038\000\ \076\000\076\000\061\000\101\000\076\000\102\000\103\000\084\000\ \084\000\104\000\105\000\084\000\011\000\082\000\082\000\082\000\ \082\000\082\000\082\000\082\000\082\000\061\000\106\000\076\000\ \107\000\108\000\039\000\040\000\039\000\040\000\084\000\109\000\ \110\000\111\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\011\000\112\000\113\000\114\000\ \000\000\030\000\005\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\031\000\012\000\077\000\ \062\000\088\000\015\000\019\000\019\000\019\000\019\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\092\000\019\000\ \007\000\115\000\038\000\121\000\019\000\019\000\019\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\023\000\039\000\ \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ \083\000\083\000\085\000\085\000\085\000\085\000\085\000\085\000\ \085\000\085\000\131\000\132\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\094\000\ \125\000\133\000\094\000\134\000\094\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\024\000\ \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ \087\000\122\000\122\000\122\000\122\000\122\000\122\000\122\000\ \122\000\122\000\135\000\142\000\144\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \143\000\145\000\143\000\019\000\146\000\147\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \025\000\124\000\127\000\148\000\149\000\150\000\151\000\127\000\ \152\000\127\000\153\000\154\000\155\000\158\000\160\000\163\000\ \164\000\255\255\255\255\255\255\255\255\125\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\255\255\255\255\255\255\255\255\255\255\255\255\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\026\000\255\255\255\255\255\255\255\255\255\255\255\255\ \156\000\124\000\162\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\026\000\ \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ \026\000\026\000\140\000\026\000\255\255\255\255\255\255\255\255\ \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ \026\000\026\000\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\140\000\255\255\255\255\255\255\ \255\255\255\255\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\028\000\156\000\255\255\162\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\139\000\255\255\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\139\000\255\255\255\255\ \255\255\255\255\080\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\041\000\041\000\073\000\ \074\000\041\000\095\000\073\000\074\000\255\255\095\000\159\000\ \159\000\255\255\255\255\159\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\041\000\126\000\073\000\074\000\ \119\000\095\000\255\255\080\000\119\000\255\255\159\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\126\000\255\255\255\255\157\000\119\000\ \140\000\027\000\052\000\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\157\000\052\000\255\255\ \041\000\255\255\255\255\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\054\000\119\000\041\000\ \255\255\073\000\074\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\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\255\255\139\000\ \255\255\255\255\255\255\255\255\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \054\000\054\000\054\000\054\000\054\000\054\000\055\000\080\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\157\000\255\255\055\000\055\000\055\000\055\000\ \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ \055\000\055\000\055\000\055\000\055\000\055\000\055\000\126\000\ \255\255\255\255\052\000\255\255\255\255\055\000\055\000\055\000\ \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ \055\000\055\000\055\000\055\000\055\000\055\000\055\000\056\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\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \255\255\255\255\255\255\255\255\255\255\255\255\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \057\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\057\000\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ \057\000\255\255\255\255\255\255\255\255\255\255\255\255\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ \057\000\058\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\058\000\ \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\255\255\255\255\255\255\255\255\255\255\255\255\ \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\059\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\ \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\255\255\255\255\255\255\255\255\255\255\ \255\255\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\060\000\075\000\075\000\089\000\060\000\ \075\000\090\000\078\000\078\000\255\255\255\255\078\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\060\000\075\000\089\000\255\255\255\255\090\000\ \075\000\078\000\255\255\255\255\060\000\255\255\078\000\075\000\ \255\255\255\255\255\255\255\255\255\255\078\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\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\255\255\255\255\255\255\ \255\255\255\255\255\255\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\079\000\079\000\089\000\ \075\000\079\000\090\000\255\255\255\255\255\255\078\000\255\255\ \116\000\093\000\255\255\255\255\116\000\093\000\255\255\255\255\ \255\255\255\255\255\255\255\255\079\000\255\255\079\000\255\255\ \120\000\123\000\255\255\079\000\255\255\255\255\255\255\116\000\ \093\000\255\255\255\255\255\255\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\079\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \117\000\118\000\255\255\255\255\117\000\118\000\255\255\081\000\ \081\000\081\000\081\000\081\000\081\000\086\000\086\000\086\000\ \086\000\086\000\086\000\086\000\086\000\086\000\086\000\117\000\ \118\000\120\000\123\000\255\255\079\000\255\255\086\000\086\000\ \086\000\086\000\086\000\086\000\093\000\116\000\255\255\081\000\ \081\000\081\000\081\000\081\000\081\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \120\000\123\000\255\255\255\255\255\255\255\255\086\000\086\000\ \086\000\086\000\086\000\086\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\075\000\089\000\255\255\255\255\090\000\ \255\255\078\000\255\255\255\255\255\255\117\000\255\255\118\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\120\000\123\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\116\000\ \093\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\ \118\000"; 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 opt lexbuf = __ocaml_lex_opt_rec lexbuf 0 and __ocaml_lex_opt_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 149 "save.mll" (put_echo (lexeme lexbuf) ; opt2 lexbuf) # 686 "save.ml" | 1 -> # 151 "save.mll" (raise Eof) # 691 "save.ml" | 2 -> # 152 "save.mll" (raise NoOpt) # 696 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_opt_rec lexbuf __ocaml_lex_state and opt2 lexbuf = __ocaml_lex_opt2_rec lexbuf 5 and __ocaml_lex_opt2_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 156 "save.mll" (incr brace_nesting; put_both_char '{' ; opt2 lexbuf) # 708 "save.ml" | 1 -> # 158 "save.mll" ( decr brace_nesting; if !brace_nesting >= 0 then begin put_both_char '}' ; opt2 lexbuf end else begin error "Bad brace nesting in optional argument" end) # 718 "save.ml" | 2 -> # 165 "save.mll" (if !brace_nesting > 0 then begin put_both_char ']' ; opt2 lexbuf end else begin put_echo_char ']' ; Out.to_string arg_buff end) # 728 "save.ml" | 3 -> let lxm = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in # 172 "save.mll" (put_both lxm ; opt2 lexbuf ) # 735 "save.ml" | 4 -> let lxm = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 174 "save.mll" (put_both_char lxm ; opt2 lexbuf ) # 742 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_opt2_rec lexbuf __ocaml_lex_state and skip_comment lexbuf = __ocaml_lex_skip_comment_rec lexbuf 12 and __ocaml_lex_skip_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 177 "save.mll" (()) # 753 "save.ml" | 1 -> # 178 "save.mll" (()) # 758 "save.ml" | 2 -> # 179 "save.mll" (skip_comment lexbuf) # 763 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_comment_rec lexbuf __ocaml_lex_state and check_comment lexbuf = __ocaml_lex_check_comment_rec lexbuf 14 and __ocaml_lex_check_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 182 "save.mll" (skip_comment lexbuf) # 774 "save.ml" | 1 -> # 183 "save.mll" (()) # 779 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_check_comment_rec lexbuf __ocaml_lex_state and arg lexbuf = __ocaml_lex_arg_rec lexbuf 15 and __ocaml_lex_arg_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 186 "save.mll" (put_echo (lexeme lexbuf) ; arg lexbuf) # 790 "save.ml" | 1 -> # 188 "save.mll" (incr brace_nesting; put_echo_char '{' ; arg2 lexbuf) # 797 "save.ml" | 2 -> # 192 "save.mll" (skip_comment lexbuf ; arg lexbuf) # 802 "save.ml" | 3 -> # 194 "save.mll" (let lxm = lexeme lexbuf in put_echo lxm ; lxm) # 809 "save.ml" | 4 -> # 198 "save.mll" (blit_both lexbuf ; skip_blanks lexbuf) # 815 "save.ml" | 5 -> # 201 "save.mll" (let lxm = lexeme lexbuf in put_echo lxm ; lxm) # 821 "save.ml" | 6 -> # 204 "save.mll" (let c = lexeme_char lexbuf 0 in put_both_char c ; Out.to_string arg_buff) # 828 "save.ml" | 7 -> # 207 "save.mll" (raise Eof) # 833 "save.ml" | 8 -> # 208 "save.mll" (error "Argument expected") # 838 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_arg_rec lexbuf __ocaml_lex_state and first_char lexbuf = __ocaml_lex_first_char_rec lexbuf 30 and __ocaml_lex_first_char_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 213 "save.mll" (let lxm = lexeme_char lexbuf 0 in put_echo_char lxm ; lxm) # 851 "save.ml" | 1 -> # 216 "save.mll" (raise Eof) # 856 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_first_char_rec lexbuf __ocaml_lex_state and rest lexbuf = __ocaml_lex_rest_rec lexbuf 31 and __ocaml_lex_rest_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 220 "save.mll" (let lxm = lexeme lexbuf in put_echo lxm ; lxm) # 869 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_rest_rec lexbuf __ocaml_lex_state and skip_blanks lexbuf = __ocaml_lex_skip_blanks_rec lexbuf 32 and __ocaml_lex_skip_blanks_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 226 "save.mll" (seen_par := false ; put_echo (lexeme lexbuf) ; more_skip lexbuf) # 882 "save.ml" | 1 -> # 230 "save.mll" (put_echo (lexeme lexbuf) ; Out.to_string arg_buff) # 887 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_blanks_rec lexbuf __ocaml_lex_state and more_skip lexbuf = __ocaml_lex_more_skip_rec lexbuf 33 and __ocaml_lex_more_skip_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 234 "save.mll" (seen_par := true ; put_echo (lexeme lexbuf) ; more_skip lexbuf) # 900 "save.ml" | 1 -> # 238 "save.mll" (Out.to_string arg_buff) # 905 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_more_skip_rec lexbuf __ocaml_lex_state and skip_equal lexbuf = __ocaml_lex_skip_equal_rec lexbuf 36 and __ocaml_lex_skip_equal_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 241 "save.mll" (()) # 916 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_equal_rec lexbuf __ocaml_lex_state and arg2 lexbuf = __ocaml_lex_arg2_rec lexbuf 38 and __ocaml_lex_arg2_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 245 "save.mll" (incr brace_nesting; put_both_char '{' ; arg2 lexbuf) # 929 "save.ml" | 1 -> # 249 "save.mll" (decr brace_nesting; if !brace_nesting > 0 then begin put_both_char '}' ; arg2 lexbuf end else begin put_echo_char '}' ; Out.to_string arg_buff end) # 940 "save.ml" | 2 -> # 257 "save.mll" (blit_both lexbuf ; arg2 lexbuf ) # 945 "save.ml" | 3 -> # 259 "save.mll" (error "End of file in argument") # 950 "save.ml" | 4 -> # 262 "save.mll" (blit_both lexbuf ; arg2 lexbuf ) # 955 "save.ml" | 5 -> # 265 "save.mll" (let c = lexeme_char lexbuf 0 in put_both_char c ; arg2 lexbuf) # 961 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_arg2_rec lexbuf __ocaml_lex_state and csname get_prim subst lexbuf = __ocaml_lex_csname_rec get_prim subst lexbuf 41 and __ocaml_lex_csname_rec get_prim subst lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 270 "save.mll" ( blit_echo lexbuf ; csname get_prim subst lexbuf ) # 972 "save.ml" | 1 -> # 272 "save.mll" (blit_echo lexbuf ; let r = incsname lexbuf in "\\"^get_prim r) # 979 "save.ml" | 2 -> # 276 "save.mll" (let r = arg lexbuf in let r = subst r in try check_csname get_prim (Lexing.from_string r) with | Exit -> r ) # 989 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_csname_rec get_prim subst lexbuf __ocaml_lex_state and check_csname get_prim lexbuf = __ocaml_lex_check_csname_rec get_prim lexbuf 51 and __ocaml_lex_check_csname_rec get_prim lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 285 "save.mll" ( let r = incsname lexbuf in "\\"^get_prim r) # 1001 "save.ml" | 1 -> # 289 "save.mll" ( raise Exit ) # 1006 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_check_csname_rec get_prim lexbuf __ocaml_lex_state and incsname lexbuf = __ocaml_lex_incsname_rec lexbuf 62 and __ocaml_lex_incsname_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 293 "save.mll" (let lxm = lexeme lexbuf in put_echo lxm ; Out.to_string arg_buff) # 1018 "save.ml" | 1 -> # 296 "save.mll" (put_both_char (lexeme_char lexbuf 0) ; incsname lexbuf) # 1024 "save.ml" | 2 -> # 298 "save.mll" (error "End of file in command name") # 1029 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_incsname_rec lexbuf __ocaml_lex_state and cite_arg lexbuf = __ocaml_lex_cite_arg_rec lexbuf 73 and __ocaml_lex_cite_arg_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 301 "save.mll" (cite_args_bis lexbuf) # 1040 "save.ml" | 1 -> # 302 "save.mll" (error "No opening ``{'' in citation argument") # 1045 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_cite_arg_rec lexbuf __ocaml_lex_state and cite_args_bis lexbuf = __ocaml_lex_cite_args_bis_rec lexbuf 75 and __ocaml_lex_cite_args_bis_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 306 "save.mll" (let lxm = lexeme lexbuf in lxm::cite_args_bis lexbuf) # 1056 "save.ml" | 1 -> # 307 "save.mll" (cite_args_bis lexbuf) # 1061 "save.ml" | 2 -> # 308 "save.mll" (cite_args_bis lexbuf) # 1066 "save.ml" | 3 -> # 309 "save.mll" (cite_args_bis lexbuf) # 1071 "save.ml" | 4 -> # 310 "save.mll" ([]) # 1076 "save.ml" | 5 -> # 311 "save.mll" (error "Bad syntax for \\cite argument") # 1081 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_cite_args_bis_rec lexbuf __ocaml_lex_state and num_arg lexbuf = __ocaml_lex_num_arg_rec lexbuf 79 and __ocaml_lex_num_arg_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 314 "save.mll" ((fun get_int -> num_arg lexbuf get_int)) # 1092 "save.ml" | 1 -> # 316 "save.mll" (fun _get_int -> let lxm = lexeme lexbuf in my_int_of_string lxm) # 1099 "save.ml" | 2 -> # 320 "save.mll" (fun _get_int ->let lxm = lexeme lexbuf in my_int_of_string ("0o"^String.sub lxm 1 (String.length lxm-1))) # 1105 "save.ml" | 3 -> # 323 "save.mll" (fun _get_int ->let lxm = lexeme lexbuf in my_int_of_string ("0x"^String.sub lxm 1 (String.length lxm-1))) # 1111 "save.ml" | 4 -> # 326 "save.mll" (fun _get_int ->let c = lexeme_char lexbuf 2 in Char.code c) # 1117 "save.ml" | 5 -> # 329 "save.mll" (fun get_int -> let lxm = lexeme lexbuf in get_int (String.sub lxm 1 2)) # 1124 "save.ml" | 6 -> # 333 "save.mll" (fun _get_int ->let c = lexeme_char lexbuf 1 in Char.code c) # 1130 "save.ml" | 7 -> # 336 "save.mll" (fun get_int -> let s = arg lexbuf in get_int s) # 1137 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_num_arg_rec lexbuf __ocaml_lex_state and filename lexbuf = __ocaml_lex_filename_rec lexbuf 89 and __ocaml_lex_filename_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 342 "save.mll" (put_echo (lexeme lexbuf) ; filename lexbuf) # 1148 "save.ml" | 1 -> # 343 "save.mll" (let lxm = lexeme lexbuf in put_echo lxm ; lxm) # 1153 "save.ml" | 2 -> # 344 "save.mll" (arg lexbuf) # 1158 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_filename_rec lexbuf __ocaml_lex_state and remain lexbuf = __ocaml_lex_remain_rec lexbuf 92 and __ocaml_lex_remain_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 347 "save.mll" (Lexing.lexeme lexbuf) # 1169 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_remain_rec lexbuf __ocaml_lex_state and get_limits r lexbuf = __ocaml_lex_get_limits_rec r lexbuf 93 and __ocaml_lex_get_limits_rec r lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 350 "save.mll" (get_limits r lexbuf) # 1180 "save.ml" | 1 -> # 351 "save.mll" (get_limits (Some Limits) lexbuf) # 1185 "save.ml" | 2 -> # 352 "save.mll" (get_limits (Some NoLimits) lexbuf) # 1190 "save.ml" | 3 -> # 353 "save.mll" (get_limits (Some IntLimits) lexbuf) # 1195 "save.ml" | 4 -> # 354 "save.mll" (raise (LimitEof r)) # 1200 "save.ml" | 5 -> # 355 "save.mll" (r) # 1205 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_get_limits_rec r lexbuf __ocaml_lex_state and get_sup lexbuf = __ocaml_lex_get_sup_rec lexbuf 116 and __ocaml_lex_get_sup_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 358 "save.mll" (try Some (arg lexbuf) with Eof -> error "End of file after ^") # 1216 "save.ml" | 1 -> # 359 "save.mll" (raise Eof) # 1221 "save.ml" | 2 -> # 360 "save.mll" (None) # 1226 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_get_sup_rec lexbuf __ocaml_lex_state and get_sub lexbuf = __ocaml_lex_get_sub_rec lexbuf 118 and __ocaml_lex_get_sub_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 364 "save.mll" (try Some (arg lexbuf) with Eof -> error "End of file after _") # 1237 "save.ml" | 1 -> # 365 "save.mll" (raise Eof) # 1242 "save.ml" | 2 -> # 366 "save.mll" (None) # 1247 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_get_sub_rec lexbuf __ocaml_lex_state and defargs lexbuf = __ocaml_lex_defargs_rec lexbuf 120 and __ocaml_lex_defargs_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 370 "save.mll" (let lxm = lexeme lexbuf in put_echo lxm ; lxm::defargs lexbuf) # 1260 "save.ml" | 1 -> # 374 "save.mll" (blit_both lexbuf ; let r = in_defargs lexbuf in r :: defargs lexbuf) # 1267 "save.ml" | 2 -> # 377 "save.mll" ([]) # 1272 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_defargs_rec lexbuf __ocaml_lex_state and in_defargs lexbuf = __ocaml_lex_in_defargs_rec lexbuf 123 and __ocaml_lex_in_defargs_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 380 "save.mll" (blit_both lexbuf ; in_defargs lexbuf) # 1283 "save.ml" | 1 -> # 381 "save.mll" (put_both_char (lexeme_char lexbuf 0) ; in_defargs lexbuf) # 1288 "save.ml" | 2 -> # 382 "save.mll" (Out.to_string arg_buff) # 1293 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_in_defargs_rec lexbuf __ocaml_lex_state and get_defargs lexbuf = __ocaml_lex_get_defargs_rec lexbuf 125 and __ocaml_lex_get_defargs_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 385 "save.mll" (let r = lexeme lexbuf in r) # 1304 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_get_defargs_rec lexbuf __ocaml_lex_state and tagout lexbuf = __ocaml_lex_tagout_rec lexbuf 126 and __ocaml_lex_tagout_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 388 "save.mll" (Out.put_char tag_buff ' ' ; tagout lexbuf) # 1315 "save.ml" | 1 -> # 389 "save.mll" (intag lexbuf) # 1320 "save.ml" | 2 -> # 390 "save.mll" (Out.put tag_buff " " ; tagout lexbuf) # 1325 "save.ml" | 3 -> # 391 "save.mll" (Out.put tag_buff ">" ; tagout lexbuf) # 1330 "save.ml" | 4 -> # 392 "save.mll" (Out.put tag_buff "<" ; tagout lexbuf) # 1335 "save.ml" | 5 -> # 393 "save.mll" (Out.blit tag_buff lexbuf ; tagout lexbuf) # 1340 "save.ml" | 6 -> # 394 "save.mll" (Out.to_string tag_buff) # 1345 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_tagout_rec lexbuf __ocaml_lex_state and intag lexbuf = __ocaml_lex_intag_rec lexbuf 139 and __ocaml_lex_intag_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 397 "save.mll" (tagout lexbuf) # 1356 "save.ml" | 1 -> # 398 "save.mll" (instring lexbuf) # 1361 "save.ml" | 2 -> # 399 "save.mll" (intag lexbuf) # 1366 "save.ml" | 3 -> # 400 "save.mll" (Out.to_string tag_buff) # 1371 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_intag_rec lexbuf __ocaml_lex_state and instring lexbuf = __ocaml_lex_instring_rec lexbuf 140 and __ocaml_lex_instring_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 403 "save.mll" (intag lexbuf) # 1382 "save.ml" | 1 -> # 404 "save.mll" (instring lexbuf) # 1387 "save.ml" | 2 -> # 405 "save.mll" (instring lexbuf) # 1392 "save.ml" | 3 -> # 406 "save.mll" (Out.to_string tag_buff) # 1397 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_instring_rec lexbuf __ocaml_lex_state and checklimits lexbuf = __ocaml_lex_checklimits_rec lexbuf 142 and __ocaml_lex_checklimits_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 410 "save.mll" (true) # 1408 "save.ml" | 1 -> # 411 "save.mll" (false) # 1413 "save.ml" | 2 -> # 412 "save.mll" (false) # 1418 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_checklimits_rec lexbuf __ocaml_lex_state and eat_delim_init delim next i lexbuf = __ocaml_lex_eat_delim_init_rec delim next i lexbuf 156 and __ocaml_lex_eat_delim_init_rec delim next i lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 415 "save.mll" (raise Eof) # 1429 "save.ml" | 1 -> # 417 "save.mll" ( put_echo_char '{' ; incr brace_nesting ; let r = arg2 lexbuf in check_comment lexbuf ; if if_next_string delim lexbuf then begin skip_delim_rec delim 0 lexbuf ; r end else begin Out.put_char arg_buff '{' ; Out.put arg_buff r ; Out.put_char arg_buff '}' ; eat_delim_rec delim next 0 lexbuf end) # 1446 "save.ml" | 2 -> # 430 "save.mll" (eat_delim_rec delim next i lexbuf) # 1451 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_eat_delim_init_rec delim next i lexbuf __ocaml_lex_state and eat_delim_rec delim next i lexbuf = __ocaml_lex_eat_delim_rec_rec delim next i lexbuf 157 and __ocaml_lex_eat_delim_rec_rec delim next i lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 434 "save.mll" ( put_echo "\\{" ; match kmp_char delim next i '\\' with | Stop _ -> error "Delimitors cannot end with ``\\''" | Continue i -> match kmp_char delim next i '{' with | Stop s -> s | Continue i -> eat_delim_rec delim next i lexbuf) # 1469 "save.ml" | 1 -> # 444 "save.mll" ( put_echo_char '{' ; Out.put arg_buff (if i > 0 then String.sub delim 0 i else "") ; Out.put_char arg_buff '{' ; incr brace_nesting ; let r = arg2 lexbuf in Out.put arg_buff r ; Out.put_char arg_buff '}' ; eat_delim_rec delim next 0 lexbuf ) # 1483 "save.ml" | 2 -> # 455 "save.mll" ( let c = lexeme_char lexbuf 0 in put_echo_char c ; match kmp_char delim next i c with | Stop s -> s | Continue i -> eat_delim_rec delim next i lexbuf) # 1493 "save.ml" | 3 -> # 462 "save.mll" (error ("End of file in delimited argument, read: "^ Out.to_string echo_buff)) # 1500 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_eat_delim_rec_rec delim next i lexbuf __ocaml_lex_state and skip_delim_init delim i lexbuf = __ocaml_lex_skip_delim_init_rec delim i lexbuf 159 and __ocaml_lex_skip_delim_init_rec delim i lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 467 "save.mll" (skip_delim_init delim i lexbuf) # 1511 "save.ml" | 1 -> # 468 "save.mll" (skip_delim_rec delim i lexbuf) # 1516 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_delim_init_rec delim i lexbuf __ocaml_lex_state and skip_delim_rec delim i lexbuf = __ocaml_lex_skip_delim_rec_rec delim i lexbuf 160 and __ocaml_lex_skip_delim_rec_rec delim i lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 472 "save.mll" ( let c = lexeme_char lexbuf 0 in put_echo_char c ; if c <> delim.[i] then raise (Delim delim) ; if i+1 < String.length delim then skip_delim_rec delim (i+1) lexbuf) # 1533 "save.ml" | 1 -> # 480 "save.mll" ( error ("End of file checking delimiter ``"^delim^"''")) # 1538 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_delim_rec_rec delim i lexbuf __ocaml_lex_state and check_equal lexbuf = __ocaml_lex_check_equal_rec lexbuf 161 and __ocaml_lex_check_equal_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 482 "save.mll" (true) # 1549 "save.ml" | 1 -> # 483 "save.mll" (false) # 1554 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_check_equal_rec lexbuf __ocaml_lex_state and do_xyarg lexbuf = __ocaml_lex_do_xyarg_rec lexbuf 162 and __ocaml_lex_do_xyarg_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 487 "save.mll" (let lxm = Lexing.lexeme_char lexbuf 0 in put_both_char lxm ; do_xyarg lexbuf) # 1567 "save.ml" | 1 -> # 490 "save.mll" (raise Eof) # 1572 "save.ml" | 2 -> # 491 "save.mll" (Out.to_string arg_buff) # 1577 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_do_xyarg_rec lexbuf __ocaml_lex_state and simple_delim c lexbuf = __ocaml_lex_simple_delim_rec c lexbuf 163 and __ocaml_lex_simple_delim_rec c lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> let x = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 495 "save.mll" (if c = x then begin put_echo_char x ; Out.to_string arg_buff end else begin put_both_char x ; simple_delim c lexbuf end ) # 1597 "save.ml" | 1 -> # 504 "save.mll" (error (Printf.sprintf "End of file in simple delim '%c'" c)) # 1602 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_simple_delim_rec c lexbuf __ocaml_lex_state and gobble_one_char lexbuf = __ocaml_lex_gobble_one_char_rec lexbuf 164 and __ocaml_lex_gobble_one_char_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 507 "save.mll" (()) # 1613 "save.ml" | 1 -> # 508 "save.mll" (fatal ("Gobble at end of file")) # 1618 "save.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_gobble_one_char_rec lexbuf __ocaml_lex_state ;; # 511 "save.mll" let init_kmp s = let l = String.length s in let r = Array.create l (-1) in let rec init_rec i j = if i+1 < l then begin if j = -1 || s.[i]=s.[j] then begin r.(i+1) <- j+1 ; init_rec (i+1) (j+1) end else init_rec i r.(j) end in init_rec 0 (-1) ; r let with_delim delim lexbuf = let next = init_kmp delim in check_comment lexbuf ; let r = eat_delim_init delim next 0 lexbuf in r and skip_delim delim lexbuf = check_comment lexbuf ; skip_delim_init delim 0 lexbuf let skip_blanks_init lexbuf = let _ = skip_blanks lexbuf in () let arg_verbatim lexbuf = ignore (skip_blanks lexbuf) ; match first_char lexbuf with | '{' -> incr brace_nesting ; arg2 lexbuf | c -> simple_delim c lexbuf let xy_arg lexbuf = do_xyarg lexbuf # 1667 "save.ml"