Refactoring of rec process "~" in faustexp.ml.
[Faustine.git] / interpretor / parser.ml
1 type token =
2 | CONST of (string)
3 | IDENT of (Types.symbol)
4 | LPAR
5 | RPAR
6 | SEQ
7 | SPLIT
8 | MERGE
9 | PAR
10 | REC
11 | EOF
12 | POINT
13
14 open Parsing;;
15 # 1 "parser.mly"
16
17 open Types
18 # 19 "parser.ml"
19 let yytransl_const = [|
20 259 (* LPAR *);
21 260 (* RPAR *);
22 261 (* SEQ *);
23 262 (* SPLIT *);
24 263 (* MERGE *);
25 264 (* PAR *);
26 265 (* REC *);
27 0 (* EOF *);
28 266 (* POINT *);
29 0|]
30
31 let yytransl_block = [|
32 257 (* CONST *);
33 258 (* IDENT *);
34 0|]
35
36 let yylhs = "\255\255\
37 \001\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
38 \002\000\002\000\002\000\000\000"
39
40 let yylen = "\002\000\
41 \002\000\001\000\002\000\003\000\001\000\003\000\003\000\003\000\
42 \003\000\003\000\003\000\002\000"
43
44 let yydefred = "\000\000\
45 \000\000\000\000\000\000\005\000\000\000\012\000\000\000\000\000\
46 \000\000\000\000\000\000\000\000\000\000\000\000\001\000\004\000\
47 \006\000\000\000\000\000\000\000\000\000\011\000"
48
49 let yydgoto = "\002\000\
50 \006\000\007\000"
51
52 let yysindex = "\255\255\
53 \008\255\000\000\024\255\000\000\008\255\000\000\012\000\032\255\
54 \023\255\008\255\008\255\008\255\008\255\008\255\000\000\000\000\
55 \000\000\016\255\253\254\253\254\011\255\000\000"
56
57 let yyrindex = "\000\000\
58 \000\000\000\000\001\000\000\000\000\000\000\000\000\000\007\000\
59 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
60 \000\000\022\000\023\000\026\000\018\000\000\000"
61
62 let yygindex = "\000\000\
63 \000\000\003\000"
64
65 let yytablesize = 286
66 let yytable = "\001\000\
67 \002\000\010\000\011\000\012\000\013\000\014\000\003\000\009\000\
68 \003\000\004\000\005\000\015\000\018\000\019\000\020\000\021\000\
69 \022\000\007\000\013\000\014\000\010\000\010\000\008\000\013\000\
70 \014\000\009\000\017\000\010\000\011\000\012\000\013\000\014\000\
71 \016\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\
72 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
73 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
74 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
75 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
76 \000\000\000\000\000\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\000\000\000\000\000\000\
93 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
94 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
95 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
96 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
97 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
98 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
99 \000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
100 \002\000\002\000\003\000\003\000\003\000\003\000\003\000\003\000\
101 \010\000\011\000\012\000\013\000\014\000\007\000\007\000\007\000\
102 \007\000\010\000\008\000\010\000\010\000\009\000"
103
104 let yycheck = "\001\000\
105 \000\000\005\001\006\001\007\001\008\001\009\001\000\000\005\000\
106 \001\001\002\001\003\001\000\000\010\000\011\000\012\000\013\000\
107 \014\000\000\000\008\001\009\001\005\001\000\000\000\000\008\001\
108 \009\001\000\000\004\001\005\001\006\001\007\001\008\001\009\001\
109 \001\001\010\001\255\255\255\255\255\255\255\255\255\255\255\255\
110 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
111 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
112 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
113 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
114 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
115 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
116 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
117 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
118 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
119 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
120 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
121 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
122 \255\255\255\255\255\255\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 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
127 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
128 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
129 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
130 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
131 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
132 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
133 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
134 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
135 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
136 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
137 \255\255\255\255\255\255\255\255\004\001\005\001\006\001\007\001\
138 \008\001\009\001\004\001\005\001\006\001\007\001\008\001\009\001\
139 \005\001\006\001\007\001\008\001\009\001\004\001\005\001\006\001\
140 \007\001\004\001\004\001\006\001\007\001\004\001"
141
142 let yynames_const = "\
143 LPAR\000\
144 RPAR\000\
145 SEQ\000\
146 SPLIT\000\
147 MERGE\000\
148 PAR\000\
149 REC\000\
150 EOF\000\
151 POINT\000\
152 "
153
154 let yynames_block = "\
155 CONST\000\
156 IDENT\000\
157 "
158
159 let yyact = [|
160 (fun _ -> failwith "parser")
161 ; (fun __caml_parser_env ->
162 let _1 = (Parsing.peek_val __caml_parser_env 1 : 'faust_exp) in
163 Obj.repr(
164 # 16 "parser.mly"
165 ( _1 )
166 # 167 "parser.ml"
167 : Types.faust_exp))
168 ; (fun __caml_parser_env ->
169 let _1 = (Parsing.peek_val __caml_parser_env 0 : string) in
170 Obj.repr(
171 # 17 "parser.mly"
172 ( Const(N (int_of_string _1)) )
173 # 174 "parser.ml"
174 : 'faust_exp))
175 ; (fun __caml_parser_env ->
176 let _1 = (Parsing.peek_val __caml_parser_env 1 : string) in
177 Obj.repr(
178 # 18 "parser.mly"
179 ( Const(R (float_of_string _1)) )
180 # 181 "parser.ml"
181 : 'faust_exp))
182 ; (fun __caml_parser_env ->
183 let _1 = (Parsing.peek_val __caml_parser_env 2 : string) in
184 let _3 = (Parsing.peek_val __caml_parser_env 0 : string) in
185 Obj.repr(
186 # 19 "parser.mly"
187 ( Const(R (float_of_string (_1 ^ "." ^ _3))) )
188 # 189 "parser.ml"
189 : 'faust_exp))
190 ; (fun __caml_parser_env ->
191 let _1 = (Parsing.peek_val __caml_parser_env 0 : Types.symbol) in
192 Obj.repr(
193 # 20 "parser.mly"
194 ( Ident(_1) )
195 # 196 "parser.ml"
196 : 'faust_exp))
197 ; (fun __caml_parser_env ->
198 let _2 = (Parsing.peek_val __caml_parser_env 1 : 'faust_exp) in
199 Obj.repr(
200 # 21 "parser.mly"
201 ( _2 )
202 # 203 "parser.ml"
203 : 'faust_exp))
204 ; (fun __caml_parser_env ->
205 let _1 = (Parsing.peek_val __caml_parser_env 2 : 'faust_exp) in
206 let _3 = (Parsing.peek_val __caml_parser_env 0 : 'faust_exp) in
207 Obj.repr(
208 # 22 "parser.mly"
209 ( Par(_1,_3) )
210 # 211 "parser.ml"
211 : 'faust_exp))
212 ; (fun __caml_parser_env ->
213 let _1 = (Parsing.peek_val __caml_parser_env 2 : 'faust_exp) in
214 let _3 = (Parsing.peek_val __caml_parser_env 0 : 'faust_exp) in
215 Obj.repr(
216 # 23 "parser.mly"
217 ( Split(_1,_3) )
218 # 219 "parser.ml"
219 : 'faust_exp))
220 ; (fun __caml_parser_env ->
221 let _1 = (Parsing.peek_val __caml_parser_env 2 : 'faust_exp) in
222 let _3 = (Parsing.peek_val __caml_parser_env 0 : 'faust_exp) in
223 Obj.repr(
224 # 24 "parser.mly"
225 ( Merge(_1,_3) )
226 # 227 "parser.ml"
227 : 'faust_exp))
228 ; (fun __caml_parser_env ->
229 let _1 = (Parsing.peek_val __caml_parser_env 2 : 'faust_exp) in
230 let _3 = (Parsing.peek_val __caml_parser_env 0 : 'faust_exp) in
231 Obj.repr(
232 # 25 "parser.mly"
233 ( Seq(_1,_3) )
234 # 235 "parser.ml"
235 : 'faust_exp))
236 ; (fun __caml_parser_env ->
237 let _1 = (Parsing.peek_val __caml_parser_env 2 : 'faust_exp) in
238 let _3 = (Parsing.peek_val __caml_parser_env 0 : 'faust_exp) in
239 Obj.repr(
240 # 26 "parser.mly"
241 ( Rec(_1,_3) )
242 # 243 "parser.ml"
243 : 'faust_exp))
244 (* Entry main *)
245 ; (fun __caml_parser_env -> raise (Parsing.YYexit (Parsing.peek_val __caml_parser_env 0)))
246 |]
247 let yytables =
248 { Parsing.actions=yyact;
249 Parsing.transl_const=yytransl_const;
250 Parsing.transl_block=yytransl_block;
251 Parsing.lhs=yylhs;
252 Parsing.len=yylen;
253 Parsing.defred=yydefred;
254 Parsing.dgoto=yydgoto;
255 Parsing.sindex=yysindex;
256 Parsing.rindex=yyrindex;
257 Parsing.gindex=yygindex;
258 Parsing.tablesize=yytablesize;
259 Parsing.table=yytable;
260 Parsing.check=yycheck;
261 Parsing.error_function=parse_error;
262 Parsing.names_const=yynames_const;
263 Parsing.names_block=yynames_block }
264 let main (lexfun : Lexing.lexbuf -> token) (lexbuf : Lexing.lexbuf) =
265 (Parsing.yyparse yytables 1 lexfun lexbuf : Types.faust_exp)