File: 01_basic_b.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 (82 lines) | stat: -rw-r--r-- 2,502 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
(* Generated by re2ocaml *)
#1 "codegen/ocaml/01_basic_b.re"
(* re2ocaml $INPUT -o $OUTPUT -b *)

type state = {
    str: string;
    mutable cur: int;
}


#12 "codegen/ocaml/01_basic_b.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_b.re"
    false
#23 "codegen/ocaml/01_basic_b.ml"

and yy2 (st : state) : bool =
    let yych = st.str.[st.cur] in
    if ((yybm.(0 + Char.code yych) land 128) != 0) then (
        st.cur <- st.cur + 1;
        (yy2 [@tailcall]) st
    ) else (
        (yy3 [@tailcall]) st
    )

and yy3 (st : state) : bool =
#17 "codegen/ocaml/01_basic_b.re"
    true
#37 "codegen/ocaml/01_basic_b.ml"

and lex (st : state) : bool =
    (yy0 [@tailcall]) st

and yybm = [|
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
    128; 128; 128; 128; 128; 128; 128; 128;
    128; 128;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
      0;   0;   0;   0;   0;   0;   0;   0;
|]
#19 "codegen/ocaml/01_basic_b.re"


let main () =
    let st = {str = "1234\x00"; cur = 0}
    in if not (lex st) then raise (Failure "error")

let _ = main ()