# 12 "cut.mll" open Lexing open Stack let header = "$Id: cut.mll,v 1.52 2006-10-16 12:39:00 maranget Exp $" let verbose = ref 0 let name = ref "main" and count = ref 0 ;; let language = ref "eng" let base = ref None let changed_t = Hashtbl.create 17 let record_changed oldname newname = try let _ = Hashtbl.find changed_t oldname in Hashtbl.replace changed_t oldname newname with Not_found -> Hashtbl.add changed_t oldname newname let rec check_changed name = try Hashtbl.find changed_t name with Not_found -> name let real_name name = let name = check_changed name in match !base with | None -> name | Some dir -> Filename.concat dir name let real_open_out name = open_out (real_name name) type toc_style = Normal | Both | Special let toc_style = ref Normal let cross_links = ref true and some_links = ref false let env = Hashtbl.create 17 let imgsrc img alt = Printf.sprintf "\"%s\"" img alt let _ = Hashtbl.add env "UPTXT" (imgsrc "contents_motif.gif" "Up") ; Hashtbl.add env "PREVTXT" (imgsrc "previous_motif.gif" "Previous") ; Hashtbl.add env "NEXTTXT" (imgsrc "next_motif.gif" "Next") ; () let get_env key = try Hashtbl.find env key with Not_found -> assert false exception Error of string (* Accumulate all META, LINK and similar tags that appear in the preamble in order to output them in the preamble of every generated page. *) let header_buff = CutOut.create_buff "header-buf" let style_buff = CutOut.create_buff "style-buf" let common_headers = ref "" and link_style = ref "" let adjoin_to_header s = CutOut.put header_buff s and adjoin_to_header_char c = CutOut.put_char header_buff c let finalize_header () = if not (CutOut.is_empty style_buff) then begin let css_name = Printf.sprintf "%s.css" !name in link_style := Printf.sprintf "\n" css_name ; adjoin_to_header !link_style ; let chan = real_open_out css_name in output_string chan (CutOut.to_string style_buff) ; close_out chan end ; common_headers := CutOut.to_string header_buff let html_buff = CutOut.create_buff "html-buf" let html_head = ref "" and html_foot = ref "" and html_prefix = ref "" let phase = ref (-1) ;; let body = ref "" and doctype = ref "" and html = ref "" ;; let new_filename s = incr count ; Printf.sprintf "%s%0.3d.html" !name !count let out = ref (CutOut.create_null ()) and out_prefix = ref (CutOut.create_null ()) and outname = ref "" and lastclosed = ref "" and otheroutname = ref "" and flowname_stack = (Stack.create "flowname" : string Stack.t) and flow_stack = (Stack.create "flow" : CutOut.t Stack.t) ;; let toc = ref !out and tocname = ref !outname and otherout = ref !out ;; let close_loc ctx name out = CutOut.close out let change_name oldname name = if !phase <= 0 then begin if !verbose > 0 then prerr_endline ("Change "^oldname^" into "^name) ; record_changed oldname name ; end let start_phase name = incr phase ; if !verbose > 0 then prerr_endline ("Starting phase number: "^string_of_int !phase); outname := name ; tocname := name ; otheroutname := "" ; count := 0 ; if !phase = 0 then begin let d = Filename.dirname name in if d <> "." then begin base := Some d end end ; if !phase > 0 then begin out := CutOut.create_chan (real_name name) end ; toc := !out ;; let openlist out = (* Printf.eprintf "OPEN LIST: %s\n" (CutOut.get_name out) ; *) CutOut.put out "\n" and itemref filename s out = let filename = check_changed filename in CutOut.put out "
  • " ; CutOut.put out "" ; CutOut.put out s ; CutOut.put out "
  • \n" and itemanchor filename label s out = let filename = check_changed filename in CutOut.put out "
  • " ; CutOut.put out "" ; CutOut.put out s ; CutOut.put out "
  • \n" ;; let delayed_anchor = ref false and prev_anchor = ref None let do_putanchor label out = CutOut.put out "" ;; let putanchor label out = if !delayed_anchor then prev_anchor := Some (label, out) else do_putanchor label out and really_putanchor () = if !phase = 0 then delayed_anchor := true else match !prev_anchor with | Some (label, out) -> do_putanchor label out ; prev_anchor := None | None -> () let putlink out name txt = let name = check_changed name in CutOut.put out "" ; CutOut.put out txt ; CutOut.put out "\n" ;; let link_buff = CutOut.create_buff "link-buf" let putlinks name = let links_there = ref false in if !verbose > 0 then prerr_endline ("putlinks: "^name) ; begin try putlink link_buff (Thread.prev name) (get_env "PREVTXT") ; links_there := true with Not_found -> if !verbose > 0 then prerr_endline ("No prev link for "^name) end ; begin try putlink link_buff (Thread.up name) (get_env "UPTXT") ; links_there := true with Not_found -> () end ; begin try putlink link_buff (Thread.next name) (get_env "NEXTTXT") ; links_there := true with Not_found -> () end ; if !links_there then Some (CutOut.to_string link_buff) else None let putlinks_start out outname = if !cross_links then match putlinks outname with | Some s -> some_links := true ; CutOut.put out s ; CutOut.put out "
    \n" | None -> () let putlinks_end out outname = if !cross_links then match putlinks outname with | Some s -> some_links := true ; CutOut.put out "
    \n" ; CutOut.put out s | None -> () let openhtml withlinks title out outname = CutOut.put out !doctype ; CutOut.put_char out '\n' ; CutOut.put out !html ; CutOut.put_char out '\n' ; CutOut.put out "\n" ; CutOut.put out !common_headers; CutOut.put out "" ; let title = Save.tagout (Lexing.from_string (!html_prefix^title)) in CutOut.put out title ; CutOut.put out "\n" ; CutOut.put out "\n" ; CutOut.put out !body; CutOut.put out "\n" ; if withlinks then putlinks_start out outname ; CutOut.put out !html_head and closehtml withlinks name out = CutOut.put out !html_foot ; if withlinks then begin putlinks_end out name end ; CutOut.put out "\n" ; CutOut.put out "\n" ; close_loc "closehtml" name out ;; let put_sec hd title hde out = CutOut.put out hd ; CutOut.put_char out '\n' ; CutOut.put out title ; CutOut.put out hde ; CutOut.put_char out '\n' ;; let put s = CutOut.put !out s and put_char c = CutOut.put_char !out c ;; let cur_level = ref (Section.value "DOCUMENT") and chapter = ref (Section.value "CHAPTER") and depth = ref 2 ;; (* Open all lists in toc from chapter to sec, with sec > chapter *) let rec do_open l1 l2 = if l1 < l2 then begin begin match !toc_style with | Both -> openlist !toc ; openlist !out_prefix | Special -> openlist !out_prefix | Normal -> openlist !toc end ; do_open (l1+1) l2 end ;; (* close from l1 down to l2 *) let rec do_close l1 l2 = if l1 > l2 then begin begin match !toc_style with | Both -> closelist !toc ; closelist !out_prefix | Special -> closelist !out_prefix | Normal -> closelist !toc end ; do_close (l1-1) l2 end else cur_level := l1 ;; let anchor = ref 0 ;; let open_section sec name = if !phase > 0 then begin if !cur_level > sec then do_close !cur_level sec else if !cur_level < sec then do_open !cur_level sec ; incr anchor ; let label = "toc"^string_of_int !anchor in begin match !toc_style with | Normal -> itemanchor !outname label name !toc ; | Both -> itemanchor !outname label name !toc ; itemanchor !outname label name !out_prefix | Special -> itemanchor !outname label name !out_prefix end ; putanchor label !out ; cur_level := sec end else cur_level := sec and close_section sec = if !phase > 0 then do_close !cur_level sec else cur_level := sec ;; let close_chapter () = if !verbose > 0 then prerr_endline ("Close chapter out="^ !outname^" toc="^ !tocname) ; if !phase > 0 then begin if !outname <> !tocname then closehtml true !outname !out ; begin match !toc_style with | Both|Special -> let real_out = real_open_out !outname in CutOut.to_chan real_out !out_prefix ; CutOut.to_chan real_out !out ; close_out real_out | Normal -> () end ; out := !toc end else begin lastclosed := !outname ; outname := !tocname end and open_chapter name = outname := new_filename ("open_chapter <<"^name^">>") ; if !verbose > 0 then prerr_endline ("Open chapter out="^ !outname^" toc="^ !tocname^ " cur_level="^string_of_int !cur_level) ; if !phase > 0 then begin begin match !toc_style with | Both|Special -> out_prefix := CutOut.create_buff (!outname ^ "-prefix") ; out := !out_prefix ; openhtml true name !out_prefix !outname | Normal -> out := CutOut.create_chan (real_name !outname) ; openhtml true name !out !outname end ; itemref !outname name !toc ; cur_level := !chapter end else begin if !verbose > 0 then prerr_endline ("link prev="^ !lastclosed^" next="^ !outname) ; Thread.setup !outname !tocname ; Thread.setprevnext !lastclosed !outname ; cur_level := !chapter end ;; let setlink set target = if !phase = 0 && target <> "" then set !outname target let open_notes_pred sec_notes = if sec_notes = !chapter then !cur_level < sec_notes else if sec_notes < !chapter then !chapter < !cur_level else true let open_notes sticky sec_notes = if !verbose > 0 && !phase > 0 then Printf.eprintf "Notes flushed as %s (current cut is %s, current level is %s)\n" (Section.pretty sec_notes) (Section.pretty !chapter) (Section.pretty !cur_level) ; if not sticky && open_notes_pred sec_notes then begin otheroutname := !outname ; outname := new_filename "open_notes" ; if !phase > 0 then begin otherout := !out ; out := CutOut.create_chan (real_name !outname) ; CutOut.put !out !doctype ; CutOut.put_char !out '\n' ; CutOut.put !out !html ; CutOut.put_char !out '\n' ; CutOut.put !out "Notes\n" ; CutOut.put !out !common_headers ; CutOut.put !out "\n" ; CutOut.put !out !body ; CutOut.put !out "\n" end end else otheroutname := "" and close_notes () = if !otheroutname <> "" then begin CutOut.put !out "\n\n" ; close_loc "notes" !outname !out ; outname := !otheroutname ; out := !otherout ; otheroutname := "" end ;; let toc_buf = CutOut.create_buff "toc-buf" and arg_buf = CutOut.create_buff "arg-buf" ;; let stack = Stack.create "main" ;; let save_state newchapter newdepth = if !verbose > 0 then prerr_endline ("New state: "^string_of_int newchapter) ; push stack (!outname, Stack.save flowname_stack, Stack.save flow_stack, !chapter,!depth,!toc,!tocname,!cur_level,!lastclosed,!out_prefix) ; chapter := newchapter ; depth := newdepth ; tocname := !outname ; lastclosed := "" ; toc := !out ;; let restore_state () = if !verbose > 0 then prerr_endline ("Restore") ; let oldoutname, oldflowname, oldflow, oldchapter,olddepth,oldtoc,oldtocname, oldlevel,oldlastclosed,oldprefix = pop stack in outname := oldoutname ; Stack.restore flowname_stack oldflowname ; Stack.restore flow_stack oldflow ; chapter := oldchapter ; depth := olddepth ; toc := oldtoc ; tocname := oldtocname ; lastclosed := !lastclosed ; cur_level := oldlevel ; out_prefix := oldprefix ;; let hevea_footer = ref false let hevea_footer_buff = CutOut.create_buff "hevea-footer-buf" let close_top lxm = CutOut.put !toc !html_foot ; putlinks_end !toc !tocname ; if !hevea_footer then begin CutOut.put !out "\n" ; CutOut.copy hevea_footer_buff !out end ; CutOut.put !toc lxm ; if !tocname = "" then CutOut.flush !toc else close_loc "top" !tocname !toc ;; let open_toc () = if !phase > 0 then openlist !toc and close_toc () = if !phase > 0 then closelist !toc ;; let close_all () = if !cur_level > !chapter then begin close_section !chapter ; close_chapter () ; close_toc () end else if !cur_level = !chapter then begin close_chapter () ; close_toc () end ; cur_level := (Section.value "DOCUMENT") let openflow title = let new_outname = new_filename "openflow" in push flowname_stack !outname ; outname := new_outname ; if !phase > 0 then begin push flow_stack !out ; out := CutOut.create_chan (real_name !outname) ; openhtml false title !out !outname end and closeflow () = if !phase > 0 then begin closehtml false !outname !out; out := pop flow_stack end ; outname := pop flowname_stack # 541 "cut.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\229\255\230\255\000\000\001\000\000\000\000\000\000\000\ \000\000\001\000\001\000\016\000\003\000\001\000\002\000\000\000\ \002\000\006\000\000\000\007\000\001\000\006\000\019\000\007\000\ \000\000\004\000\024\000\032\000\057\000\058\000\059\000\000\000\ \255\255\029\000\074\000\028\000\039\000\044\000\042\000\004\000\ \005\000\000\000\001\000\238\255\033\000\029\000\006\000\007\000\ \001\000\002\000\237\255\035\000\046\000\037\000\030\000\002\000\ \005\000\040\000\055\000\051\000\008\000\009\000\002\000\240\255\ \040\000\056\000\044\000\010\000\011\000\065\000\003\000\236\255\ \061\000\007\000\060\000\052\000\045\000\009\000\010\000\068\000\ \056\000\057\000\069\000\066\000\060\000\058\000\012\000\013\000\ \079\000\248\255\074\000\111\000\014\000\085\000\004\000\245\255\ \070\000\074\000\067\000\011\000\029\000\082\000\082\000\080\000\ \066\000\123\000\125\000\090\000\127\000\128\000\082\000\086\000\ \084\000\077\000\133\000\121\000\105\000\005\000\250\255\084\000\ \100\000\087\000\139\000\127\000\111\000\006\000\241\255\097\000\ \106\000\144\000\145\000\112\000\148\000\160\000\219\000\149\000\ \083\000\099\000\153\000\118\000\110\000\120\000\120\000\159\000\ \022\001\113\001\159\000\204\001\125\000\172\000\149\000\133\000\ \007\000\244\255\125\000\124\000\121\000\168\000\126\001\117\000\ \123\000\119\000\136\000\135\000\187\000\205\001\007\002\147\000\ \154\000\147\000\134\000\146\000\173\000\169\000\185\000\172\000\ \251\000\066\002\124\002\229\000\245\000\002\001\024\001\034\001\ \046\001\037\002\235\255\084\001\052\001\041\001\070\001\038\002\ \234\255\079\001\039\002\232\255\080\001\060\001\040\002\233\255\ \071\001\083\001\063\001\091\001\154\000\043\002\253\255\254\255\ \122\001\111\001\112\001\090\001\082\001\103\001\183\002\242\002\ \127\001\206\001\111\001\008\000\237\002\252\255\114\001\158\001\ \091\001\103\001\105\001\137\001\142\001\140\001\177\001\156\001\ \167\001\175\001\095\002\156\001\170\001\178\001\010\003\012\003\ \127\001\137\001\149\001\016\003\069\003\146\001\162\001\144\001\ \149\001\219\001\168\001\153\001\154\001\006\002\018\003\213\001\ \098\002\254\002\214\001\227\001\231\001\236\001\062\002\097\002\ \071\002\085\002\093\002\014\003\073\003\095\002\105\002\117\002\ \075\003\077\003\103\002\119\002\165\002\170\002\241\002\190\002\ \175\002\176\002\002\003\080\003\243\002\002\003\005\003\007\003\ \003\003\017\003\025\003\034\003\009\000\037\003\052\003\017\003\ \018\003\015\003\030\003\039\003\048\003\010\000\053\003\067\003\ \031\003\043\003\033\003\042\003\050\003\058\003\011\000\061\003\ \075\003\057\003\045\003\057\003\037\003\065\003\129\002\085\003\ \086\003\070\003\012\000\088\003\089\003\070\003\055\003\067\003\ \107\003\056\003\068\003\059\003\068\003\076\003\084\003\085\003\ \013\000\104\003\085\003\106\003\090\003\014\000\071\003\083\003\ \123\003\040\004\101\004\096\003\110\003\093\003\077\003\089\003\ \099\003\100\003\251\255\081\003\051\003\101\003\070\003\059\003\ \068\003\138\003\139\003\096\003\105\003\074\003\074\003\145\003\ \147\003\111\003\111\003\190\004\012\005\164\003\192\003\255\255\ \150\003\151\003\139\003\153\003\124\003\015\000\131\003\140\003\ \123\003\128\003"; Lexing.lex_backtrk = "\255\255\255\255\255\255\025\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\000\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\017\000\255\255\255\255\255\255\255\255\255\255\ \255\255\018\000\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\255\255\019\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\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\255\255\255\255\010\000\255\255\ \255\255\255\255\255\255\255\255\003\000\255\255\255\255\255\255\ \255\255\255\255\004\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\005\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\014\000\255\255\255\255\ \255\255\255\255\006\000\255\255\255\255\255\255\255\255\008\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\009\000\009\000\009\000\255\255\255\255\255\255\255\255\ \011\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\012\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\013\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\016\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\024\000\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\000\000\255\255\255\255\003\000\003\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\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\255\255\ \255\255\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\000\000\255\255\001\000\255\255\ \255\255\255\255\255\255\255\255\255\255\000\000\255\255\001\000\ \255\255\255\255\255\255\255\255\255\255\255\255\000\000\255\255\ \001\000\255\255\255\255\255\255\255\255\255\255\000\000\255\255\ \001\000\255\255\000\000\255\255\003\000\003\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \001\000\255\255\003\000\003\000\255\255\000\000\255\255\255\255\ \001\000\001\000\255\255\255\255\001\000\255\255\255\255\255\255\ \255\255\255\255\255\255\003\000\003\000\003\000\003\000\255\255\ \255\255\255\255\000\000\255\255\255\255\255\255\255\255\255\255\ \001\000\255\255\255\255\001\000\000\000\255\255\255\255\255\255\ \000\000\001\000\255\255\255\255\255\255\000\000\255\255\001\000\ \255\255\255\255"; Lexing.lex_default = "\002\000\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\ \255\255\255\255\255\255\255\255\028\000\028\000\028\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\000\000\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\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\ \255\255\255\255\255\255\255\255\255\255\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\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\255\255\000\000\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\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\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\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\185\000\000\000\255\255\255\255\255\255\255\255\191\000\ \000\000\255\255\194\000\000\000\255\255\255\255\198\000\000\000\ \255\255\255\255\255\255\255\255\204\000\207\000\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\221\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\234\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\ \206\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\207\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\207\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\207\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\207\000\ \255\255\255\255\255\255\255\255\255\255\255\255\062\001\207\000\ \255\255\255\255\255\255\221\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\221\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\207\000\255\255\255\255\255\255\255\255\ \255\255\221\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\117\001\118\001\000\000\ \255\255\255\255\255\255\255\255\255\255\255\255\207\000\255\255\ \255\255\255\255"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\032\000\043\000\050\000\071\000\095\000\118\000\ \126\000\153\000\032\000\032\000\032\000\032\000\032\000\207\000\ \032\000\032\000\000\000\000\000\000\000\000\000\000\000\000\000\ \187\000\008\000\056\000\012\000\039\000\056\000\046\000\079\000\ \060\000\078\000\078\000\100\000\086\000\010\000\011\000\004\000\ \012\000\040\000\041\000\047\000\048\000\061\000\062\000\068\000\ \069\000\087\000\088\000\093\000\003\000\100\000\042\000\049\000\ \063\000\007\000\005\000\200\000\009\000\188\000\154\000\127\000\ \006\000\179\000\096\000\072\000\025\000\033\000\107\000\196\000\ \180\000\131\000\013\000\014\000\189\000\018\000\022\000\137\000\ \023\000\101\000\026\000\024\000\020\000\027\000\017\000\053\000\ \019\000\028\000\051\000\021\000\016\000\052\000\029\000\030\000\ \030\000\034\000\034\000\044\000\037\000\038\000\039\000\136\000\ \045\000\046\000\064\000\057\000\054\000\055\000\058\000\255\255\ \255\255\031\000\059\000\060\000\065\000\066\000\067\000\070\000\ \073\000\075\000\076\000\077\000\015\000\081\000\090\000\082\000\ \083\000\080\000\084\000\085\000\086\000\089\000\091\000\091\000\ \035\000\074\000\036\000\094\000\097\000\098\000\099\000\102\000\ \103\000\104\000\105\000\106\000\092\000\106\000\108\000\109\000\ \109\000\119\000\112\000\113\000\114\000\114\000\116\000\117\000\ \120\000\121\000\122\000\122\000\124\000\125\000\128\000\129\000\ \130\000\130\000\115\000\132\000\133\000\135\000\132\000\138\000\ \123\000\139\000\141\000\140\000\148\000\142\000\143\000\144\000\ \133\000\149\000\151\000\152\000\155\000\156\000\111\000\157\000\ \158\000\167\000\161\000\162\000\149\000\163\000\110\000\146\000\ \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ \146\000\150\000\164\000\165\000\168\000\169\000\170\000\171\000\ \172\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\135\000\173\000\174\000\175\000\176\000\ \001\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\177\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\144\000\052\000\ \181\000\255\255\255\255\255\255\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\182\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\183\000\184\000\185\000\187\000\193\000\190\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\147\000\191\000\194\000\197\000\198\000\201\000\202\000\ \203\000\204\000\255\255\209\000\210\000\211\000\158\000\212\000\ \213\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ \146\000\146\000\146\000\214\000\218\000\219\000\255\000\235\000\ \231\000\227\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\160\000\226\000\228\000\229\000\ \230\000\159\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\147\000\165\000\217\000\032\000\ \232\000\224\000\225\000\233\000\234\000\236\000\237\000\238\000\ \241\000\242\000\243\000\216\000\146\000\146\000\146\000\146\000\ \146\000\146\000\146\000\146\000\146\000\146\000\246\000\247\000\ \248\000\249\000\250\000\251\000\252\000\253\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \254\000\225\000\008\001\004\001\005\001\006\001\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\177\000\186\000\192\000\195\000\199\000\208\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\007\001\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\207\000\001\001\032\000\ \009\001\010\001\011\001\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\214\000\ \014\001\015\001\016\001\019\001\020\001\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\222\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\217\000\239\000\239\000\239\000\239\000\012\001\ \012\001\243\000\243\000\254\000\254\000\021\001\022\001\216\000\ \023\001\024\001\025\001\026\001\027\001\255\255\255\255\255\255\ \255\255\223\000\239\000\206\000\239\000\003\001\012\001\029\001\ \243\000\030\001\254\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\244\000\244\000\244\000\ \206\000\002\001\012\001\012\001\016\001\016\001\017\001\017\001\ \031\001\027\001\027\001\032\001\033\001\034\001\035\001\255\255\ \036\001\038\001\255\255\039\001\040\001\244\000\041\001\245\000\ \042\001\012\001\043\001\016\001\044\001\017\001\045\001\018\001\ \027\001\047\001\048\001\049\001\050\001\051\001\052\001\053\001\ \054\001\056\001\057\001\058\001\059\001\060\001\061\001\062\001\ \240\000\255\255\064\001\065\001\066\001\068\001\079\001\070\001\ \017\001\071\001\072\001\073\001\074\001\075\001\207\000\076\001\ \077\001\078\001\032\000\080\001\069\001\083\001\086\001\084\001\ \085\001\087\001\088\001\088\001\092\001\093\001\094\001\095\001\ \096\001\032\000\206\000\113\001\082\001\109\001\107\001\103\001\ \104\001\105\001\105\001\106\001\099\001\108\001\105\001\110\001\ \111\001\111\001\101\001\112\001\114\001\111\001\120\001\123\001\ \124\001\123\001\125\001\128\001\129\001\013\001\032\000\127\001\ \000\000\000\000\000\000\000\000\122\001\000\000\122\001\106\001\ \000\000\000\000\000\000\119\001\100\001\000\000\112\001\000\000\ \000\000\000\000\102\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\119\001\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\255\255\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\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\000\000\000\000\ \000\000\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\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\000\000\000\000\ \206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \206\000\000\000\000\000\000\000\098\001\000\000\032\000\000\000\ \206\000\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\255\255\000\000\000\000\000\000\000\000\ \000\000\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\032\000\255\255\000\000\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \255\255\000\000\000\000\000\000\000\000\000\000\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \118\001\000\000\000\000\000\000\000\000\117\001\000\000\000\000\ \000\000\000\000\000\000\116\001\116\001\000\000\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\000\000\000\000\000\000\000\000\116\001\000\000\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\000\000\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\000\000\ \000\000\000\000\000\000\116\001\000\000\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\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\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\255\255\031\000\042\000\049\000\070\000\094\000\117\000\ \125\000\152\000\219\000\036\001\045\001\054\001\066\001\080\001\ \085\001\125\001\255\255\255\255\255\255\255\255\255\255\255\255\ \007\000\003\000\055\000\012\000\039\000\056\000\046\000\073\000\ \060\000\077\000\078\000\099\000\086\000\008\000\010\000\003\000\ \011\000\039\000\040\000\046\000\047\000\060\000\061\000\067\000\ \068\000\086\000\087\000\092\000\000\000\100\000\041\000\048\000\ \062\000\003\000\003\000\004\000\008\000\006\000\013\000\017\000\ \003\000\012\000\020\000\021\000\023\000\024\000\018\000\005\000\ \009\000\016\000\011\000\011\000\006\000\011\000\011\000\014\000\ \011\000\019\000\025\000\023\000\011\000\026\000\011\000\022\000\ \011\000\027\000\022\000\011\000\011\000\022\000\028\000\029\000\ \030\000\033\000\034\000\035\000\036\000\037\000\038\000\015\000\ \044\000\045\000\051\000\052\000\053\000\054\000\057\000\028\000\ \029\000\030\000\058\000\059\000\064\000\065\000\066\000\069\000\ \072\000\074\000\075\000\076\000\011\000\079\000\080\000\081\000\ \082\000\079\000\083\000\084\000\085\000\088\000\090\000\091\000\ \034\000\072\000\034\000\093\000\096\000\097\000\098\000\101\000\ \102\000\103\000\104\000\105\000\091\000\106\000\107\000\108\000\ \109\000\110\000\111\000\112\000\113\000\114\000\115\000\116\000\ \119\000\120\000\121\000\122\000\123\000\124\000\127\000\128\000\ \129\000\130\000\114\000\131\000\132\000\135\000\136\000\137\000\ \122\000\138\000\139\000\139\000\140\000\141\000\142\000\143\000\ \133\000\148\000\150\000\151\000\154\000\155\000\109\000\156\000\ \157\000\159\000\160\000\161\000\149\000\162\000\109\000\146\000\ \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ \146\000\149\000\163\000\164\000\167\000\168\000\169\000\170\000\ \171\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\134\000\172\000\173\000\174\000\175\000\ \000\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\176\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\144\000\179\000\ \180\000\028\000\029\000\030\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\181\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\182\000\183\000\184\000\187\000\188\000\189\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\145\000\190\000\193\000\196\000\197\000\200\000\201\000\ \202\000\203\000\204\000\208\000\209\000\210\000\158\000\211\000\ \212\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\213\000\216\000\218\000\222\000\224\000\ \225\000\226\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\158\000\223\000\227\000\228\000\ \229\000\158\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\147\000\165\000\217\000\230\000\ \231\000\223\000\223\000\232\000\233\000\235\000\236\000\237\000\ \240\000\241\000\242\000\217\000\147\000\147\000\147\000\147\000\ \147\000\147\000\147\000\147\000\147\000\147\000\245\000\246\000\ \247\000\248\000\249\000\250\000\251\000\252\000\165\000\165\000\ \165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\ \165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\ \165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\ \253\000\255\000\002\001\003\001\004\001\005\001\165\000\165\000\ \165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\ \165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\ \165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\177\000\185\000\191\000\194\000\198\000\205\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ \166\000\166\000\006\001\177\000\177\000\177\000\177\000\177\000\ \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ \177\000\177\000\177\000\177\000\177\000\234\000\000\001\007\001\ \008\001\009\001\010\001\177\000\177\000\177\000\177\000\177\000\ \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ \177\000\177\000\177\000\177\000\177\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\214\000\ \013\001\014\001\015\001\018\001\019\001\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ \178\000\178\000\178\000\178\000\178\000\178\000\178\000\220\000\ \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ \214\000\214\000\215\000\238\000\238\000\239\000\239\000\011\001\ \011\001\243\000\243\000\254\000\254\000\020\001\021\001\215\000\ \022\001\023\001\024\001\025\001\026\001\185\000\191\000\194\000\ \198\000\220\000\238\000\205\000\239\000\001\001\011\001\028\001\ \243\000\029\001\254\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ \215\000\215\000\215\000\215\000\215\000\243\000\244\000\244\000\ \254\000\001\001\012\001\012\001\016\001\016\001\017\001\017\001\ \030\001\027\001\027\001\031\001\032\001\033\001\034\001\234\000\ \035\001\037\001\000\001\038\001\039\001\244\000\040\001\244\000\ \041\001\012\001\042\001\016\001\043\001\017\001\044\001\017\001\ \027\001\046\001\047\001\048\001\049\001\050\001\051\001\052\001\ \053\001\055\001\056\001\057\001\058\001\059\001\060\001\061\001\ \239\000\062\001\063\001\064\001\065\001\067\001\068\001\069\001\ \016\001\070\001\071\001\072\001\073\001\074\001\027\001\075\001\ \076\001\077\001\078\001\079\001\067\001\081\001\082\001\083\001\ \084\001\086\001\087\001\088\001\091\001\092\001\093\001\094\001\ \095\001\096\001\097\001\099\001\081\001\100\001\101\001\102\001\ \103\001\104\001\105\001\106\001\097\001\107\001\108\001\109\001\ \110\001\111\001\097\001\112\001\113\001\114\001\120\001\121\001\ \122\001\123\001\124\001\127\001\128\001\012\001\129\001\126\001\ \255\255\255\255\255\255\255\255\121\001\255\255\123\001\105\001\ \255\255\255\255\255\255\117\001\097\001\255\255\111\001\255\255\ \255\255\255\255\097\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\118\001\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\220\000\255\255\255\255\ \255\255\255\255\255\255\028\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\037\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\046\001\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\055\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\063\001\255\255\255\255\ \067\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \091\001\255\255\255\255\255\255\097\001\255\255\089\001\255\255\ \081\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\ \089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\ \089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\ \089\001\089\001\089\001\126\001\255\255\255\255\255\255\255\255\ \255\255\089\001\089\001\089\001\089\001\089\001\089\001\089\001\ \089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\ \089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\ \089\001\089\001\089\001\090\001\117\001\255\255\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \118\001\255\255\255\255\255\255\255\255\255\255\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \090\001\090\001\090\001\090\001\090\001\090\001\090\001\090\001\ \115\001\255\255\255\255\255\255\255\255\115\001\255\255\255\255\ \255\255\255\255\255\255\115\001\115\001\255\255\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\255\255\255\255\255\255\255\255\115\001\255\255\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\116\001\116\001\255\255\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\255\255\ \255\255\255\255\255\255\116\001\255\255\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\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"; Lexing.lex_base_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\059\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\ \118\000\209\000\000\000\044\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\003\000\004\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \005\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\068\001\146\001\000\000\011\000\067\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000"; Lexing.lex_backtrk_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\020\000\038\000\020\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\050\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\056\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\067\000\000\000\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_default_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\064\000\064\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_trans_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\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\001\000\012\000\047\000\047\000\053\000\053\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \030\000\030\000\030\000\030\000\030\000\030\000\030\000\030\000\ \030\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\012\000\000\000\ \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\000\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\ \015\000\000\000\000\000\000\000\000\000\000\000\000\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\ \015\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\030\000\030\000\030\000\030\000\030\000\030\000\030\000\ \030\000\030\000\030\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\000\000\000\000\000\000\000\000\ \000\000\000\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\027\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\030\000\030\000\030\000\030\000\ \030\000\030\000\030\000\030\000\030\000\030\000\059\000\000\000\ \000\000\000\000\000\000\059\000\000\000\000\000\000\000\000\000\ \000\000\064\000\064\000\000\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\000\000\ \000\000\000\000\000\000\064\000\000\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\000\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\000\000\000\000\000\000\ \000\000\064\000\000\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ \064\000\064\000\064\000\064\000\064\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\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_code = "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \132\000\133\000\143\000\164\000\165\000\176\000\177\000\117\001\ \255\255\255\255\255\255\255\255\255\255\118\001\255\255\255\255\ \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ \146\000\146\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\255\255\255\255\255\255\255\255\ \255\255\255\255\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ \133\000\133\000\133\000\133\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\144\000\255\255\ \255\255\255\255\255\255\255\255\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ \134\000\134\000\134\000\134\000\134\000\134\000\255\255\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\255\255\255\255\255\255\255\255\255\255\255\255\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ \144\000\145\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\ \117\001\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\118\001\255\255\255\255\255\255\255\255\ \255\255\255\255\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\255\255\255\255\255\255\255\255\ \255\255\255\255\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ \145\000\145\000\145\000\145\000\147\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\147\000\147\000\147\000\147\000\ \147\000\147\000\147\000\147\000\147\000\147\000\115\001\255\255\ \255\255\255\255\255\255\115\001\255\255\255\255\255\255\255\255\ \255\255\115\001\115\001\255\255\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\255\255\ \255\255\255\255\255\255\115\001\255\255\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\115\001\ \115\001\115\001\115\001\115\001\115\001\115\001\115\001\116\001\ \116\001\255\255\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\255\255\255\255\255\255\ \255\255\116\001\255\255\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\001\116\001\116\001\116\001\ \116\001\116\001\116\001\116\001\116\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"; Lexing.lex_code = "\255\004\255\255\005\255\255\000\004\001\005\255\006\255\255\008\ \255\007\255\255\003\255\000\006\001\007\255\008\255\255\009\255\ \255\007\255\008\255\255\000\006\001\007\003\008\002\009\255\010\ \255\255\000\010\255\011\255\255\000\011\255\003\255\002\255\255\ \003\255\255\001\002\000\003\255"; } let rec main lexbuf = lexbuf.Lexing.lex_mem <- Array.create 12 (-1) ; __ocaml_lex_main_rec lexbuf 0 and __ocaml_lex_main_rec lexbuf __ocaml_lex_state = match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 556 "cut.mll" (let lxm = lexeme lexbuf in if !phase > 0 then begin put lxm ; put ("\n" end ; main lexbuf) # 1426 "cut.ml" | 1 -> # 568 "cut.mll" (let title = flowline lexbuf in openflow title ; main lexbuf) # 1433 "cut.ml" | 2 -> # 572 "cut.mll" ( let pairs = getargs lexbuf in if !phase = 0 then begin List.iter (fun (name, v) -> Hashtbl.replace env name v) pairs end ; main lexbuf ) # 1444 "cut.ml" | 3 -> # 580 "cut.mll" (let links = getargs lexbuf in List.iter (fun (name,v) -> match name with | "UP" -> setlink Thread.setup v | "PREV" -> setlink Thread.setprev v | "NEXT" -> setlink Thread.setnext v | _ -> ()) links ; main lexbuf) # 1457 "cut.ml" | 4 -> # 590 "cut.mll" (let l = getargs lexbuf in if !phase = 0 then begin match l with | [] -> () | (_,v)::_ -> html_prefix := v end ; main lexbuf) # 1468 "cut.ml" | 5 -> # 598 "cut.mll" (closeflow () ; main lexbuf) # 1474 "cut.ml" | 6 -> # 601 "cut.mll" (let name = tocline lexbuf in change_name !outname name ; main lexbuf) # 1481 "cut.ml" | 7 -> # 605 "cut.mll" (really_putanchor () ; main lexbuf ) # 1486 "cut.ml" | 8 -> let arg = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_mem.(1) in # 607 "cut.mll" (let sn = if String.uppercase arg = "NOW" then !chapter else Section.value arg in let name = tocline lexbuf in if !verbose > 1 then begin prerr_endline ("TOC "^arg^" "^name) end; if sn < !chapter then begin if !cur_level >= !chapter then begin close_section (!chapter) ; close_chapter () ; close_toc () end ; cur_level := sn end else if sn = !chapter then begin if !cur_level < sn then begin open_toc () ; end else begin close_section !chapter ; close_chapter () end ; open_chapter name end else if sn <= !chapter + !depth then begin (* sn > !chapter *) if !cur_level < !chapter then begin open_toc () ; open_chapter "" end ; close_section sn ; open_section sn name end ; main lexbuf) # 1523 "cut.ml" | 9 -> let name = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_mem.(1) and i_opt = Lexing.sub_lexeme_opt lexbuf lexbuf.Lexing.lex_mem.(3) lexbuf.Lexing.lex_mem.(2) in # 639 "cut.mll" (let chapter = Section.value (String.uppercase name) in let depth = match i_opt with | None -> !depth | Some s -> int_of_string s in skip_endcom lexbuf ; save_state chapter depth ; cur_level := Section.value "DOCUMENT" ; main lexbuf) # 1538 "cut.ml" | 10 -> # 648 "cut.mll" (if !phase > 0 then begin match !toc_style with | Both|Special when !out == !out_prefix -> out := CutOut.create_buff "out-buf" | _ -> () end ; main lexbuf) # 1549 "cut.ml" | 11 -> # 656 "cut.mll" (close_all () ; restore_state () ; main lexbuf) # 1556 "cut.ml" | 12 -> let sec_notes = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_curr_pos in # 660 "cut.mll" (skip_endcom lexbuf ; open_notes false (Section.value sec_notes) ; main lexbuf) # 1565 "cut.ml" | 13 -> let sec_notes = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_curr_pos in # 664 "cut.mll" (skip_endcom lexbuf ; open_notes true (Section.value sec_notes) ; main lexbuf) # 1574 "cut.ml" | 14 -> # 668 "cut.mll" (if !otheroutname <> "" then close_notes (); main lexbuf) # 1581 "cut.ml" | 15 -> # 672 "cut.mll" (language := "fra" ; main lexbuf) # 1587 "cut.ml" | 16 -> # 675 "cut.mll" (if !phase > 0 then put (lexeme lexbuf) ; aargs lexbuf) # 1593 "cut.ml" | 17 -> # 678 "cut.mll" (let head = save_html lexbuf in if !phase = 0 then html_head := head else CutOut.put !out head; main lexbuf) # 1603 "cut.ml" | 18 -> # 685 "cut.mll" (let foot = save_html lexbuf in if !phase = 0 then begin html_foot := foot end ; main lexbuf) # 1612 "cut.ml" | 19 -> # 691 "cut.mll" (if !phase = 0 then hevea_footer := true ; close_all () ; footer lexbuf) # 1619 "cut.ml" | 20 -> # 695 "cut.mll" (let lxm = lexeme lexbuf in if !phase = 0 then doctype := lxm else CutOut.put !out lxm; main lexbuf) # 1629 "cut.ml" | 21 -> # 702 "cut.mll" (let lxm = lexeme lexbuf in if !phase = 0 then html := lxm else CutOut.put !out lxm; main lexbuf) # 1639 "cut.ml" | 22 -> # 709 "cut.mll" (let lxm = lexeme lexbuf in if !phase = 0 then body := lxm else begin CutOut.put !out lxm ; putlinks_start !out !outname end ; main lexbuf) # 1651 "cut.ml" | 23 -> # 718 "cut.mll" (put (lexeme lexbuf); if !phase = 0 then begin if !verbose > 0 then prerr_endline "Collect header" ; collect_header lexbuf end else begin repeat_header lexbuf end ; main lexbuf) # 1663 "cut.ml" | 24 -> # 727 "cut.mll" (let lxm = lexeme lexbuf in close_all () ; if !phase > 0 then begin close_top lxm end) # 1672 "cut.ml" | 25 -> let lxm = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 733 "cut.mll" (if !phase > 0 then put_char lxm ; main lexbuf) # 1680 "cut.ml" | 26 -> # 736 "cut.mll" (raise (Error ("No tag in input file"))) # 1685 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_main_rec lexbuf __ocaml_lex_state and save_html lexbuf = __ocaml_lex_save_html_rec lexbuf 205 and __ocaml_lex_save_html_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 740 "cut.mll" (let s = CutOut.to_string html_buff in if !verbose > 0 then prerr_endline ("save_html -> ``"^s^"''"); s) # 1699 "cut.ml" | 1 -> # 745 "cut.mll" (let lxm = lexeme_char lexbuf 0 in CutOut.put_char html_buff lxm ; save_html lexbuf) # 1706 "cut.ml" | 2 -> # 749 "cut.mll" (raise (Misc.Fatal ("End of file in save_html"))) # 1711 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_save_html_rec lexbuf __ocaml_lex_state and collect_header lexbuf = __ocaml_lex_collect_header_rec lexbuf 220 and __ocaml_lex_collect_header_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 753 "cut.mll" (finalize_header () ; if !verbose > 0 then begin prerr_string "Header is: '" ; prerr_string !common_headers ; prerr_endline "'" end) # 1727 "cut.ml" | 1 -> # 760 "cut.mll" (skip_title lexbuf ; collect_header lexbuf) # 1732 "cut.ml" | 2 -> # 762 "cut.mll" (collect_style lexbuf ; collect_header lexbuf) # 1737 "cut.ml" | 3 -> let lxm = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 764 "cut.mll" (adjoin_to_header_char lxm; collect_header lexbuf) # 1745 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_collect_header_rec lexbuf __ocaml_lex_state and repeat_header lexbuf = __ocaml_lex_repeat_header_rec lexbuf 256 and __ocaml_lex_repeat_header_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> let lxm = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_start_pos + 7) in # 769 "cut.mll" (put (!link_style) ; put lxm ) # 1758 "cut.ml" | 1 -> # 771 "cut.mll" (skip_style lexbuf ; repeat_header lexbuf) # 1763 "cut.ml" | 2 -> let lxm = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 773 "cut.mll" (put_char lxm ; repeat_header lexbuf) # 1770 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_repeat_header_rec lexbuf __ocaml_lex_state and collect_style lexbuf = __ocaml_lex_collect_style_rec lexbuf 284 and __ocaml_lex_collect_style_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 776 "cut.mll" ( () ) # 1781 "cut.ml" | 1 -> let c = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 778 "cut.mll" ( CutOut.put_char style_buff c ; collect_style lexbuf ) # 1788 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_collect_style_rec lexbuf __ocaml_lex_state and skip_style lexbuf = __ocaml_lex_skip_style_rec lexbuf 293 and __ocaml_lex_skip_style_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 781 "cut.mll" ( () ) # 1799 "cut.ml" | 1 -> # 782 "cut.mll" ( skip_style lexbuf ) # 1804 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_style_rec lexbuf __ocaml_lex_state and skip_title lexbuf = __ocaml_lex_skip_title_rec lexbuf 302 and __ocaml_lex_skip_title_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 785 "cut.mll" (()) # 1815 "cut.ml" | 1 -> # 786 "cut.mll" (skip_title lexbuf) # 1820 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_title_rec lexbuf __ocaml_lex_state and footer lexbuf = __ocaml_lex_footer_rec lexbuf 311 and __ocaml_lex_footer_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> let lxm = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in # 790 "cut.mll" (if !phase > 0 then begin close_top lxm end) # 1835 "cut.ml" | 1 -> let lxm = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 793 "cut.mll" (if !phase = 0 then begin CutOut.put_char hevea_footer_buff lxm end ; footer lexbuf) # 1843 "cut.ml" | 2 -> # 795 "cut.mll" (raise (Misc.Fatal ("End of file in footer (no tag)"))) # 1848 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_footer_rec lexbuf __ocaml_lex_state and tocline lexbuf = __ocaml_lex_tocline_rec lexbuf 319 and __ocaml_lex_tocline_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 799 "cut.mll" (CutOut.to_string toc_buf) # 1859 "cut.ml" | 1 -> # 801 "cut.mll" (CutOut.put_char toc_buf (lexeme_char lexbuf 0) ; tocline lexbuf) # 1865 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_tocline_rec lexbuf __ocaml_lex_state and flowline lexbuf = __ocaml_lex_flowline_rec lexbuf 323 and __ocaml_lex_flowline_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 807 "cut.mll" (let title = arg lexbuf in let _ = flowline lexbuf in title) # 1878 "cut.ml" | 1 -> # 811 "cut.mll" ("") # 1883 "cut.ml" | 2 -> # 812 "cut.mll" (raise (Misc.Fatal "Unclosed comment")) # 1888 "cut.ml" | 3 -> # 813 "cut.mll" (flowline lexbuf) # 1893 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_flowline_rec lexbuf __ocaml_lex_state and getargs lexbuf = __ocaml_lex_getargs_rec lexbuf 337 and __ocaml_lex_getargs_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 816 "cut.mll" ([]) # 1904 "cut.ml" | 1 -> # 818 "cut.mll" (let name = argname lexbuf in let r = arg lexbuf in (name,r)::getargs lexbuf) # 1911 "cut.ml" | 2 -> # 821 "cut.mll" (raise (Misc.Fatal "Unclosed comment")) # 1916 "cut.ml" | 3 -> # 822 "cut.mll" (getargs lexbuf) # 1921 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_getargs_rec lexbuf __ocaml_lex_state and argname lexbuf = __ocaml_lex_argname_rec lexbuf 345 and __ocaml_lex_argname_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 826 "cut.mll" (let lxm = lexeme lexbuf in String.sub lxm 0 (String.length lxm-1)) # 1933 "cut.ml" | 1 -> # 828 "cut.mll" (raise (Misc.Fatal "ARG title")) # 1938 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_argname_rec lexbuf __ocaml_lex_state and arg lexbuf = __ocaml_lex_arg_rec lexbuf 347 and __ocaml_lex_arg_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 831 "cut.mll" (CutOut.to_string arg_buf) # 1949 "cut.ml" | 1 -> # 832 "cut.mll" (CutOut.put_char arg_buf (Lexing.lexeme_char lexbuf 0) ; arg lexbuf) # 1954 "cut.ml" | 2 -> # 833 "cut.mll" (raise (Misc.Fatal "Unclosed arg")) # 1959 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_arg_rec lexbuf __ocaml_lex_state and aargs lexbuf = __ocaml_lex_aargs_rec lexbuf 353 and __ocaml_lex_aargs_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 838 "cut.mll" (if !phase = 0 then begin let name = refname lexbuf in Cross.add name !outname end else put (lexeme lexbuf) ; aargs lexbuf) # 1975 "cut.ml" | 1 -> # 845 "cut.mll" (if !phase > 0 then begin let lxm = lexeme lexbuf in let name = refname lexbuf in try let newname = if String.length name > 0 && String.get name 0 = '#' then Cross.fullname check_changed !outname (String.sub name 1 (String.length name-1)) else name in put lxm ; put "\"" ; put newname ; put "\"" with Not_found -> () end ; aargs lexbuf) # 1996 "cut.ml" | 2 -> # 863 "cut.mll" (if !phase > 0 then put_char '>' ; main lexbuf) # 2002 "cut.ml" | 3 -> # 866 "cut.mll" (if !phase > 0 then put_char (lexeme_char lexbuf 0) ; aargs lexbuf) # 2008 "cut.ml" | 4 -> # 869 "cut.mll" (raise (Error "Bad tag")) # 2013 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_aargs_rec lexbuf __ocaml_lex_state and refname lexbuf = lexbuf.Lexing.lex_mem <- Array.create 4 (-1) ; (* L=1 [2] <- p ; *) lexbuf.Lexing.lex_mem.(2) <- lexbuf.Lexing.lex_curr_pos ; __ocaml_lex_refname_rec lexbuf 371 and __ocaml_lex_refname_rec lexbuf __ocaml_lex_state = match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> let name = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(1) lexbuf.Lexing.lex_mem.(0) in # 875 "cut.mll" ( name ) # 2028 "cut.ml" | 1 -> # 876 "cut.mll" (raise (Error "Bad reference name syntax")) # 2033 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_refname_rec lexbuf __ocaml_lex_state and skip_blanks lexbuf = __ocaml_lex_skip_blanks_rec lexbuf 376 and __ocaml_lex_skip_blanks_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 879 "cut.mll" (()) # 2044 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_blanks_rec lexbuf __ocaml_lex_state and skip_endcom lexbuf = __ocaml_lex_skip_endcom_rec lexbuf 377 and __ocaml_lex_skip_endcom_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 882 "cut.mll" (()) # 2055 "cut.ml" | 1 -> # 883 "cut.mll" (raise (Error "Bad HTML comment syntax")) # 2060 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_endcom_rec lexbuf __ocaml_lex_state and skip_aref lexbuf = __ocaml_lex_skip_aref_rec lexbuf 382 and __ocaml_lex_skip_aref_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 885 "cut.mll" (()) # 2071 "cut.ml" | 1 -> # 886 "cut.mll" (skip_aref lexbuf) # 2076 "cut.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_aref_rec lexbuf __ocaml_lex_state ;;