File: 01_basic_s.ml

package info (click to toggle)
re2c 4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 50,052 kB
  • sloc: cpp: 32,477; ml: 8,279; sh: 5,265; makefile: 968; haskell: 612; python: 428; ansic: 227; javascript: 111; java: 3
file content (50 lines) | stat: -rw-r--r-- 1,111 bytes parent folder | download | duplicates (2)
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 ()