1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
(* Generated by re2ocaml *)
#1 "codegen/ocaml/01_basic_s.re"
(* re2ocaml $INPUT -o $OUTPUT -s *)
type state = {
str: string;
mutable cur: int;
}
#12 "codegen/ocaml/01_basic_s.ml"
let rec yy0 (st : state) : bool =
let yych = st.str.[st.cur] in
st.cur <- st.cur + 1;
if (yych <= '0') then (yy1 [@tailcall]) st
else if (yych <= '9') then (yy2 [@tailcall]) st
else (yy1 [@tailcall]) st
and yy1 (st : state) : bool =
#18 "codegen/ocaml/01_basic_s.re"
false
#23 "codegen/ocaml/01_basic_s.ml"
and yy2 (st : state) : bool =
let yych = st.str.[st.cur] in
if (yych <= '/') then (
(yy3 [@tailcall]) st
) else if (yych <= '9') then (
st.cur <- st.cur + 1;
(yy2 [@tailcall]) st
) else (
(yy3 [@tailcall]) st
)
and yy3 (st : state) : bool =
#17 "codegen/ocaml/01_basic_s.re"
true
#39 "codegen/ocaml/01_basic_s.ml"
and lex (st : state) : bool =
(yy0 [@tailcall]) st
#19 "codegen/ocaml/01_basic_s.re"
let main () =
let st = {str = "1234\x00"; cur = 0}
in if not (lex st) then raise (Failure "error")
let _ = main ()
|