Seems to work
[rops.git] / lexer.ml
blobced153f446082fc1d99ff418a2e0d3adbfaa0c8a
1 # 7 "lexer.mll"
3 open Parser;;
5 exception Eof;;
7 let incr_linenum lexbuf =
8 let pos = lexbuf.Lexing.lex_curr_p in
9 lexbuf.Lexing.lex_curr_p <- { pos with
10 Lexing.pos_lnum = pos.Lexing.pos_lnum + 1;
11 Lexing.pos_bol = pos.Lexing.pos_cnum;
12 };;
14 let make_string x = STRING (String.sub x 1 ((String.length x) - 2));;
17 # 18 "lexer.ml"
18 let __ocaml_lex_tables = {
19 Lexing.lex_base =
20 "\000\000\244\255\245\255\246\255\247\255\248\255\001\000\090\000\
21 \251\255\169\000\003\000\002\000\255\255\254\255\003\000\004\000\
22 \228\000";
23 Lexing.lex_backtrk =
24 "\255\255\255\255\255\255\255\255\255\255\255\255\006\000\005\000\
25 \255\255\003\000\002\000\255\255\255\255\255\255\255\255\001\000\
26 \005\000";
27 Lexing.lex_default =
28 "\255\255\000\000\000\000\000\000\000\000\000\000\006\000\255\255\
29 \000\000\255\255\255\255\011\000\000\000\000\000\011\000\011\000\
30 \255\255";
31 Lexing.lex_trans =
32 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
33 \000\000\010\000\012\000\255\255\010\000\010\000\000\000\000\000\
34 \010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
35 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
36 \010\000\000\000\011\000\010\000\013\000\015\000\013\000\000\000\
37 \003\000\002\000\008\000\008\000\000\000\008\000\000\000\008\000\
38 \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
39 \009\000\009\000\000\000\006\000\000\000\008\000\000\000\000\000\
40 \000\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
41 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
42 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
43 \007\000\007\000\007\000\005\000\000\000\004\000\014\000\014\000\
44 \014\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
45 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
46 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
47 \007\000\007\000\007\000\016\000\016\000\016\000\016\000\016\000\
48 \016\000\000\000\000\000\000\000\016\000\016\000\000\000\016\000\
49 \000\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
50 \016\000\016\000\016\000\016\000\016\000\000\000\016\000\016\000\
51 \016\000\016\000\016\000\007\000\007\000\007\000\007\000\007\000\
52 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
53 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
54 \007\000\007\000\007\000\007\000\007\000\000\000\000\000\000\000\
55 \016\000\016\000\000\000\007\000\007\000\007\000\007\000\007\000\
56 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
57 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
58 \007\000\007\000\007\000\007\000\007\000\000\000\016\000\000\000\
59 \016\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
60 \009\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\
61 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
62 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
63 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
64 \001\000\255\255\255\255\255\255\255\255\016\000\016\000\016\000\
65 \016\000\016\000\016\000\000\000\000\000\000\000\016\000\016\000\
66 \000\000\016\000\000\000\016\000\016\000\016\000\016\000\016\000\
67 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\000\000\
68 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
69 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
70 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
71 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\000\000\
72 \000\000\000\000\016\000\016\000\000\000\016\000\016\000\016\000\
73 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
74 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
75 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\000\000\
76 \016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\
77 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
78 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
79 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
80 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
81 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
82 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
83 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
84 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
85 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
86 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
87 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
88 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
89 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
90 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
91 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
92 \000\000\000\000\000\000\000\000\000\000";
93 Lexing.lex_check =
94 "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
95 \255\255\000\000\000\000\006\000\010\000\000\000\255\255\255\255\
96 \010\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
97 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
98 \000\000\255\255\000\000\010\000\011\000\014\000\015\000\255\255\
99 \000\000\000\000\000\000\000\000\255\255\000\000\255\255\000\000\
100 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
101 \000\000\000\000\255\255\000\000\255\255\000\000\255\255\255\255\
102 \255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
103 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
104 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
105 \000\000\000\000\000\000\000\000\255\255\000\000\011\000\014\000\
106 \015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
107 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
108 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
109 \000\000\000\000\000\000\007\000\007\000\007\000\007\000\007\000\
110 \007\000\255\255\255\255\255\255\007\000\007\000\255\255\007\000\
111 \255\255\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
112 \007\000\007\000\007\000\007\000\007\000\255\255\007\000\007\000\
113 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
114 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
115 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
116 \007\000\007\000\007\000\007\000\007\000\255\255\255\255\255\255\
117 \007\000\007\000\255\255\007\000\007\000\007\000\007\000\007\000\
118 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
119 \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\
120 \007\000\007\000\007\000\007\000\007\000\255\255\007\000\255\255\
121 \007\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
122 \009\000\009\000\009\000\255\255\255\255\255\255\255\255\255\255\
123 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
124 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
125 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
126 \000\000\006\000\011\000\014\000\015\000\016\000\016\000\016\000\
127 \016\000\016\000\016\000\255\255\255\255\255\255\016\000\016\000\
128 \255\255\016\000\255\255\016\000\016\000\016\000\016\000\016\000\
129 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\255\255\
130 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
131 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
132 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
133 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\255\255\
134 \255\255\255\255\016\000\016\000\255\255\016\000\016\000\016\000\
135 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
136 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
137 \016\000\016\000\016\000\016\000\016\000\016\000\016\000\255\255\
138 \016\000\255\255\016\000\255\255\255\255\255\255\255\255\255\255\
139 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
140 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
141 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
142 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
143 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
144 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
145 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
146 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
147 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
148 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
149 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
150 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
151 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
152 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
153 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
154 \255\255\255\255\255\255\255\255\255\255";
155 Lexing.lex_base_code =
157 Lexing.lex_backtrk_code =
159 Lexing.lex_default_code =
161 Lexing.lex_trans_code =
163 Lexing.lex_check_code =
165 Lexing.lex_code =
169 let rec token lexbuf =
170 __ocaml_lex_token_rec lexbuf 0
171 and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
172 match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
173 | 0 ->
174 # 39 "lexer.mll"
176 incr_linenum lexbuf;
177 token lexbuf
179 # 180 "lexer.ml"
181 | 1 ->
183 # 43 "lexer.mll"
185 # 186 "lexer.ml"
186 = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
187 # 43 "lexer.mll"
188 ( make_string s )
189 # 190 "lexer.ml"
191 | 2 ->
192 # 44 "lexer.mll"
193 ( token lexbuf )
194 # 195 "lexer.ml"
196 | 3 ->
198 # 45 "lexer.mll"
199 inum
200 # 201 "lexer.ml"
201 = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
202 # 46 "lexer.mll"
204 INT (int_of_string inum)
206 # 207 "lexer.ml"
208 | 4 ->
210 # 49 "lexer.mll"
212 # 213 "lexer.ml"
213 = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in
214 # 49 "lexer.mll"
215 ( SYMBOL (Char.escaped op) )
216 # 217 "lexer.ml"
218 | 5 ->
220 # 50 "lexer.mll"
222 # 223 "lexer.ml"
223 = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
224 # 50 "lexer.mll"
225 ( SYMBOL s )
226 # 227 "lexer.ml"
228 | 6 ->
229 # 51 "lexer.mll"
230 ( token lexbuf )
231 # 232 "lexer.ml"
233 | 7 ->
234 # 52 "lexer.mll"
235 ( LBRACKET )
236 # 237 "lexer.ml"
238 | 8 ->
239 # 53 "lexer.mll"
240 ( RBRACKET )
241 # 242 "lexer.ml"
243 | 9 ->
244 # 54 "lexer.mll"
245 ( LPAREN )
246 # 247 "lexer.ml"
248 | 10 ->
249 # 55 "lexer.mll"
250 ( RPAREN )
251 # 252 "lexer.ml"
253 | 11 ->
254 # 56 "lexer.mll"
255 ( raise Eof )
256 # 257 "lexer.ml"
258 | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state