1use std::str::FromStr;
4use crate::ast;
5#[allow(unused_extern_crates)]
6extern crate lalrpop_util as __lalrpop_util;
7#[allow(unused_imports)]
8use self::__lalrpop_util::state_machine as __state_machine;
9extern crate core;
10extern crate alloc;
11
12#[cfg_attr(rustfmt, rustfmt_skip)]
13mod __parse__Program {
14 #![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports, unused_parens)]
15
16 use std::str::FromStr;
17 use crate::ast;
18 #[allow(unused_extern_crates)]
19 extern crate lalrpop_util as __lalrpop_util;
20 #[allow(unused_imports)]
21 use self::__lalrpop_util::state_machine as __state_machine;
22 extern crate core;
23 extern crate alloc;
24 use self::__lalrpop_util::lexer::Token;
25 #[allow(dead_code)]
26 pub(crate) enum __Symbol<'input>
27 {
28 Variant0(&'input str),
29 Variant1((ast::Expr, ast::Expr)),
30 Variant2(alloc::vec::Vec<(ast::Expr, ast::Expr)>),
31 Variant3(ast::Expr),
32 Variant4(alloc::vec::Vec<ast::Expr>),
33 Variant5(core::option::Option<(ast::Expr, ast::Expr)>),
34 Variant6(ast::Block),
35 Variant7(Vec<(ast::Expr, ast::Expr)>),
36 Variant8(Vec<ast::Expr>),
37 Variant9(core::option::Option<ast::Expr>),
38 Variant10(String),
39 Variant11(f64),
40 Variant12(ast::Pattern),
41 Variant13(alloc::vec::Vec<ast::Pattern>),
42 Variant14(ast::Program),
43 Variant15(ast::Statement),
44 Variant16(alloc::vec::Vec<ast::Statement>),
45 }
46 const __ACTION: &[i8] = &[
47 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 9, 0, 0, 34, 10, 0, 35, 36, 37, 38,
49 4, 5, 32, -28, -28, 0, 13, 14, -28, -28, -28, 0, 6, -28, -28, 33, 0, 0, 0, 0, -28, 34, 10, -28, 35, 36, 37, 38,
51 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 9, 0, 0, 34, 10, 0, 35, 36, 37, 38,
53 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, -18, 35, 36, 37, 38,
55 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
57 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, -22, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
59 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
61 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
63 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 37, 0,
65 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 9, 0, 0, 34, 10, -15, 35, 36, 37, 38,
67 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
69 4, 5, 32, -26, -26, 0, 0, 0, -26, -26, -26, 0, 6, -26, -26, 33, 0, 0, 0, 0, -26, 34, 10, -26, 35, 36, 37, 38,
71 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, 37, 0,
73 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
75 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, -20, 35, 36, 37, 38,
77 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, -24, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
79 0, 0, 49, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
81 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
83 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 9, 0, 0, 34, 10, -15, 35, 36, 37, 38,
85 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
87 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
89 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
91 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
93 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
95 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
97 4, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 33, 7, 8, 0, 0, 0, 34, 10, 0, 35, 36, 37, 38,
99 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
101 -45, -45, -45, -45, -45, 0, -45, -45, -45, -45, -45, 0, -45, -45, -45, -45, 0, 0, 0, 0, -45, -45, -45, -45, -45, -45, -45, -45,
103 -43, -43, -43, -43, -43, 0, -43, -43, -43, -43, -43, 0, -43, -43, -43, -43, 0, 0, 0, 0, -43, -43, -43, -43, -43, -43, -43, -43,
105 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,
107 -60, -60, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, -60, 0, 0, -60, -60, -60, -60, 0, 0, -60, -60, 0, -60, -60, -60, -60,
109 -40, -40, -40, -40, -40, 0, -40, -40, -40, -40, -40, 0, -40, -40, -40, -40, 0, 0, 0, 0, -40, -40, -40, -40, -40, -40, -40, -40,
111 -42, -42, -42, -42, -42, 0, -42, -42, -42, -42, -42, 0, -42, -42, -42, -42, 0, 0, 0, 0, -42, -42, -42, -42, -42, -42, -42, -42,
113 -41, -41, -41, -41, -41, 0, -41, -41, -41, -41, -41, 0, -41, -41, -41, -41, 0, 0, 0, 0, -41, -41, -41, -41, -41, -41, -41, -41,
115 -44, -44, -44, -44, -44, 0, -44, -44, -44, -44, -44, 0, -44, -44, -44, -44, 0, 0, 0, 0, -44, -44, -44, -44, -44, -44, -44, -44,
117 -32, -32, -32, -32, -32, 0, -32, -32, -32, -32, -32, 0, -32, -32, -32, -32, 0, 0, 0, 0, -32, -32, -32, -32, -32, -32, -32, -32,
119 -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 0, 0, 0, 0, -31, -31, -31, -31, -31, -31, -31, -31,
121 -51, -51, -51, -51, -51, 0, -51, -51, -51, -51, -51, 0, -51, -51, -51, -51, 0, 0, 0, 0, -51, -51, -51, -51, -51, -51, -51, -51,
123 -57, -57, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, -57, -57, -57, -57, 0, 0, -57, -57, -57, -57, -57, -57, -57,
125 -52, -52, -52, -52, -52, 0, 13, 14, -52, -52, -52, 0, -52, -52, -52, -52, 0, 0, 0, 0, -52, -52, -52, -52, -52, -52, -52, -52,
127 -61, -61, -61, 0, 0, 0, 0, 0, 0, 0, 0, 0, -61, 0, 0, -61, -61, -61, -61, 0, 0, -61, -61, 0, -61, -61, -61, -61,
129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0,
131 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
133 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
137 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
139 0, 0, -34, 0, 0, -34, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0,
141 0, 0, -35, 0, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35, 0,
143 0, 0, -33, 0, 0, -33, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0,
145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0,
151 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155 -53, -53, -53, -53, -53, 0, 13, 14, -53, -53, -53, 0, -53, -53, -53, -53, 0, 0, 0, 0, -53, -53, -53, -53, -53, -53, -53, -53,
157 -50, -50, -50, -50, -50, 0, -50, -50, -50, -50, -50, 0, -50, -50, -50, -50, 0, 0, 0, 0, -50, -50, -50, -50, -50, -50, -50, -50,
159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
163 -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, -48, 0, -48, -48, -48, -48, 0, 0, 0, 0, -48, -48, -48, -48, -48, -48, -48, -48,
165 -39, -39, -39, -39, -39, 0, -39, -39, -39, -39, -39, 0, -39, -39, -39, -39, 0, 0, 0, 0, -39, -39, -39, -39, -39, -39, -39, -39,
167 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
169 -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, -47, 0, -47, -47, -47, -47, 0, 0, 0, 0, -47, -47, -47, -47, -47, -47, -47, -47,
171 -9, -9, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, -9, 0, -9, -9, -9, 0, 0, 0, -9, -9, 0, -9, -9, -9, -9,
173 0, 0, -36, 0, 0, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0,
175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
177 -46, -46, -46, -46, -46, 0, -46, -46, -46, -46, -46, 0, -46, -46, -46, -46, 0, 0, 0, 0, -46, -46, -46, -46, -46, -46, -46, -46,
179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0,
181 -56, -56, -56, 0, 0, 0, 0, 0, 0, 0, 0, 0, -56, 0, 0, -56, -56, -56, -56, 0, 0, -56, -56, -56, -56, -56, -56, -56,
183 -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, -49, 0, -49, -49, -49, -49, 0, 0, 0, 0, -49, -49, -49, -49, -49, -49, -49, -49,
185 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0,
187 -10, -10, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, -10, 0, -10, -10, -10, 0, 0, 0, -10, -10, 0, -10, -10, -10, -10,
189 0, 0, 0, -25, -25, 0, 0, 0, -25, -25, -25, 0, 0, -25, -25, 0, 0, 0, 0, 0, -25, 0, 0, -25, 0, 0, 0, 0,
191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
193 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
195 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0,
197 -4, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -4, -4, -4, 0, 0, 0, -4, -4, -4, -4, -4, -4, -4,
199 -55, -55, -55, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 0, -55, -55, -55, -55, 0, 0, -55, -55, -55, -55, -55, -55, -55,
201 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
203 -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, -5, -5, -5, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5,
205 0, 0, 0, -27, -27, 0, 0, 0, -27, -27, -27, 0, 0, -27, -27, 0, 0, 0, 0, 0, -27, 0, 0, -27, 0, 0, 0, 0,
207 -54, -54, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 0, 0, -54, -54, -54, -54, 0, 0, -54, -54, -54, -54, -54, -54, -54,
209 ];
210 fn __action(state: i8, integer: usize) -> i8 {
211 __ACTION[(state as usize) * 28 + integer]
212 }
213 const __EOF_ACTION: &[i8] = &[
214 -37,
216 0,
218 -38,
220 0,
222 0,
224 0,
226 0,
228 0,
230 0,
232 0,
234 0,
236 0,
238 0,
240 0,
242 0,
244 0,
246 0,
248 0,
250 0,
252 0,
254 0,
256 0,
258 0,
260 0,
262 0,
264 0,
266 0,
268 0,
270 0,
272 -62,
274 -60,
276 0,
278 0,
280 0,
282 0,
284 0,
286 0,
288 0,
290 -57,
292 0,
294 -61,
296 0,
298 0,
300 0,
302 0,
304 0,
306 0,
308 0,
310 0,
312 0,
314 0,
316 0,
318 0,
320 0,
322 0,
324 0,
326 0,
328 0,
330 0,
332 0,
334 0,
336 0,
338 0,
340 0,
342 0,
344 0,
346 0,
348 -56,
350 0,
352 0,
354 0,
356 0,
358 0,
360 0,
362 0,
364 0,
366 -55,
368 0,
370 0,
372 0,
374 -54,
376 ];
377 fn __goto(state: i8, nt: usize) -> i8 {
378 match nt {
379 2 => 14,
380 5 => 15,
381 8 => match state {
382 18 => 66,
383 _ => 51,
384 },
385 9 => 41,
386 10 => 44,
387 11 => match state {
388 3 => 42,
389 4 => 43,
390 5 => 45,
391 7 => 49,
392 9 | 18 => 52,
393 10 => 53,
394 13 => 56,
395 14 => 57,
396 15 => 60,
397 19 => 69,
398 20 => 71,
399 21 => 72,
400 22 => 73,
401 23 => 74,
402 24 => 77,
403 25 => 79,
404 _ => 26,
405 },
406 13 => match state {
407 6 | 8 | 16..=17 => 46,
408 12 => 55,
409 _ => 27,
410 },
411 14 => 28,
412 15 => match state {
413 8 => 50,
414 16 => 63,
415 17 => 64,
416 _ => 47,
417 },
418 16 => 16,
419 17 => 29,
420 18 => match state {
421 1 => 39,
422 11 => 54,
423 _ => 1,
424 },
425 19 => 11,
426 20 => match state {
427 0 => 30,
428 2 => 40,
429 _ => 18,
430 },
431 22 => 2,
432 _ => 0,
433 }
434 }
435 fn __expected_tokens(__state: i8) -> alloc::vec::Vec<alloc::string::String> {
436 const __TERMINAL: &[&str] = &[
437 r###""%{""###,
438 r###""(""###,
439 r###""()""###,
440 r###"")""###,
441 r###"",""###,
442 r###""->""###,
443 r###"".""###,
444 r###"".[""###,
445 r###"":""###,
446 r###"";""###,
447 r###""<-""###,
448 r###""=""###,
449 r###""[""###,
450 r###""]""###,
451 r###""else""###,
452 r###""false""###,
453 r###""fun""###,
454 r###""if""###,
455 r###""let""###,
456 r###""rec""###,
457 r###""then""###,
458 r###""true""###,
459 r###""{""###,
460 r###""}""###,
461 r###"r#"\"[^\"]*\""#"###,
462 r###"r#"[0-9]+(\\.[0-9]+)?"#"###,
463 r###"r#"[a-zA-Z_][a-zA-Z0-9_]*"#"###,
464 r###"r#"raw`[^`]*`"#"###,
465 ];
466 __TERMINAL.iter().enumerate().filter_map(|(index, terminal)| {
467 let next_state = __action(__state, index);
468 if next_state == 0 {
469 None
470 } else {
471 Some(alloc::string::ToString::to_string(terminal))
472 }
473 }).collect()
474 }
475 pub(crate) struct __StateMachine<'input>
476 where
477 {
478 input: &'input str,
479 __phantom: core::marker::PhantomData<(&'input ())>,
480 }
481 impl<'input> __state_machine::ParserDefinition for __StateMachine<'input>
482 where
483 {
484 type Location = usize;
485 type Error = &'static str;
486 type Token = Token<'input>;
487 type TokenIndex = usize;
488 type Symbol = __Symbol<'input>;
489 type Success = ast::Program;
490 type StateIndex = i8;
491 type Action = i8;
492 type ReduceIndex = i8;
493 type NonterminalIndex = usize;
494
495 #[inline]
496 fn start_location(&self) -> Self::Location {
497 Default::default()
498 }
499
500 #[inline]
501 fn start_state(&self) -> Self::StateIndex {
502 0
503 }
504
505 #[inline]
506 fn token_to_index(&self, token: &Self::Token) -> Option<usize> {
507 __token_to_integer(token, core::marker::PhantomData::<(&())>)
508 }
509
510 #[inline]
511 fn action(&self, state: i8, integer: usize) -> i8 {
512 __action(state, integer)
513 }
514
515 #[inline]
516 fn error_action(&self, state: i8) -> i8 {
517 __action(state, 28 - 1)
518 }
519
520 #[inline]
521 fn eof_action(&self, state: i8) -> i8 {
522 __EOF_ACTION[state as usize]
523 }
524
525 #[inline]
526 fn goto(&self, state: i8, nt: usize) -> i8 {
527 __goto(state, nt)
528 }
529
530 fn token_to_symbol(&self, token_index: usize, token: Self::Token) -> Self::Symbol {
531 __token_to_symbol(token_index, token, core::marker::PhantomData::<(&())>)
532 }
533
534 fn expected_tokens(&self, state: i8) -> alloc::vec::Vec<alloc::string::String> {
535 __expected_tokens(state)
536 }
537
538 #[inline]
539 fn uses_error_recovery(&self) -> bool {
540 false
541 }
542
543 #[inline]
544 fn error_recovery_symbol(
545 &self,
546 recovery: __state_machine::ErrorRecovery<Self>,
547 ) -> Self::Symbol {
548 panic!("error recovery not enabled for this grammar")
549 }
550
551 fn reduce(
552 &mut self,
553 action: i8,
554 start_location: Option<&Self::Location>,
555 states: &mut alloc::vec::Vec<i8>,
556 symbols: &mut alloc::vec::Vec<__state_machine::SymbolTriple<Self>>,
557 ) -> Option<__state_machine::ParseResult<Self>> {
558 __reduce(
559 self.input,
560 action,
561 start_location,
562 states,
563 symbols,
564 core::marker::PhantomData::<(&())>,
565 )
566 }
567
568 fn simulate_reduce(&self, action: i8) -> __state_machine::SimulatedReduce<Self> {
569 panic!("error recovery not enabled for this grammar")
570 }
571 }
572 fn __token_to_integer<
573 'input,
574 >(
575 __token: &Token<'input>,
576 _: core::marker::PhantomData<(&'input ())>,
577 ) -> Option<usize>
578 {
579 match *__token {
580 Token(4, _) if true => Some(0),
581 Token(5, _) if true => Some(1),
582 Token(6, _) if true => Some(2),
583 Token(7, _) if true => Some(3),
584 Token(8, _) if true => Some(4),
585 Token(9, _) if true => Some(5),
586 Token(10, _) if true => Some(6),
587 Token(11, _) if true => Some(7),
588 Token(12, _) if true => Some(8),
589 Token(13, _) if true => Some(9),
590 Token(14, _) if true => Some(10),
591 Token(15, _) if true => Some(11),
592 Token(16, _) if true => Some(12),
593 Token(17, _) if true => Some(13),
594 Token(18, _) if true => Some(14),
595 Token(19, _) if true => Some(15),
596 Token(20, _) if true => Some(16),
597 Token(21, _) if true => Some(17),
598 Token(22, _) if true => Some(18),
599 Token(23, _) if true => Some(19),
600 Token(24, _) if true => Some(20),
601 Token(25, _) if true => Some(21),
602 Token(26, _) if true => Some(22),
603 Token(27, _) if true => Some(23),
604 Token(0, _) if true => Some(24),
605 Token(1, _) if true => Some(25),
606 Token(2, _) if true => Some(26),
607 Token(3, _) if true => Some(27),
608 _ => None,
609 }
610 }
611 fn __token_to_symbol<
612 'input,
613 >(
614 __token_index: usize,
615 __token: Token<'input>,
616 _: core::marker::PhantomData<(&'input ())>,
617 ) -> __Symbol<'input>
618 {
619 match __token_index {
620 0 | 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 => match __token {
621 Token(4, __tok0) | Token(5, __tok0) | Token(6, __tok0) | Token(7, __tok0) | Token(8, __tok0) | Token(9, __tok0) | Token(10, __tok0) | Token(11, __tok0) | Token(12, __tok0) | Token(13, __tok0) | Token(14, __tok0) | Token(15, __tok0) | Token(16, __tok0) | Token(17, __tok0) | Token(18, __tok0) | Token(19, __tok0) | Token(20, __tok0) | Token(21, __tok0) | Token(22, __tok0) | Token(23, __tok0) | Token(24, __tok0) | Token(25, __tok0) | Token(26, __tok0) | Token(27, __tok0) | Token(0, __tok0) | Token(1, __tok0) | Token(2, __tok0) | Token(3, __tok0) if true => __Symbol::Variant0(__tok0),
622 _ => unreachable!(),
623 },
624 _ => unreachable!(),
625 }
626 }
627 pub struct ProgramParser {
628 builder: __lalrpop_util::lexer::MatcherBuilder,
629 _priv: (),
630 }
631
632 impl ProgramParser {
633 pub fn new() -> ProgramParser {
634 let __builder = super::__intern_token::new_builder();
635 ProgramParser {
636 builder: __builder,
637 _priv: (),
638 }
639 }
640
641 #[allow(dead_code)]
642 pub fn parse<
643 'input,
644 >(
645 &self,
646 input: &'input str,
647 ) -> Result<ast::Program, __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>
648 {
649 let mut __tokens = self.builder.matcher(input);
650 __state_machine::Parser::drive(
651 __StateMachine {
652 input,
653 __phantom: core::marker::PhantomData::<(&())>,
654 },
655 __tokens,
656 )
657 }
658 }
659 pub(crate) fn __reduce<
660 'input,
661 >(
662 input: &'input str,
663 __action: i8,
664 __lookahead_start: Option<&usize>,
665 __states: &mut alloc::vec::Vec<i8>,
666 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
667 _: core::marker::PhantomData<(&'input ())>,
668 ) -> Option<Result<ast::Program,__lalrpop_util::ParseError<usize, Token<'input>, &'static str>>>
669 {
670 let (__pop_states, __nonterminal) = match __action {
671 0 => {
672 __reduce0(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
673 }
674 1 => {
675 __reduce1(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
676 }
677 2 => {
678 __reduce2(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
679 }
680 3 => {
681 __reduce3(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
682 }
683 4 => {
684 __reduce4(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
685 }
686 5 => {
687 __reduce5(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
688 }
689 6 => {
690 __reduce6(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
691 }
692 7 => {
693 __reduce7(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
694 }
695 8 => {
696 __reduce8(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
697 }
698 9 => {
699 __reduce9(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
700 }
701 10 => {
702 __reduce10(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
703 }
704 11 => {
705 __reduce11(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
706 }
707 12 => {
708 __reduce12(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
709 }
710 13 => {
711 __reduce13(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
712 }
713 14 => {
714 __reduce14(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
715 }
716 15 => {
717 __reduce15(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
718 }
719 16 => {
720 __reduce16(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
721 }
722 17 => {
723 __reduce17(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
724 }
725 18 => {
726 __reduce18(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
727 }
728 19 => {
729 __reduce19(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
730 }
731 20 => {
732 __reduce20(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
733 }
734 21 => {
735 __reduce21(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
736 }
737 22 => {
738 __reduce22(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
739 }
740 23 => {
741 __reduce23(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
742 }
743 24 => {
744 __reduce24(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
745 }
746 25 => {
747 __reduce25(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
748 }
749 26 => {
750 __reduce26(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
751 }
752 27 => {
753 __reduce27(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
754 }
755 28 => {
756 __reduce28(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
757 }
758 29 => {
759 __reduce29(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
760 }
761 30 => {
762 __reduce30(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
763 }
764 31 => {
765 __reduce31(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
766 }
767 32 => {
768 __reduce32(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
769 }
770 33 => {
771 __reduce33(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
772 }
773 34 => {
774 __reduce34(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
775 }
776 35 => {
777 __reduce35(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
778 }
779 36 => {
780 __reduce36(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
781 }
782 37 => {
783 __reduce37(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
784 }
785 38 => {
786 __reduce38(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
787 }
788 39 => {
789 __reduce39(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
790 }
791 40 => {
792 __reduce40(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
793 }
794 41 => {
795 __reduce41(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
796 }
797 42 => {
798 __reduce42(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
799 }
800 43 => {
801 __reduce43(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
802 }
803 44 => {
804 __reduce44(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
805 }
806 45 => {
807 __reduce45(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
808 }
809 46 => {
810 __reduce46(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
811 }
812 47 => {
813 __reduce47(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
814 }
815 48 => {
816 __reduce48(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
817 }
818 49 => {
819 __reduce49(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
820 }
821 50 => {
822 __reduce50(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
823 }
824 51 => {
825 __reduce51(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
826 }
827 52 => {
828 __reduce52(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
829 }
830 53 => {
831 __reduce53(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
832 }
833 54 => {
834 __reduce54(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
835 }
836 55 => {
837 __reduce55(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
838 }
839 56 => {
840 __reduce56(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
841 }
842 57 => {
843 __reduce57(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
844 }
845 58 => {
846 __reduce58(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
847 }
848 59 => {
849 __reduce59(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
850 }
851 60 => {
852 __reduce60(input, __lookahead_start, __symbols, core::marker::PhantomData::<(&())>)
853 }
854 61 => {
855 let __sym0 = __pop_Variant14(__symbols);
857 let __start = __sym0.0.clone();
858 let __end = __sym0.2.clone();
859 let __nt = super::__action0::<>(input, __sym0);
860 return Some(Ok(__nt));
861 }
862 _ => panic!("invalid action code {}", __action)
863 };
864 let __states_len = __states.len();
865 __states.truncate(__states_len - __pop_states);
866 let __state = *__states.last().unwrap();
867 let __next_state = __goto(__state, __nonterminal);
868 __states.push(__next_state);
869 None
870 }
871 #[inline(never)]
872 fn __symbol_type_mismatch() -> ! {
873 panic!("symbol type mismatch")
874 }
875 fn __pop_Variant1<
876 'input,
877 >(
878 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
879 ) -> (usize, (ast::Expr, ast::Expr), usize)
880 {
881 match __symbols.pop() {
882 Some((__l, __Symbol::Variant1(__v), __r)) => (__l, __v, __r),
883 _ => __symbol_type_mismatch()
884 }
885 }
886 fn __pop_Variant10<
887 'input,
888 >(
889 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
890 ) -> (usize, String, usize)
891 {
892 match __symbols.pop() {
893 Some((__l, __Symbol::Variant10(__v), __r)) => (__l, __v, __r),
894 _ => __symbol_type_mismatch()
895 }
896 }
897 fn __pop_Variant7<
898 'input,
899 >(
900 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
901 ) -> (usize, Vec<(ast::Expr, ast::Expr)>, usize)
902 {
903 match __symbols.pop() {
904 Some((__l, __Symbol::Variant7(__v), __r)) => (__l, __v, __r),
905 _ => __symbol_type_mismatch()
906 }
907 }
908 fn __pop_Variant8<
909 'input,
910 >(
911 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
912 ) -> (usize, Vec<ast::Expr>, usize)
913 {
914 match __symbols.pop() {
915 Some((__l, __Symbol::Variant8(__v), __r)) => (__l, __v, __r),
916 _ => __symbol_type_mismatch()
917 }
918 }
919 fn __pop_Variant2<
920 'input,
921 >(
922 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
923 ) -> (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize)
924 {
925 match __symbols.pop() {
926 Some((__l, __Symbol::Variant2(__v), __r)) => (__l, __v, __r),
927 _ => __symbol_type_mismatch()
928 }
929 }
930 fn __pop_Variant4<
931 'input,
932 >(
933 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
934 ) -> (usize, alloc::vec::Vec<ast::Expr>, usize)
935 {
936 match __symbols.pop() {
937 Some((__l, __Symbol::Variant4(__v), __r)) => (__l, __v, __r),
938 _ => __symbol_type_mismatch()
939 }
940 }
941 fn __pop_Variant13<
942 'input,
943 >(
944 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
945 ) -> (usize, alloc::vec::Vec<ast::Pattern>, usize)
946 {
947 match __symbols.pop() {
948 Some((__l, __Symbol::Variant13(__v), __r)) => (__l, __v, __r),
949 _ => __symbol_type_mismatch()
950 }
951 }
952 fn __pop_Variant16<
953 'input,
954 >(
955 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
956 ) -> (usize, alloc::vec::Vec<ast::Statement>, usize)
957 {
958 match __symbols.pop() {
959 Some((__l, __Symbol::Variant16(__v), __r)) => (__l, __v, __r),
960 _ => __symbol_type_mismatch()
961 }
962 }
963 fn __pop_Variant6<
964 'input,
965 >(
966 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
967 ) -> (usize, ast::Block, usize)
968 {
969 match __symbols.pop() {
970 Some((__l, __Symbol::Variant6(__v), __r)) => (__l, __v, __r),
971 _ => __symbol_type_mismatch()
972 }
973 }
974 fn __pop_Variant3<
975 'input,
976 >(
977 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
978 ) -> (usize, ast::Expr, usize)
979 {
980 match __symbols.pop() {
981 Some((__l, __Symbol::Variant3(__v), __r)) => (__l, __v, __r),
982 _ => __symbol_type_mismatch()
983 }
984 }
985 fn __pop_Variant12<
986 'input,
987 >(
988 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
989 ) -> (usize, ast::Pattern, usize)
990 {
991 match __symbols.pop() {
992 Some((__l, __Symbol::Variant12(__v), __r)) => (__l, __v, __r),
993 _ => __symbol_type_mismatch()
994 }
995 }
996 fn __pop_Variant14<
997 'input,
998 >(
999 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
1000 ) -> (usize, ast::Program, usize)
1001 {
1002 match __symbols.pop() {
1003 Some((__l, __Symbol::Variant14(__v), __r)) => (__l, __v, __r),
1004 _ => __symbol_type_mismatch()
1005 }
1006 }
1007 fn __pop_Variant15<
1008 'input,
1009 >(
1010 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
1011 ) -> (usize, ast::Statement, usize)
1012 {
1013 match __symbols.pop() {
1014 Some((__l, __Symbol::Variant15(__v), __r)) => (__l, __v, __r),
1015 _ => __symbol_type_mismatch()
1016 }
1017 }
1018 fn __pop_Variant5<
1019 'input,
1020 >(
1021 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
1022 ) -> (usize, core::option::Option<(ast::Expr, ast::Expr)>, usize)
1023 {
1024 match __symbols.pop() {
1025 Some((__l, __Symbol::Variant5(__v), __r)) => (__l, __v, __r),
1026 _ => __symbol_type_mismatch()
1027 }
1028 }
1029 fn __pop_Variant9<
1030 'input,
1031 >(
1032 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
1033 ) -> (usize, core::option::Option<ast::Expr>, usize)
1034 {
1035 match __symbols.pop() {
1036 Some((__l, __Symbol::Variant9(__v), __r)) => (__l, __v, __r),
1037 _ => __symbol_type_mismatch()
1038 }
1039 }
1040 fn __pop_Variant11<
1041 'input,
1042 >(
1043 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
1044 ) -> (usize, f64, usize)
1045 {
1046 match __symbols.pop() {
1047 Some((__l, __Symbol::Variant11(__v), __r)) => (__l, __v, __r),
1048 _ => __symbol_type_mismatch()
1049 }
1050 }
1051 fn __pop_Variant0<
1052 'input,
1053 >(
1054 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>
1055 ) -> (usize, &'input str, usize)
1056 {
1057 match __symbols.pop() {
1058 Some((__l, __Symbol::Variant0(__v), __r)) => (__l, __v, __r),
1059 _ => __symbol_type_mismatch()
1060 }
1061 }
1062 pub(crate) fn __reduce0<
1063 'input,
1064 >(
1065 input: &'input str,
1066 __lookahead_start: Option<&usize>,
1067 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1068 _: core::marker::PhantomData<(&'input ())>,
1069 ) -> (usize, usize)
1070 {
1071 assert!(__symbols.len() >= 4);
1073 let __sym3 = __pop_Variant0(__symbols);
1074 let __sym2 = __pop_Variant3(__symbols);
1075 let __sym1 = __pop_Variant0(__symbols);
1076 let __sym0 = __pop_Variant3(__symbols);
1077 let __start = __sym0.0.clone();
1078 let __end = __sym3.2.clone();
1079 let __nt = super::__action54::<>(input, __sym0, __sym1, __sym2, __sym3);
1080 __symbols.push((__start, __Symbol::Variant1(__nt), __end));
1081 (4, 0)
1082 }
1083 pub(crate) fn __reduce1<
1084 'input,
1085 >(
1086 input: &'input str,
1087 __lookahead_start: Option<&usize>,
1088 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1089 _: core::marker::PhantomData<(&'input ())>,
1090 ) -> (usize, usize)
1091 {
1092 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1094 let __end = __start.clone();
1095 let __nt = super::__action47::<>(input, &__start, &__end);
1096 __symbols.push((__start, __Symbol::Variant2(__nt), __end));
1097 (0, 1)
1098 }
1099 pub(crate) fn __reduce2<
1100 'input,
1101 >(
1102 input: &'input str,
1103 __lookahead_start: Option<&usize>,
1104 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1105 _: core::marker::PhantomData<(&'input ())>,
1106 ) -> (usize, usize)
1107 {
1108 let __sym0 = __pop_Variant2(__symbols);
1110 let __start = __sym0.0.clone();
1111 let __end = __sym0.2.clone();
1112 let __nt = super::__action48::<>(input, __sym0);
1113 __symbols.push((__start, __Symbol::Variant2(__nt), __end));
1114 (1, 1)
1115 }
1116 pub(crate) fn __reduce3<
1117 'input,
1118 >(
1119 input: &'input str,
1120 __lookahead_start: Option<&usize>,
1121 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1122 _: core::marker::PhantomData<(&'input ())>,
1123 ) -> (usize, usize)
1124 {
1125 assert!(__symbols.len() >= 4);
1127 let __sym3 = __pop_Variant0(__symbols);
1128 let __sym2 = __pop_Variant3(__symbols);
1129 let __sym1 = __pop_Variant0(__symbols);
1130 let __sym0 = __pop_Variant3(__symbols);
1131 let __start = __sym0.0.clone();
1132 let __end = __sym3.2.clone();
1133 let __nt = super::__action56::<>(input, __sym0, __sym1, __sym2, __sym3);
1134 __symbols.push((__start, __Symbol::Variant2(__nt), __end));
1135 (4, 2)
1136 }
1137 pub(crate) fn __reduce4<
1138 'input,
1139 >(
1140 input: &'input str,
1141 __lookahead_start: Option<&usize>,
1142 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1143 _: core::marker::PhantomData<(&'input ())>,
1144 ) -> (usize, usize)
1145 {
1146 assert!(__symbols.len() >= 5);
1148 let __sym4 = __pop_Variant0(__symbols);
1149 let __sym3 = __pop_Variant3(__symbols);
1150 let __sym2 = __pop_Variant0(__symbols);
1151 let __sym1 = __pop_Variant3(__symbols);
1152 let __sym0 = __pop_Variant2(__symbols);
1153 let __start = __sym0.0.clone();
1154 let __end = __sym4.2.clone();
1155 let __nt = super::__action57::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
1156 __symbols.push((__start, __Symbol::Variant2(__nt), __end));
1157 (5, 2)
1158 }
1159 pub(crate) fn __reduce5<
1160 'input,
1161 >(
1162 input: &'input str,
1163 __lookahead_start: Option<&usize>,
1164 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1165 _: core::marker::PhantomData<(&'input ())>,
1166 ) -> (usize, usize)
1167 {
1168 assert!(__symbols.len() >= 2);
1170 let __sym1 = __pop_Variant0(__symbols);
1171 let __sym0 = __pop_Variant3(__symbols);
1172 let __start = __sym0.0.clone();
1173 let __end = __sym1.2.clone();
1174 let __nt = super::__action44::<>(input, __sym0, __sym1);
1175 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1176 (2, 3)
1177 }
1178 pub(crate) fn __reduce6<
1179 'input,
1180 >(
1181 input: &'input str,
1182 __lookahead_start: Option<&usize>,
1183 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1184 _: core::marker::PhantomData<(&'input ())>,
1185 ) -> (usize, usize)
1186 {
1187 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1189 let __end = __start.clone();
1190 let __nt = super::__action42::<>(input, &__start, &__end);
1191 __symbols.push((__start, __Symbol::Variant4(__nt), __end));
1192 (0, 4)
1193 }
1194 pub(crate) fn __reduce7<
1195 'input,
1196 >(
1197 input: &'input str,
1198 __lookahead_start: Option<&usize>,
1199 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1200 _: core::marker::PhantomData<(&'input ())>,
1201 ) -> (usize, usize)
1202 {
1203 let __sym0 = __pop_Variant4(__symbols);
1205 let __start = __sym0.0.clone();
1206 let __end = __sym0.2.clone();
1207 let __nt = super::__action43::<>(input, __sym0);
1208 __symbols.push((__start, __Symbol::Variant4(__nt), __end));
1209 (1, 4)
1210 }
1211 pub(crate) fn __reduce8<
1212 'input,
1213 >(
1214 input: &'input str,
1215 __lookahead_start: Option<&usize>,
1216 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1217 _: core::marker::PhantomData<(&'input ())>,
1218 ) -> (usize, usize)
1219 {
1220 assert!(__symbols.len() >= 2);
1222 let __sym1 = __pop_Variant0(__symbols);
1223 let __sym0 = __pop_Variant3(__symbols);
1224 let __start = __sym0.0.clone();
1225 let __end = __sym1.2.clone();
1226 let __nt = super::__action60::<>(input, __sym0, __sym1);
1227 __symbols.push((__start, __Symbol::Variant4(__nt), __end));
1228 (2, 5)
1229 }
1230 pub(crate) fn __reduce9<
1231 'input,
1232 >(
1233 input: &'input str,
1234 __lookahead_start: Option<&usize>,
1235 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1236 _: core::marker::PhantomData<(&'input ())>,
1237 ) -> (usize, usize)
1238 {
1239 assert!(__symbols.len() >= 3);
1241 let __sym2 = __pop_Variant0(__symbols);
1242 let __sym1 = __pop_Variant3(__symbols);
1243 let __sym0 = __pop_Variant4(__symbols);
1244 let __start = __sym0.0.clone();
1245 let __end = __sym2.2.clone();
1246 let __nt = super::__action61::<>(input, __sym0, __sym1, __sym2);
1247 __symbols.push((__start, __Symbol::Variant4(__nt), __end));
1248 (3, 5)
1249 }
1250 pub(crate) fn __reduce10<
1251 'input,
1252 >(
1253 input: &'input str,
1254 __lookahead_start: Option<&usize>,
1255 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1256 _: core::marker::PhantomData<(&'input ())>,
1257 ) -> (usize, usize)
1258 {
1259 assert!(__symbols.len() >= 3);
1261 let __sym2 = __pop_Variant3(__symbols);
1262 let __sym1 = __pop_Variant0(__symbols);
1263 let __sym0 = __pop_Variant3(__symbols);
1264 let __start = __sym0.0.clone();
1265 let __end = __sym2.2.clone();
1266 let __nt = super::__action30::<>(input, __sym0, __sym1, __sym2);
1267 __symbols.push((__start, __Symbol::Variant1(__nt), __end));
1268 (3, 6)
1269 }
1270 pub(crate) fn __reduce11<
1271 'input,
1272 >(
1273 input: &'input str,
1274 __lookahead_start: Option<&usize>,
1275 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1276 _: core::marker::PhantomData<(&'input ())>,
1277 ) -> (usize, usize)
1278 {
1279 assert!(__symbols.len() >= 3);
1281 let __sym2 = __pop_Variant3(__symbols);
1282 let __sym1 = __pop_Variant0(__symbols);
1283 let __sym0 = __pop_Variant3(__symbols);
1284 let __start = __sym0.0.clone();
1285 let __end = __sym2.2.clone();
1286 let __nt = super::__action55::<>(input, __sym0, __sym1, __sym2);
1287 __symbols.push((__start, __Symbol::Variant5(__nt), __end));
1288 (3, 7)
1289 }
1290 pub(crate) fn __reduce12<
1291 'input,
1292 >(
1293 input: &'input str,
1294 __lookahead_start: Option<&usize>,
1295 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1296 _: core::marker::PhantomData<(&'input ())>,
1297 ) -> (usize, usize)
1298 {
1299 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1301 let __end = __start.clone();
1302 let __nt = super::__action46::<>(input, &__start, &__end);
1303 __symbols.push((__start, __Symbol::Variant5(__nt), __end));
1304 (0, 7)
1305 }
1306 pub(crate) fn __reduce13<
1307 'input,
1308 >(
1309 input: &'input str,
1310 __lookahead_start: Option<&usize>,
1311 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1312 _: core::marker::PhantomData<(&'input ())>,
1313 ) -> (usize, usize)
1314 {
1315 let __sym0 = __pop_Variant3(__symbols);
1317 let __start = __sym0.0.clone();
1318 let __end = __sym0.2.clone();
1319 let __nt = super::__action68::<>(input, __sym0);
1320 __symbols.push((__start, __Symbol::Variant6(__nt), __end));
1321 (1, 8)
1322 }
1323 pub(crate) fn __reduce14<
1324 'input,
1325 >(
1326 input: &'input str,
1327 __lookahead_start: Option<&usize>,
1328 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1329 _: core::marker::PhantomData<(&'input ())>,
1330 ) -> (usize, usize)
1331 {
1332 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1334 let __end = __start.clone();
1335 let __nt = super::__action69::<>(input, &__start, &__end);
1336 __symbols.push((__start, __Symbol::Variant6(__nt), __end));
1337 (0, 8)
1338 }
1339 pub(crate) fn __reduce15<
1340 'input,
1341 >(
1342 input: &'input str,
1343 __lookahead_start: Option<&usize>,
1344 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1345 _: core::marker::PhantomData<(&'input ())>,
1346 ) -> (usize, usize)
1347 {
1348 assert!(__symbols.len() >= 2);
1350 let __sym1 = __pop_Variant6(__symbols);
1351 let __sym0 = __pop_Variant15(__symbols);
1352 let __start = __sym0.0.clone();
1353 let __end = __sym1.2.clone();
1354 let __nt = super::__action3::<>(input, __sym0, __sym1);
1355 __symbols.push((__start, __Symbol::Variant6(__nt), __end));
1356 (2, 8)
1357 }
1358 pub(crate) fn __reduce16<
1359 'input,
1360 >(
1361 input: &'input str,
1362 __lookahead_start: Option<&usize>,
1363 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1364 _: core::marker::PhantomData<(&'input ())>,
1365 ) -> (usize, usize)
1366 {
1367 assert!(__symbols.len() >= 3);
1369 let __sym2 = __pop_Variant3(__symbols);
1370 let __sym1 = __pop_Variant0(__symbols);
1371 let __sym0 = __pop_Variant3(__symbols);
1372 let __start = __sym0.0.clone();
1373 let __end = __sym2.2.clone();
1374 let __nt = super::__action64::<>(input, __sym0, __sym1, __sym2);
1375 __symbols.push((__start, __Symbol::Variant7(__nt), __end));
1376 (3, 9)
1377 }
1378 pub(crate) fn __reduce17<
1379 'input,
1380 >(
1381 input: &'input str,
1382 __lookahead_start: Option<&usize>,
1383 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1384 _: core::marker::PhantomData<(&'input ())>,
1385 ) -> (usize, usize)
1386 {
1387 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1389 let __end = __start.clone();
1390 let __nt = super::__action65::<>(input, &__start, &__end);
1391 __symbols.push((__start, __Symbol::Variant7(__nt), __end));
1392 (0, 9)
1393 }
1394 pub(crate) fn __reduce18<
1395 'input,
1396 >(
1397 input: &'input str,
1398 __lookahead_start: Option<&usize>,
1399 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1400 _: core::marker::PhantomData<(&'input ())>,
1401 ) -> (usize, usize)
1402 {
1403 assert!(__symbols.len() >= 4);
1405 let __sym3 = __pop_Variant3(__symbols);
1406 let __sym2 = __pop_Variant0(__symbols);
1407 let __sym1 = __pop_Variant3(__symbols);
1408 let __sym0 = __pop_Variant2(__symbols);
1409 let __start = __sym0.0.clone();
1410 let __end = __sym3.2.clone();
1411 let __nt = super::__action66::<>(input, __sym0, __sym1, __sym2, __sym3);
1412 __symbols.push((__start, __Symbol::Variant7(__nt), __end));
1413 (4, 9)
1414 }
1415 pub(crate) fn __reduce19<
1416 'input,
1417 >(
1418 input: &'input str,
1419 __lookahead_start: Option<&usize>,
1420 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1421 _: core::marker::PhantomData<(&'input ())>,
1422 ) -> (usize, usize)
1423 {
1424 let __sym0 = __pop_Variant2(__symbols);
1426 let __start = __sym0.0.clone();
1427 let __end = __sym0.2.clone();
1428 let __nt = super::__action67::<>(input, __sym0);
1429 __symbols.push((__start, __Symbol::Variant7(__nt), __end));
1430 (1, 9)
1431 }
1432 pub(crate) fn __reduce20<
1433 'input,
1434 >(
1435 input: &'input str,
1436 __lookahead_start: Option<&usize>,
1437 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1438 _: core::marker::PhantomData<(&'input ())>,
1439 ) -> (usize, usize)
1440 {
1441 let __sym0 = __pop_Variant3(__symbols);
1443 let __start = __sym0.0.clone();
1444 let __end = __sym0.2.clone();
1445 let __nt = super::__action70::<>(input, __sym0);
1446 __symbols.push((__start, __Symbol::Variant8(__nt), __end));
1447 (1, 10)
1448 }
1449 pub(crate) fn __reduce21<
1450 'input,
1451 >(
1452 input: &'input str,
1453 __lookahead_start: Option<&usize>,
1454 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1455 _: core::marker::PhantomData<(&'input ())>,
1456 ) -> (usize, usize)
1457 {
1458 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1460 let __end = __start.clone();
1461 let __nt = super::__action71::<>(input, &__start, &__end);
1462 __symbols.push((__start, __Symbol::Variant8(__nt), __end));
1463 (0, 10)
1464 }
1465 pub(crate) fn __reduce22<
1466 'input,
1467 >(
1468 input: &'input str,
1469 __lookahead_start: Option<&usize>,
1470 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1471 _: core::marker::PhantomData<(&'input ())>,
1472 ) -> (usize, usize)
1473 {
1474 assert!(__symbols.len() >= 2);
1476 let __sym1 = __pop_Variant3(__symbols);
1477 let __sym0 = __pop_Variant4(__symbols);
1478 let __start = __sym0.0.clone();
1479 let __end = __sym1.2.clone();
1480 let __nt = super::__action72::<>(input, __sym0, __sym1);
1481 __symbols.push((__start, __Symbol::Variant8(__nt), __end));
1482 (2, 10)
1483 }
1484 pub(crate) fn __reduce23<
1485 'input,
1486 >(
1487 input: &'input str,
1488 __lookahead_start: Option<&usize>,
1489 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1490 _: core::marker::PhantomData<(&'input ())>,
1491 ) -> (usize, usize)
1492 {
1493 let __sym0 = __pop_Variant4(__symbols);
1495 let __start = __sym0.0.clone();
1496 let __end = __sym0.2.clone();
1497 let __nt = super::__action73::<>(input, __sym0);
1498 __symbols.push((__start, __Symbol::Variant8(__nt), __end));
1499 (1, 10)
1500 }
1501 pub(crate) fn __reduce24<
1502 'input,
1503 >(
1504 input: &'input str,
1505 __lookahead_start: Option<&usize>,
1506 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1507 _: core::marker::PhantomData<(&'input ())>,
1508 ) -> (usize, usize)
1509 {
1510 assert!(__symbols.len() >= 4);
1512 let __sym3 = __pop_Variant3(__symbols);
1513 let __sym2 = __pop_Variant0(__symbols);
1514 let __sym1 = __pop_Variant13(__symbols);
1515 let __sym0 = __pop_Variant0(__symbols);
1516 let __start = __sym0.0.clone();
1517 let __end = __sym3.2.clone();
1518 let __nt = super::__action8::<>(input, __sym0, __sym1, __sym2, __sym3);
1519 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1520 (4, 11)
1521 }
1522 pub(crate) fn __reduce25<
1523 'input,
1524 >(
1525 input: &'input str,
1526 __lookahead_start: Option<&usize>,
1527 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1528 _: core::marker::PhantomData<(&'input ())>,
1529 ) -> (usize, usize)
1530 {
1531 assert!(__symbols.len() >= 2);
1533 let __sym1 = __pop_Variant4(__symbols);
1534 let __sym0 = __pop_Variant3(__symbols);
1535 let __start = __sym0.0.clone();
1536 let __end = __sym1.2.clone();
1537 let __nt = super::__action9::<>(input, __sym0, __sym1);
1538 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1539 (2, 11)
1540 }
1541 pub(crate) fn __reduce26<
1542 'input,
1543 >(
1544 input: &'input str,
1545 __lookahead_start: Option<&usize>,
1546 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1547 _: core::marker::PhantomData<(&'input ())>,
1548 ) -> (usize, usize)
1549 {
1550 assert!(__symbols.len() >= 6);
1552 let __sym5 = __pop_Variant3(__symbols);
1553 let __sym4 = __pop_Variant0(__symbols);
1554 let __sym3 = __pop_Variant3(__symbols);
1555 let __sym2 = __pop_Variant0(__symbols);
1556 let __sym1 = __pop_Variant3(__symbols);
1557 let __sym0 = __pop_Variant0(__symbols);
1558 let __start = __sym0.0.clone();
1559 let __end = __sym5.2.clone();
1560 let __nt = super::__action10::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
1561 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1562 (6, 11)
1563 }
1564 pub(crate) fn __reduce27<
1565 'input,
1566 >(
1567 input: &'input str,
1568 __lookahead_start: Option<&usize>,
1569 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1570 _: core::marker::PhantomData<(&'input ())>,
1571 ) -> (usize, usize)
1572 {
1573 let __sym0 = __pop_Variant3(__symbols);
1575 let __start = __sym0.0.clone();
1576 let __end = __sym0.2.clone();
1577 let __nt = super::__action11::<>(input, __sym0);
1578 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1579 (1, 11)
1580 }
1581 pub(crate) fn __reduce28<
1582 'input,
1583 >(
1584 input: &'input str,
1585 __lookahead_start: Option<&usize>,
1586 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1587 _: core::marker::PhantomData<(&'input ())>,
1588 ) -> (usize, usize)
1589 {
1590 let __sym0 = __pop_Variant3(__symbols);
1592 let __start = __sym0.0.clone();
1593 let __end = __sym0.2.clone();
1594 let __nt = super::__action36::<>(input, __sym0);
1595 __symbols.push((__start, __Symbol::Variant9(__nt), __end));
1596 (1, 12)
1597 }
1598 pub(crate) fn __reduce29<
1599 'input,
1600 >(
1601 input: &'input str,
1602 __lookahead_start: Option<&usize>,
1603 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1604 _: core::marker::PhantomData<(&'input ())>,
1605 ) -> (usize, usize)
1606 {
1607 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1609 let __end = __start.clone();
1610 let __nt = super::__action37::<>(input, &__start, &__end);
1611 __symbols.push((__start, __Symbol::Variant9(__nt), __end));
1612 (0, 12)
1613 }
1614 pub(crate) fn __reduce30<
1615 'input,
1616 >(
1617 input: &'input str,
1618 __lookahead_start: Option<&usize>,
1619 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1620 _: core::marker::PhantomData<(&'input ())>,
1621 ) -> (usize, usize)
1622 {
1623 let __sym0 = __pop_Variant0(__symbols);
1625 let __start = __sym0.0.clone();
1626 let __end = __sym0.2.clone();
1627 let __nt = super::__action27::<>(input, __sym0);
1628 __symbols.push((__start, __Symbol::Variant10(__nt), __end));
1629 (1, 13)
1630 }
1631 pub(crate) fn __reduce31<
1632 'input,
1633 >(
1634 input: &'input str,
1635 __lookahead_start: Option<&usize>,
1636 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1637 _: core::marker::PhantomData<(&'input ())>,
1638 ) -> (usize, usize)
1639 {
1640 let __sym0 = __pop_Variant0(__symbols);
1642 let __start = __sym0.0.clone();
1643 let __end = __sym0.2.clone();
1644 let __nt = super::__action28::<>(input, __sym0);
1645 __symbols.push((__start, __Symbol::Variant11(__nt), __end));
1646 (1, 14)
1647 }
1648 pub(crate) fn __reduce32<
1649 'input,
1650 >(
1651 input: &'input str,
1652 __lookahead_start: Option<&usize>,
1653 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1654 _: core::marker::PhantomData<(&'input ())>,
1655 ) -> (usize, usize)
1656 {
1657 let __sym0 = __pop_Variant0(__symbols);
1659 let __start = __sym0.0.clone();
1660 let __end = __sym0.2.clone();
1661 let __nt = super::__action25::<>(input, __sym0);
1662 __symbols.push((__start, __Symbol::Variant12(__nt), __end));
1663 (1, 15)
1664 }
1665 pub(crate) fn __reduce33<
1666 'input,
1667 >(
1668 input: &'input str,
1669 __lookahead_start: Option<&usize>,
1670 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1671 _: core::marker::PhantomData<(&'input ())>,
1672 ) -> (usize, usize)
1673 {
1674 let __sym0 = __pop_Variant10(__symbols);
1676 let __start = __sym0.0.clone();
1677 let __end = __sym0.2.clone();
1678 let __nt = super::__action26::<>(input, __sym0);
1679 __symbols.push((__start, __Symbol::Variant12(__nt), __end));
1680 (1, 15)
1681 }
1682 pub(crate) fn __reduce34<
1683 'input,
1684 >(
1685 input: &'input str,
1686 __lookahead_start: Option<&usize>,
1687 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1688 _: core::marker::PhantomData<(&'input ())>,
1689 ) -> (usize, usize)
1690 {
1691 let __sym0 = __pop_Variant12(__symbols);
1693 let __start = __sym0.0.clone();
1694 let __end = __sym0.2.clone();
1695 let __nt = super::__action34::<>(input, __sym0);
1696 __symbols.push((__start, __Symbol::Variant13(__nt), __end));
1697 (1, 16)
1698 }
1699 pub(crate) fn __reduce35<
1700 'input,
1701 >(
1702 input: &'input str,
1703 __lookahead_start: Option<&usize>,
1704 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1705 _: core::marker::PhantomData<(&'input ())>,
1706 ) -> (usize, usize)
1707 {
1708 assert!(__symbols.len() >= 2);
1710 let __sym1 = __pop_Variant12(__symbols);
1711 let __sym0 = __pop_Variant13(__symbols);
1712 let __start = __sym0.0.clone();
1713 let __end = __sym1.2.clone();
1714 let __nt = super::__action35::<>(input, __sym0, __sym1);
1715 __symbols.push((__start, __Symbol::Variant13(__nt), __end));
1716 (2, 16)
1717 }
1718 pub(crate) fn __reduce36<
1719 'input,
1720 >(
1721 input: &'input str,
1722 __lookahead_start: Option<&usize>,
1723 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1724 _: core::marker::PhantomData<(&'input ())>,
1725 ) -> (usize, usize)
1726 {
1727 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
1729 let __end = __start.clone();
1730 let __nt = super::__action74::<>(input, &__start, &__end);
1731 __symbols.push((__start, __Symbol::Variant14(__nt), __end));
1732 (0, 17)
1733 }
1734 pub(crate) fn __reduce37<
1735 'input,
1736 >(
1737 input: &'input str,
1738 __lookahead_start: Option<&usize>,
1739 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1740 _: core::marker::PhantomData<(&'input ())>,
1741 ) -> (usize, usize)
1742 {
1743 let __sym0 = __pop_Variant16(__symbols);
1745 let __start = __sym0.0.clone();
1746 let __end = __sym0.2.clone();
1747 let __nt = super::__action75::<>(input, __sym0);
1748 __symbols.push((__start, __Symbol::Variant14(__nt), __end));
1749 (1, 17)
1750 }
1751 pub(crate) fn __reduce38<
1752 'input,
1753 >(
1754 input: &'input str,
1755 __lookahead_start: Option<&usize>,
1756 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1757 _: core::marker::PhantomData<(&'input ())>,
1758 ) -> (usize, usize)
1759 {
1760 assert!(__symbols.len() >= 3);
1762 let __sym2 = __pop_Variant0(__symbols);
1763 let __sym1 = __pop_Variant3(__symbols);
1764 let __sym0 = __pop_Variant0(__symbols);
1765 let __start = __sym0.0.clone();
1766 let __end = __sym2.2.clone();
1767 let __nt = super::__action12::<>(input, __sym0, __sym1, __sym2);
1768 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1769 (3, 18)
1770 }
1771 pub(crate) fn __reduce39<
1772 'input,
1773 >(
1774 input: &'input str,
1775 __lookahead_start: Option<&usize>,
1776 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1777 _: core::marker::PhantomData<(&'input ())>,
1778 ) -> (usize, usize)
1779 {
1780 let __sym0 = __pop_Variant0(__symbols);
1782 let __start = __sym0.0.clone();
1783 let __end = __sym0.2.clone();
1784 let __nt = super::__action13::<>(input, __sym0);
1785 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1786 (1, 18)
1787 }
1788 pub(crate) fn __reduce40<
1789 'input,
1790 >(
1791 input: &'input str,
1792 __lookahead_start: Option<&usize>,
1793 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1794 _: core::marker::PhantomData<(&'input ())>,
1795 ) -> (usize, usize)
1796 {
1797 let __sym0 = __pop_Variant0(__symbols);
1799 let __start = __sym0.0.clone();
1800 let __end = __sym0.2.clone();
1801 let __nt = super::__action14::<>(input, __sym0);
1802 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1803 (1, 18)
1804 }
1805 pub(crate) fn __reduce41<
1806 'input,
1807 >(
1808 input: &'input str,
1809 __lookahead_start: Option<&usize>,
1810 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1811 _: core::marker::PhantomData<(&'input ())>,
1812 ) -> (usize, usize)
1813 {
1814 let __sym0 = __pop_Variant0(__symbols);
1816 let __start = __sym0.0.clone();
1817 let __end = __sym0.2.clone();
1818 let __nt = super::__action15::<>(input, __sym0);
1819 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1820 (1, 18)
1821 }
1822 pub(crate) fn __reduce42<
1823 'input,
1824 >(
1825 input: &'input str,
1826 __lookahead_start: Option<&usize>,
1827 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1828 _: core::marker::PhantomData<(&'input ())>,
1829 ) -> (usize, usize)
1830 {
1831 let __sym0 = __pop_Variant11(__symbols);
1833 let __start = __sym0.0.clone();
1834 let __end = __sym0.2.clone();
1835 let __nt = super::__action16::<>(input, __sym0);
1836 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1837 (1, 18)
1838 }
1839 pub(crate) fn __reduce43<
1840 'input,
1841 >(
1842 input: &'input str,
1843 __lookahead_start: Option<&usize>,
1844 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1845 _: core::marker::PhantomData<(&'input ())>,
1846 ) -> (usize, usize)
1847 {
1848 let __sym0 = __pop_Variant0(__symbols);
1850 let __start = __sym0.0.clone();
1851 let __end = __sym0.2.clone();
1852 let __nt = super::__action17::<>(input, __sym0);
1853 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1854 (1, 18)
1855 }
1856 pub(crate) fn __reduce44<
1857 'input,
1858 >(
1859 input: &'input str,
1860 __lookahead_start: Option<&usize>,
1861 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1862 _: core::marker::PhantomData<(&'input ())>,
1863 ) -> (usize, usize)
1864 {
1865 let __sym0 = __pop_Variant10(__symbols);
1867 let __start = __sym0.0.clone();
1868 let __end = __sym0.2.clone();
1869 let __nt = super::__action18::<>(input, __sym0);
1870 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1871 (1, 18)
1872 }
1873 pub(crate) fn __reduce45<
1874 'input,
1875 >(
1876 input: &'input str,
1877 __lookahead_start: Option<&usize>,
1878 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1879 _: core::marker::PhantomData<(&'input ())>,
1880 ) -> (usize, usize)
1881 {
1882 assert!(__symbols.len() >= 3);
1884 let __sym2 = __pop_Variant0(__symbols);
1885 let __sym1 = __pop_Variant6(__symbols);
1886 let __sym0 = __pop_Variant0(__symbols);
1887 let __start = __sym0.0.clone();
1888 let __end = __sym2.2.clone();
1889 let __nt = super::__action19::<>(input, __sym0, __sym1, __sym2);
1890 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1891 (3, 18)
1892 }
1893 pub(crate) fn __reduce46<
1894 'input,
1895 >(
1896 input: &'input str,
1897 __lookahead_start: Option<&usize>,
1898 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1899 _: core::marker::PhantomData<(&'input ())>,
1900 ) -> (usize, usize)
1901 {
1902 assert!(__symbols.len() >= 3);
1904 let __sym2 = __pop_Variant0(__symbols);
1905 let __sym1 = __pop_Variant8(__symbols);
1906 let __sym0 = __pop_Variant0(__symbols);
1907 let __start = __sym0.0.clone();
1908 let __end = __sym2.2.clone();
1909 let __nt = super::__action20::<>(input, __sym0, __sym1, __sym2);
1910 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1911 (3, 18)
1912 }
1913 pub(crate) fn __reduce47<
1914 'input,
1915 >(
1916 input: &'input str,
1917 __lookahead_start: Option<&usize>,
1918 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1919 _: core::marker::PhantomData<(&'input ())>,
1920 ) -> (usize, usize)
1921 {
1922 assert!(__symbols.len() >= 3);
1924 let __sym2 = __pop_Variant0(__symbols);
1925 let __sym1 = __pop_Variant7(__symbols);
1926 let __sym0 = __pop_Variant0(__symbols);
1927 let __start = __sym0.0.clone();
1928 let __end = __sym2.2.clone();
1929 let __nt = super::__action21::<>(input, __sym0, __sym1, __sym2);
1930 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1931 (3, 18)
1932 }
1933 pub(crate) fn __reduce48<
1934 'input,
1935 >(
1936 input: &'input str,
1937 __lookahead_start: Option<&usize>,
1938 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1939 _: core::marker::PhantomData<(&'input ())>,
1940 ) -> (usize, usize)
1941 {
1942 assert!(__symbols.len() >= 4);
1944 let __sym3 = __pop_Variant0(__symbols);
1945 let __sym2 = __pop_Variant3(__symbols);
1946 let __sym1 = __pop_Variant0(__symbols);
1947 let __sym0 = __pop_Variant3(__symbols);
1948 let __start = __sym0.0.clone();
1949 let __end = __sym3.2.clone();
1950 let __nt = super::__action22::<>(input, __sym0, __sym1, __sym2, __sym3);
1951 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1952 (4, 18)
1953 }
1954 pub(crate) fn __reduce49<
1955 'input,
1956 >(
1957 input: &'input str,
1958 __lookahead_start: Option<&usize>,
1959 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1960 _: core::marker::PhantomData<(&'input ())>,
1961 ) -> (usize, usize)
1962 {
1963 assert!(__symbols.len() >= 3);
1965 let __sym2 = __pop_Variant10(__symbols);
1966 let __sym1 = __pop_Variant0(__symbols);
1967 let __sym0 = __pop_Variant3(__symbols);
1968 let __start = __sym0.0.clone();
1969 let __end = __sym2.2.clone();
1970 let __nt = super::__action23::<>(input, __sym0, __sym1, __sym2);
1971 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1972 (3, 18)
1973 }
1974 pub(crate) fn __reduce50<
1975 'input,
1976 >(
1977 input: &'input str,
1978 __lookahead_start: Option<&usize>,
1979 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1980 _: core::marker::PhantomData<(&'input ())>,
1981 ) -> (usize, usize)
1982 {
1983 let __sym0 = __pop_Variant0(__symbols);
1985 let __start = __sym0.0.clone();
1986 let __end = __sym0.2.clone();
1987 let __nt = super::__action24::<>(input, __sym0);
1988 __symbols.push((__start, __Symbol::Variant3(__nt), __end));
1989 (1, 18)
1990 }
1991 pub(crate) fn __reduce51<
1992 'input,
1993 >(
1994 input: &'input str,
1995 __lookahead_start: Option<&usize>,
1996 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
1997 _: core::marker::PhantomData<(&'input ())>,
1998 ) -> (usize, usize)
1999 {
2000 let __sym0 = __pop_Variant3(__symbols);
2002 let __start = __sym0.0.clone();
2003 let __end = __sym0.2.clone();
2004 let __nt = super::__action32::<>(input, __sym0);
2005 __symbols.push((__start, __Symbol::Variant4(__nt), __end));
2006 (1, 19)
2007 }
2008 pub(crate) fn __reduce52<
2009 'input,
2010 >(
2011 input: &'input str,
2012 __lookahead_start: Option<&usize>,
2013 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2014 _: core::marker::PhantomData<(&'input ())>,
2015 ) -> (usize, usize)
2016 {
2017 assert!(__symbols.len() >= 2);
2019 let __sym1 = __pop_Variant3(__symbols);
2020 let __sym0 = __pop_Variant4(__symbols);
2021 let __start = __sym0.0.clone();
2022 let __end = __sym1.2.clone();
2023 let __nt = super::__action33::<>(input, __sym0, __sym1);
2024 __symbols.push((__start, __Symbol::Variant4(__nt), __end));
2025 (2, 19)
2026 }
2027 pub(crate) fn __reduce53<
2028 'input,
2029 >(
2030 input: &'input str,
2031 __lookahead_start: Option<&usize>,
2032 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2033 _: core::marker::PhantomData<(&'input ())>,
2034 ) -> (usize, usize)
2035 {
2036 assert!(__symbols.len() >= 6);
2038 let __sym5 = __pop_Variant0(__symbols);
2039 let __sym4 = __pop_Variant3(__symbols);
2040 let __sym3 = __pop_Variant0(__symbols);
2041 let __sym2 = __pop_Variant12(__symbols);
2042 let __sym1 = __pop_Variant0(__symbols);
2043 let __sym0 = __pop_Variant0(__symbols);
2044 let __start = __sym0.0.clone();
2045 let __end = __sym5.2.clone();
2046 let __nt = super::__action4::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4, __sym5);
2047 __symbols.push((__start, __Symbol::Variant15(__nt), __end));
2048 (6, 20)
2049 }
2050 pub(crate) fn __reduce54<
2051 'input,
2052 >(
2053 input: &'input str,
2054 __lookahead_start: Option<&usize>,
2055 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2056 _: core::marker::PhantomData<(&'input ())>,
2057 ) -> (usize, usize)
2058 {
2059 assert!(__symbols.len() >= 5);
2061 let __sym4 = __pop_Variant0(__symbols);
2062 let __sym3 = __pop_Variant3(__symbols);
2063 let __sym2 = __pop_Variant0(__symbols);
2064 let __sym1 = __pop_Variant12(__symbols);
2065 let __sym0 = __pop_Variant0(__symbols);
2066 let __start = __sym0.0.clone();
2067 let __end = __sym4.2.clone();
2068 let __nt = super::__action5::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
2069 __symbols.push((__start, __Symbol::Variant15(__nt), __end));
2070 (5, 20)
2071 }
2072 pub(crate) fn __reduce55<
2073 'input,
2074 >(
2075 input: &'input str,
2076 __lookahead_start: Option<&usize>,
2077 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2078 _: core::marker::PhantomData<(&'input ())>,
2079 ) -> (usize, usize)
2080 {
2081 assert!(__symbols.len() >= 4);
2083 let __sym3 = __pop_Variant0(__symbols);
2084 let __sym2 = __pop_Variant3(__symbols);
2085 let __sym1 = __pop_Variant0(__symbols);
2086 let __sym0 = __pop_Variant3(__symbols);
2087 let __start = __sym0.0.clone();
2088 let __end = __sym3.2.clone();
2089 let __nt = super::__action6::<>(input, __sym0, __sym1, __sym2, __sym3);
2090 __symbols.push((__start, __Symbol::Variant15(__nt), __end));
2091 (4, 20)
2092 }
2093 pub(crate) fn __reduce56<
2094 'input,
2095 >(
2096 input: &'input str,
2097 __lookahead_start: Option<&usize>,
2098 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2099 _: core::marker::PhantomData<(&'input ())>,
2100 ) -> (usize, usize)
2101 {
2102 assert!(__symbols.len() >= 2);
2104 let __sym1 = __pop_Variant0(__symbols);
2105 let __sym0 = __pop_Variant3(__symbols);
2106 let __start = __sym0.0.clone();
2107 let __end = __sym1.2.clone();
2108 let __nt = super::__action7::<>(input, __sym0, __sym1);
2109 __symbols.push((__start, __Symbol::Variant15(__nt), __end));
2110 (2, 20)
2111 }
2112 pub(crate) fn __reduce57<
2113 'input,
2114 >(
2115 input: &'input str,
2116 __lookahead_start: Option<&usize>,
2117 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2118 _: core::marker::PhantomData<(&'input ())>,
2119 ) -> (usize, usize)
2120 {
2121 let __start = __lookahead_start.cloned().or_else(|| __symbols.last().map(|s| s.2.clone())).unwrap_or_default();
2123 let __end = __start.clone();
2124 let __nt = super::__action38::<>(input, &__start, &__end);
2125 __symbols.push((__start, __Symbol::Variant16(__nt), __end));
2126 (0, 21)
2127 }
2128 pub(crate) fn __reduce58<
2129 'input,
2130 >(
2131 input: &'input str,
2132 __lookahead_start: Option<&usize>,
2133 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2134 _: core::marker::PhantomData<(&'input ())>,
2135 ) -> (usize, usize)
2136 {
2137 let __sym0 = __pop_Variant16(__symbols);
2139 let __start = __sym0.0.clone();
2140 let __end = __sym0.2.clone();
2141 let __nt = super::__action39::<>(input, __sym0);
2142 __symbols.push((__start, __Symbol::Variant16(__nt), __end));
2143 (1, 21)
2144 }
2145 pub(crate) fn __reduce59<
2146 'input,
2147 >(
2148 input: &'input str,
2149 __lookahead_start: Option<&usize>,
2150 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2151 _: core::marker::PhantomData<(&'input ())>,
2152 ) -> (usize, usize)
2153 {
2154 let __sym0 = __pop_Variant15(__symbols);
2156 let __start = __sym0.0.clone();
2157 let __end = __sym0.2.clone();
2158 let __nt = super::__action40::<>(input, __sym0);
2159 __symbols.push((__start, __Symbol::Variant16(__nt), __end));
2160 (1, 22)
2161 }
2162 pub(crate) fn __reduce60<
2163 'input,
2164 >(
2165 input: &'input str,
2166 __lookahead_start: Option<&usize>,
2167 __symbols: &mut alloc::vec::Vec<(usize,__Symbol<'input>,usize)>,
2168 _: core::marker::PhantomData<(&'input ())>,
2169 ) -> (usize, usize)
2170 {
2171 assert!(__symbols.len() >= 2);
2173 let __sym1 = __pop_Variant15(__symbols);
2174 let __sym0 = __pop_Variant16(__symbols);
2175 let __start = __sym0.0.clone();
2176 let __end = __sym1.2.clone();
2177 let __nt = super::__action41::<>(input, __sym0, __sym1);
2178 __symbols.push((__start, __Symbol::Variant16(__nt), __end));
2179 (2, 22)
2180 }
2181}
2182pub use self::__parse__Program::ProgramParser;
2183#[cfg_attr(rustfmt, rustfmt_skip)]
2184mod __intern_token {
2185 #![allow(unused_imports)]
2186 use std::str::FromStr;
2187 use crate::ast;
2188 #[allow(unused_extern_crates)]
2189 extern crate lalrpop_util as __lalrpop_util;
2190 #[allow(unused_imports)]
2191 use self::__lalrpop_util::state_machine as __state_machine;
2192 extern crate core;
2193 extern crate alloc;
2194 pub fn new_builder() -> __lalrpop_util::lexer::MatcherBuilder {
2195 let __strs: &[(&str, bool)] = &[
2196 ("^(\"[\0-!\\#-\u{10ffff}]*\")", false),
2197 ("^([0-9]+(\\.[0-9]+)?)", false),
2198 ("^([A-Z_a-z][0-9A-Z_a-z]*)", false),
2199 ("^(raw`[\0-_a-\u{10ffff}]*`)", false),
2200 ("^(%\\{)", false),
2201 ("^(\\()", false),
2202 ("^(\\(\\))", false),
2203 ("^(\\))", false),
2204 ("^(,)", false),
2205 ("^(\\->)", false),
2206 ("^(\\.)", false),
2207 ("^(\\.\\[)", false),
2208 ("^(:)", false),
2209 ("^(;)", false),
2210 ("^(<\\-)", false),
2211 ("^(=)", false),
2212 ("^(\\[)", false),
2213 ("^(\\])", false),
2214 ("^(else)", false),
2215 ("^(false)", false),
2216 ("^(fun)", false),
2217 ("^(if)", false),
2218 ("^(let)", false),
2219 ("^(rec)", false),
2220 ("^(then)", false),
2221 ("^(true)", false),
2222 ("^(\\{)", false),
2223 ("^(\\})", false),
2224 (r"^(\s*)", true),
2225 ];
2226 __lalrpop_util::lexer::MatcherBuilder::new(__strs.iter().copied()).unwrap()
2227 }
2228}
2229pub(crate) use self::__lalrpop_util::lexer::Token;
2230
2231#[allow(unused_variables)]
2232fn __action0<
2233 'input,
2234>(
2235 input: &'input str,
2236 (_, __0, _): (usize, ast::Program, usize),
2237) -> ast::Program
2238{
2239 __0
2240}
2241
2242#[allow(unused_variables)]
2243fn __action1<
2244 'input,
2245>(
2246 input: &'input str,
2247 (_, s, _): (usize, alloc::vec::Vec<ast::Statement>, usize),
2248) -> ast::Program
2249{
2250 ast::Program(s)
2251}
2252
2253#[allow(unused_variables)]
2254fn __action2<
2255 'input,
2256>(
2257 input: &'input str,
2258 (_, e, _): (usize, core::option::Option<ast::Expr>, usize),
2259) -> ast::Block
2260{
2261 ast::Block {
2262 statements: vec![],
2263 expression: e,
2264 }
2265}
2266
2267#[allow(unused_variables)]
2268fn __action3<
2269 'input,
2270>(
2271 input: &'input str,
2272 (_, s, _): (usize, ast::Statement, usize),
2273 (_, mut b, _): (usize, ast::Block, usize),
2274) -> ast::Block
2275{
2276 {
2277 b.statements.push(s);
2278 b
2279 }
2280}
2281
2282#[allow(unused_variables)]
2283fn __action4<
2284 'input,
2285>(
2286 input: &'input str,
2287 (_, _, _): (usize, &'input str, usize),
2288 (_, _, _): (usize, &'input str, usize),
2289 (_, pattern, _): (usize, ast::Pattern, usize),
2290 (_, _, _): (usize, &'input str, usize),
2291 (_, value, _): (usize, ast::Expr, usize),
2292 (_, _, _): (usize, &'input str, usize),
2293) -> ast::Statement
2294{
2295 ast::Statement::Let {
2296 recursive: true,
2297 pattern,
2298 value,
2299 }
2300}
2301
2302#[allow(unused_variables)]
2303fn __action5<
2304 'input,
2305>(
2306 input: &'input str,
2307 (_, _, _): (usize, &'input str, usize),
2308 (_, pattern, _): (usize, ast::Pattern, usize),
2309 (_, _, _): (usize, &'input str, usize),
2310 (_, value, _): (usize, ast::Expr, usize),
2311 (_, _, _): (usize, &'input str, usize),
2312) -> ast::Statement
2313{
2314 ast::Statement::Let {
2315 recursive: false,
2316 pattern,
2317 value,
2318 }
2319}
2320
2321#[allow(unused_variables)]
2322fn __action6<
2323 'input,
2324>(
2325 input: &'input str,
2326 (_, e, _): (usize, ast::Expr, usize),
2327 (_, _, _): (usize, &'input str, usize),
2328 (_, v, _): (usize, ast::Expr, usize),
2329 (_, _, _): (usize, &'input str, usize),
2330) -> ast::Statement
2331{
2332 ast::Statement::Set {
2333 variable: Box::new(e),
2334 new_value: Box::new(v),
2335 }
2336}
2337
2338#[allow(unused_variables)]
2339fn __action7<
2340 'input,
2341>(
2342 input: &'input str,
2343 (_, e, _): (usize, ast::Expr, usize),
2344 (_, _, _): (usize, &'input str, usize),
2345) -> ast::Statement
2346{
2347 ast::Statement::Expr(e)
2348}
2349
2350#[allow(unused_variables)]
2351fn __action8<
2352 'input,
2353>(
2354 input: &'input str,
2355 (_, _, _): (usize, &'input str, usize),
2356 (_, arguments, _): (usize, alloc::vec::Vec<ast::Pattern>, usize),
2357 (_, _, _): (usize, &'input str, usize),
2358 (_, e, _): (usize, ast::Expr, usize),
2359) -> ast::Expr
2360{
2361 ast::Expr::Lambda {
2362 arguments,
2363 body: Box::new(e),
2364 }
2365}
2366
2367#[allow(unused_variables)]
2368fn __action9<
2369 'input,
2370>(
2371 input: &'input str,
2372 (_, f, _): (usize, ast::Expr, usize),
2373 (_, es, _): (usize, alloc::vec::Vec<ast::Expr>, usize),
2374) -> ast::Expr
2375{
2376 ast::Expr::Application {
2377 function: Box::new(f),
2378 arguments: es,
2379 }
2380}
2381
2382#[allow(unused_variables)]
2383fn __action10<
2384 'input,
2385>(
2386 input: &'input str,
2387 (_, _, _): (usize, &'input str, usize),
2388 (_, c, _): (usize, ast::Expr, usize),
2389 (_, _, _): (usize, &'input str, usize),
2390 (_, b1, _): (usize, ast::Expr, usize),
2391 (_, _, _): (usize, &'input str, usize),
2392 (_, b2, _): (usize, ast::Expr, usize),
2393) -> ast::Expr
2394{
2395 ast::Expr::If {
2396 condition: Box::new(c),
2397 if_body: Box::new(b1),
2398 else_body: Box::new(b2),
2399 }
2400}
2401
2402#[allow(unused_variables)]
2403fn __action11<
2404 'input,
2405>(
2406 input: &'input str,
2407 (_, __0, _): (usize, ast::Expr, usize),
2408) -> ast::Expr
2409{
2410 __0
2411}
2412
2413#[allow(unused_variables)]
2414fn __action12<
2415 'input,
2416>(
2417 input: &'input str,
2418 (_, _, _): (usize, &'input str, usize),
2419 (_, __0, _): (usize, ast::Expr, usize),
2420 (_, _, _): (usize, &'input str, usize),
2421) -> ast::Expr
2422{
2423 __0
2424}
2425
2426#[allow(unused_variables)]
2427fn __action13<
2428 'input,
2429>(
2430 input: &'input str,
2431 (_, __0, _): (usize, &'input str, usize),
2432) -> ast::Expr
2433{
2434 ast::Expr::Unit
2435}
2436
2437#[allow(unused_variables)]
2438fn __action14<
2439 'input,
2440>(
2441 input: &'input str,
2442 (_, __0, _): (usize, &'input str, usize),
2443) -> ast::Expr
2444{
2445 ast::Expr::Boolean(true)
2446}
2447
2448#[allow(unused_variables)]
2449fn __action15<
2450 'input,
2451>(
2452 input: &'input str,
2453 (_, __0, _): (usize, &'input str, usize),
2454) -> ast::Expr
2455{
2456 ast::Expr::Boolean(false)
2457}
2458
2459#[allow(unused_variables)]
2460fn __action16<
2461 'input,
2462>(
2463 input: &'input str,
2464 (_, n, _): (usize, f64, usize),
2465) -> ast::Expr
2466{
2467 ast::Expr::Number(n)
2468}
2469
2470#[allow(unused_variables)]
2471fn __action17<
2472 'input,
2473>(
2474 input: &'input str,
2475 (_, s, _): (usize, &'input str, usize),
2476) -> ast::Expr
2477{
2478 ast::Expr::String(
2479 s[1..s.len()-1].to_string()
2480 )
2481}
2482
2483#[allow(unused_variables)]
2484fn __action18<
2485 'input,
2486>(
2487 input: &'input str,
2488 (_, __0, _): (usize, String, usize),
2489) -> ast::Expr
2490{
2491 ast::Expr::Variable(__0)
2492}
2493
2494#[allow(unused_variables)]
2495fn __action19<
2496 'input,
2497>(
2498 input: &'input str,
2499 (_, _, _): (usize, &'input str, usize),
2500 (_, mut b, _): (usize, ast::Block, usize),
2501 (_, _, _): (usize, &'input str, usize),
2502) -> ast::Expr
2503{
2504 {
2505 b.statements.reverse();
2506 ast::Expr::Block(Box::new(b))
2507 }
2508}
2509
2510#[allow(unused_variables)]
2511fn __action20<
2512 'input,
2513>(
2514 input: &'input str,
2515 (_, _, _): (usize, &'input str, usize),
2516 (_, __0, _): (usize, Vec<ast::Expr>, usize),
2517 (_, _, _): (usize, &'input str, usize),
2518) -> ast::Expr
2519{
2520 ast::Expr::Array(__0)
2521}
2522
2523#[allow(unused_variables)]
2524fn __action21<
2525 'input,
2526>(
2527 input: &'input str,
2528 (_, _, _): (usize, &'input str, usize),
2529 (_, __0, _): (usize, Vec<(ast::Expr, ast::Expr)>, usize),
2530 (_, _, _): (usize, &'input str, usize),
2531) -> ast::Expr
2532{
2533 ast::Expr::Map(__0)
2534}
2535
2536#[allow(unused_variables)]
2537fn __action22<
2538 'input,
2539>(
2540 input: &'input str,
2541 (_, e, _): (usize, ast::Expr, usize),
2542 (_, _, _): (usize, &'input str, usize),
2543 (_, i, _): (usize, ast::Expr, usize),
2544 (_, _, _): (usize, &'input str, usize),
2545) -> ast::Expr
2546{
2547 ast::Expr::Index {
2548 variable: Box::new(e),
2549 index: Box::new(i),
2550 }
2551}
2552
2553#[allow(unused_variables)]
2554fn __action23<
2555 'input,
2556>(
2557 input: &'input str,
2558 (_, e, _): (usize, ast::Expr, usize),
2559 (_, _, _): (usize, &'input str, usize),
2560 (_, field, _): (usize, String, usize),
2561) -> ast::Expr
2562{
2563 ast::Expr::Dot {
2564 variable: Box::new(e),
2565 field,
2566 }
2567}
2568
2569#[allow(unused_variables)]
2570fn __action24<
2571 'input,
2572>(
2573 input: &'input str,
2574 (_, s, _): (usize, &'input str, usize),
2575) -> ast::Expr
2576{
2577 ast::Expr::Raw(
2578 s[4..s.len()-1].to_string()
2579 )
2580}
2581
2582#[allow(unused_variables)]
2583fn __action25<
2584 'input,
2585>(
2586 input: &'input str,
2587 (_, __0, _): (usize, &'input str, usize),
2588) -> ast::Pattern
2589{
2590 ast::Pattern::Unit
2591}
2592
2593#[allow(unused_variables)]
2594fn __action26<
2595 'input,
2596>(
2597 input: &'input str,
2598 (_, __0, _): (usize, String, usize),
2599) -> ast::Pattern
2600{
2601 ast::Pattern::Binding(__0.to_string())
2602}
2603
2604#[allow(unused_variables)]
2605fn __action27<
2606 'input,
2607>(
2608 input: &'input str,
2609 (_, __0, _): (usize, &'input str, usize),
2610) -> String
2611{
2612 __0.to_string()
2613}
2614
2615#[allow(unused_variables)]
2616fn __action28<
2617 'input,
2618>(
2619 input: &'input str,
2620 (_, __0, _): (usize, &'input str, usize),
2621) -> f64
2622{
2623 f64::from_str(__0).unwrap()
2624}
2625
2626#[allow(unused_variables)]
2627fn __action29<
2628 'input,
2629>(
2630 input: &'input str,
2631 (_, mut v, _): (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
2632 (_, e, _): (usize, core::option::Option<(ast::Expr, ast::Expr)>, usize),
2633) -> Vec<(ast::Expr, ast::Expr)>
2634{
2635 match e {
2636 None => v,
2637 Some(e) => {
2638 v.push(e);
2639 v
2640 }
2641 }
2642}
2643
2644#[allow(unused_variables)]
2645fn __action30<
2646 'input,
2647>(
2648 input: &'input str,
2649 (_, __0, _): (usize, ast::Expr, usize),
2650 (_, _, _): (usize, &'input str, usize),
2651 (_, __1, _): (usize, ast::Expr, usize),
2652) -> (ast::Expr, ast::Expr)
2653{
2654 (__0, __1)
2655}
2656
2657#[allow(unused_variables)]
2658fn __action31<
2659 'input,
2660>(
2661 input: &'input str,
2662 (_, mut v, _): (usize, alloc::vec::Vec<ast::Expr>, usize),
2663 (_, e, _): (usize, core::option::Option<ast::Expr>, usize),
2664) -> Vec<ast::Expr>
2665{
2666 match e {
2667 None => v,
2668 Some(e) => {
2669 v.push(e);
2670 v
2671 }
2672 }
2673}
2674
2675#[allow(unused_variables)]
2676fn __action32<
2677 'input,
2678>(
2679 input: &'input str,
2680 (_, __0, _): (usize, ast::Expr, usize),
2681) -> alloc::vec::Vec<ast::Expr>
2682{
2683 alloc::vec![__0]
2684}
2685
2686#[allow(unused_variables)]
2687fn __action33<
2688 'input,
2689>(
2690 input: &'input str,
2691 (_, v, _): (usize, alloc::vec::Vec<ast::Expr>, usize),
2692 (_, e, _): (usize, ast::Expr, usize),
2693) -> alloc::vec::Vec<ast::Expr>
2694{
2695 { let mut v = v; v.push(e); v }
2696}
2697
2698#[allow(unused_variables)]
2699fn __action34<
2700 'input,
2701>(
2702 input: &'input str,
2703 (_, __0, _): (usize, ast::Pattern, usize),
2704) -> alloc::vec::Vec<ast::Pattern>
2705{
2706 alloc::vec![__0]
2707}
2708
2709#[allow(unused_variables)]
2710fn __action35<
2711 'input,
2712>(
2713 input: &'input str,
2714 (_, v, _): (usize, alloc::vec::Vec<ast::Pattern>, usize),
2715 (_, e, _): (usize, ast::Pattern, usize),
2716) -> alloc::vec::Vec<ast::Pattern>
2717{
2718 { let mut v = v; v.push(e); v }
2719}
2720
2721#[allow(unused_variables)]
2722fn __action36<
2723 'input,
2724>(
2725 input: &'input str,
2726 (_, __0, _): (usize, ast::Expr, usize),
2727) -> core::option::Option<ast::Expr>
2728{
2729 Some(__0)
2730}
2731
2732#[allow(unused_variables)]
2733fn __action37<
2734 'input,
2735>(
2736 input: &'input str,
2737 __lookbehind: &usize,
2738 __lookahead: &usize,
2739) -> core::option::Option<ast::Expr>
2740{
2741 None
2742}
2743
2744#[allow(unused_variables)]
2745fn __action38<
2746 'input,
2747>(
2748 input: &'input str,
2749 __lookbehind: &usize,
2750 __lookahead: &usize,
2751) -> alloc::vec::Vec<ast::Statement>
2752{
2753 alloc::vec![]
2754}
2755
2756#[allow(unused_variables)]
2757fn __action39<
2758 'input,
2759>(
2760 input: &'input str,
2761 (_, v, _): (usize, alloc::vec::Vec<ast::Statement>, usize),
2762) -> alloc::vec::Vec<ast::Statement>
2763{
2764 v
2765}
2766
2767#[allow(unused_variables)]
2768fn __action40<
2769 'input,
2770>(
2771 input: &'input str,
2772 (_, __0, _): (usize, ast::Statement, usize),
2773) -> alloc::vec::Vec<ast::Statement>
2774{
2775 alloc::vec![__0]
2776}
2777
2778#[allow(unused_variables)]
2779fn __action41<
2780 'input,
2781>(
2782 input: &'input str,
2783 (_, v, _): (usize, alloc::vec::Vec<ast::Statement>, usize),
2784 (_, e, _): (usize, ast::Statement, usize),
2785) -> alloc::vec::Vec<ast::Statement>
2786{
2787 { let mut v = v; v.push(e); v }
2788}
2789
2790#[allow(unused_variables)]
2791fn __action42<
2792 'input,
2793>(
2794 input: &'input str,
2795 __lookbehind: &usize,
2796 __lookahead: &usize,
2797) -> alloc::vec::Vec<ast::Expr>
2798{
2799 alloc::vec![]
2800}
2801
2802#[allow(unused_variables)]
2803fn __action43<
2804 'input,
2805>(
2806 input: &'input str,
2807 (_, v, _): (usize, alloc::vec::Vec<ast::Expr>, usize),
2808) -> alloc::vec::Vec<ast::Expr>
2809{
2810 v
2811}
2812
2813#[allow(unused_variables)]
2814fn __action44<
2815 'input,
2816>(
2817 input: &'input str,
2818 (_, __0, _): (usize, ast::Expr, usize),
2819 (_, _, _): (usize, &'input str, usize),
2820) -> ast::Expr
2821{
2822 __0
2823}
2824
2825#[allow(unused_variables)]
2826fn __action45<
2827 'input,
2828>(
2829 input: &'input str,
2830 (_, __0, _): (usize, (ast::Expr, ast::Expr), usize),
2831) -> core::option::Option<(ast::Expr, ast::Expr)>
2832{
2833 Some(__0)
2834}
2835
2836#[allow(unused_variables)]
2837fn __action46<
2838 'input,
2839>(
2840 input: &'input str,
2841 __lookbehind: &usize,
2842 __lookahead: &usize,
2843) -> core::option::Option<(ast::Expr, ast::Expr)>
2844{
2845 None
2846}
2847
2848#[allow(unused_variables)]
2849fn __action47<
2850 'input,
2851>(
2852 input: &'input str,
2853 __lookbehind: &usize,
2854 __lookahead: &usize,
2855) -> alloc::vec::Vec<(ast::Expr, ast::Expr)>
2856{
2857 alloc::vec![]
2858}
2859
2860#[allow(unused_variables)]
2861fn __action48<
2862 'input,
2863>(
2864 input: &'input str,
2865 (_, v, _): (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
2866) -> alloc::vec::Vec<(ast::Expr, ast::Expr)>
2867{
2868 v
2869}
2870
2871#[allow(unused_variables)]
2872fn __action49<
2873 'input,
2874>(
2875 input: &'input str,
2876 (_, __0, _): (usize, (ast::Expr, ast::Expr), usize),
2877 (_, _, _): (usize, &'input str, usize),
2878) -> (ast::Expr, ast::Expr)
2879{
2880 __0
2881}
2882
2883#[allow(unused_variables)]
2884fn __action50<
2885 'input,
2886>(
2887 input: &'input str,
2888 (_, __0, _): (usize, (ast::Expr, ast::Expr), usize),
2889) -> alloc::vec::Vec<(ast::Expr, ast::Expr)>
2890{
2891 alloc::vec![__0]
2892}
2893
2894#[allow(unused_variables)]
2895fn __action51<
2896 'input,
2897>(
2898 input: &'input str,
2899 (_, v, _): (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
2900 (_, e, _): (usize, (ast::Expr, ast::Expr), usize),
2901) -> alloc::vec::Vec<(ast::Expr, ast::Expr)>
2902{
2903 { let mut v = v; v.push(e); v }
2904}
2905
2906#[allow(unused_variables)]
2907fn __action52<
2908 'input,
2909>(
2910 input: &'input str,
2911 (_, __0, _): (usize, ast::Expr, usize),
2912) -> alloc::vec::Vec<ast::Expr>
2913{
2914 alloc::vec![__0]
2915}
2916
2917#[allow(unused_variables)]
2918fn __action53<
2919 'input,
2920>(
2921 input: &'input str,
2922 (_, v, _): (usize, alloc::vec::Vec<ast::Expr>, usize),
2923 (_, e, _): (usize, ast::Expr, usize),
2924) -> alloc::vec::Vec<ast::Expr>
2925{
2926 { let mut v = v; v.push(e); v }
2927}
2928
2929#[allow(unused_variables)]
2930fn __action54<
2931 'input,
2932>(
2933 input: &'input str,
2934 __0: (usize, ast::Expr, usize),
2935 __1: (usize, &'input str, usize),
2936 __2: (usize, ast::Expr, usize),
2937 __3: (usize, &'input str, usize),
2938) -> (ast::Expr, ast::Expr)
2939{
2940 let __start0 = __0.0.clone();
2941 let __end0 = __2.2.clone();
2942 let __temp0 = __action30(
2943 input,
2944 __0,
2945 __1,
2946 __2,
2947 );
2948 let __temp0 = (__start0, __temp0, __end0);
2949 __action49(
2950 input,
2951 __temp0,
2952 __3,
2953 )
2954}
2955
2956#[allow(unused_variables)]
2957fn __action55<
2958 'input,
2959>(
2960 input: &'input str,
2961 __0: (usize, ast::Expr, usize),
2962 __1: (usize, &'input str, usize),
2963 __2: (usize, ast::Expr, usize),
2964) -> core::option::Option<(ast::Expr, ast::Expr)>
2965{
2966 let __start0 = __0.0.clone();
2967 let __end0 = __2.2.clone();
2968 let __temp0 = __action30(
2969 input,
2970 __0,
2971 __1,
2972 __2,
2973 );
2974 let __temp0 = (__start0, __temp0, __end0);
2975 __action45(
2976 input,
2977 __temp0,
2978 )
2979}
2980
2981#[allow(unused_variables)]
2982fn __action56<
2983 'input,
2984>(
2985 input: &'input str,
2986 __0: (usize, ast::Expr, usize),
2987 __1: (usize, &'input str, usize),
2988 __2: (usize, ast::Expr, usize),
2989 __3: (usize, &'input str, usize),
2990) -> alloc::vec::Vec<(ast::Expr, ast::Expr)>
2991{
2992 let __start0 = __0.0.clone();
2993 let __end0 = __3.2.clone();
2994 let __temp0 = __action54(
2995 input,
2996 __0,
2997 __1,
2998 __2,
2999 __3,
3000 );
3001 let __temp0 = (__start0, __temp0, __end0);
3002 __action50(
3003 input,
3004 __temp0,
3005 )
3006}
3007
3008#[allow(unused_variables)]
3009fn __action57<
3010 'input,
3011>(
3012 input: &'input str,
3013 __0: (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
3014 __1: (usize, ast::Expr, usize),
3015 __2: (usize, &'input str, usize),
3016 __3: (usize, ast::Expr, usize),
3017 __4: (usize, &'input str, usize),
3018) -> alloc::vec::Vec<(ast::Expr, ast::Expr)>
3019{
3020 let __start0 = __1.0.clone();
3021 let __end0 = __4.2.clone();
3022 let __temp0 = __action54(
3023 input,
3024 __1,
3025 __2,
3026 __3,
3027 __4,
3028 );
3029 let __temp0 = (__start0, __temp0, __end0);
3030 __action51(
3031 input,
3032 __0,
3033 __temp0,
3034 )
3035}
3036
3037#[allow(unused_variables)]
3038fn __action58<
3039 'input,
3040>(
3041 input: &'input str,
3042 __0: (usize, core::option::Option<(ast::Expr, ast::Expr)>, usize),
3043) -> Vec<(ast::Expr, ast::Expr)>
3044{
3045 let __start0 = __0.0.clone();
3046 let __end0 = __0.0.clone();
3047 let __temp0 = __action47(
3048 input,
3049 &__start0,
3050 &__end0,
3051 );
3052 let __temp0 = (__start0, __temp0, __end0);
3053 __action29(
3054 input,
3055 __temp0,
3056 __0,
3057 )
3058}
3059
3060#[allow(unused_variables)]
3061fn __action59<
3062 'input,
3063>(
3064 input: &'input str,
3065 __0: (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
3066 __1: (usize, core::option::Option<(ast::Expr, ast::Expr)>, usize),
3067) -> Vec<(ast::Expr, ast::Expr)>
3068{
3069 let __start0 = __0.0.clone();
3070 let __end0 = __0.2.clone();
3071 let __temp0 = __action48(
3072 input,
3073 __0,
3074 );
3075 let __temp0 = (__start0, __temp0, __end0);
3076 __action29(
3077 input,
3078 __temp0,
3079 __1,
3080 )
3081}
3082
3083#[allow(unused_variables)]
3084fn __action60<
3085 'input,
3086>(
3087 input: &'input str,
3088 __0: (usize, ast::Expr, usize),
3089 __1: (usize, &'input str, usize),
3090) -> alloc::vec::Vec<ast::Expr>
3091{
3092 let __start0 = __0.0.clone();
3093 let __end0 = __1.2.clone();
3094 let __temp0 = __action44(
3095 input,
3096 __0,
3097 __1,
3098 );
3099 let __temp0 = (__start0, __temp0, __end0);
3100 __action52(
3101 input,
3102 __temp0,
3103 )
3104}
3105
3106#[allow(unused_variables)]
3107fn __action61<
3108 'input,
3109>(
3110 input: &'input str,
3111 __0: (usize, alloc::vec::Vec<ast::Expr>, usize),
3112 __1: (usize, ast::Expr, usize),
3113 __2: (usize, &'input str, usize),
3114) -> alloc::vec::Vec<ast::Expr>
3115{
3116 let __start0 = __1.0.clone();
3117 let __end0 = __2.2.clone();
3118 let __temp0 = __action44(
3119 input,
3120 __1,
3121 __2,
3122 );
3123 let __temp0 = (__start0, __temp0, __end0);
3124 __action53(
3125 input,
3126 __0,
3127 __temp0,
3128 )
3129}
3130
3131#[allow(unused_variables)]
3132fn __action62<
3133 'input,
3134>(
3135 input: &'input str,
3136 __0: (usize, core::option::Option<ast::Expr>, usize),
3137) -> Vec<ast::Expr>
3138{
3139 let __start0 = __0.0.clone();
3140 let __end0 = __0.0.clone();
3141 let __temp0 = __action42(
3142 input,
3143 &__start0,
3144 &__end0,
3145 );
3146 let __temp0 = (__start0, __temp0, __end0);
3147 __action31(
3148 input,
3149 __temp0,
3150 __0,
3151 )
3152}
3153
3154#[allow(unused_variables)]
3155fn __action63<
3156 'input,
3157>(
3158 input: &'input str,
3159 __0: (usize, alloc::vec::Vec<ast::Expr>, usize),
3160 __1: (usize, core::option::Option<ast::Expr>, usize),
3161) -> Vec<ast::Expr>
3162{
3163 let __start0 = __0.0.clone();
3164 let __end0 = __0.2.clone();
3165 let __temp0 = __action43(
3166 input,
3167 __0,
3168 );
3169 let __temp0 = (__start0, __temp0, __end0);
3170 __action31(
3171 input,
3172 __temp0,
3173 __1,
3174 )
3175}
3176
3177#[allow(unused_variables)]
3178fn __action64<
3179 'input,
3180>(
3181 input: &'input str,
3182 __0: (usize, ast::Expr, usize),
3183 __1: (usize, &'input str, usize),
3184 __2: (usize, ast::Expr, usize),
3185) -> Vec<(ast::Expr, ast::Expr)>
3186{
3187 let __start0 = __0.0.clone();
3188 let __end0 = __2.2.clone();
3189 let __temp0 = __action55(
3190 input,
3191 __0,
3192 __1,
3193 __2,
3194 );
3195 let __temp0 = (__start0, __temp0, __end0);
3196 __action58(
3197 input,
3198 __temp0,
3199 )
3200}
3201
3202#[allow(unused_variables)]
3203fn __action65<
3204 'input,
3205>(
3206 input: &'input str,
3207 __lookbehind: &usize,
3208 __lookahead: &usize,
3209) -> Vec<(ast::Expr, ast::Expr)>
3210{
3211 let __start0 = __lookbehind.clone();
3212 let __end0 = __lookahead.clone();
3213 let __temp0 = __action46(
3214 input,
3215 &__start0,
3216 &__end0,
3217 );
3218 let __temp0 = (__start0, __temp0, __end0);
3219 __action58(
3220 input,
3221 __temp0,
3222 )
3223}
3224
3225#[allow(unused_variables)]
3226fn __action66<
3227 'input,
3228>(
3229 input: &'input str,
3230 __0: (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
3231 __1: (usize, ast::Expr, usize),
3232 __2: (usize, &'input str, usize),
3233 __3: (usize, ast::Expr, usize),
3234) -> Vec<(ast::Expr, ast::Expr)>
3235{
3236 let __start0 = __1.0.clone();
3237 let __end0 = __3.2.clone();
3238 let __temp0 = __action55(
3239 input,
3240 __1,
3241 __2,
3242 __3,
3243 );
3244 let __temp0 = (__start0, __temp0, __end0);
3245 __action59(
3246 input,
3247 __0,
3248 __temp0,
3249 )
3250}
3251
3252#[allow(unused_variables)]
3253fn __action67<
3254 'input,
3255>(
3256 input: &'input str,
3257 __0: (usize, alloc::vec::Vec<(ast::Expr, ast::Expr)>, usize),
3258) -> Vec<(ast::Expr, ast::Expr)>
3259{
3260 let __start0 = __0.2.clone();
3261 let __end0 = __0.2.clone();
3262 let __temp0 = __action46(
3263 input,
3264 &__start0,
3265 &__end0,
3266 );
3267 let __temp0 = (__start0, __temp0, __end0);
3268 __action59(
3269 input,
3270 __0,
3271 __temp0,
3272 )
3273}
3274
3275#[allow(unused_variables)]
3276fn __action68<
3277 'input,
3278>(
3279 input: &'input str,
3280 __0: (usize, ast::Expr, usize),
3281) -> ast::Block
3282{
3283 let __start0 = __0.0.clone();
3284 let __end0 = __0.2.clone();
3285 let __temp0 = __action36(
3286 input,
3287 __0,
3288 );
3289 let __temp0 = (__start0, __temp0, __end0);
3290 __action2(
3291 input,
3292 __temp0,
3293 )
3294}
3295
3296#[allow(unused_variables)]
3297fn __action69<
3298 'input,
3299>(
3300 input: &'input str,
3301 __lookbehind: &usize,
3302 __lookahead: &usize,
3303) -> ast::Block
3304{
3305 let __start0 = __lookbehind.clone();
3306 let __end0 = __lookahead.clone();
3307 let __temp0 = __action37(
3308 input,
3309 &__start0,
3310 &__end0,
3311 );
3312 let __temp0 = (__start0, __temp0, __end0);
3313 __action2(
3314 input,
3315 __temp0,
3316 )
3317}
3318
3319#[allow(unused_variables)]
3320fn __action70<
3321 'input,
3322>(
3323 input: &'input str,
3324 __0: (usize, ast::Expr, usize),
3325) -> Vec<ast::Expr>
3326{
3327 let __start0 = __0.0.clone();
3328 let __end0 = __0.2.clone();
3329 let __temp0 = __action36(
3330 input,
3331 __0,
3332 );
3333 let __temp0 = (__start0, __temp0, __end0);
3334 __action62(
3335 input,
3336 __temp0,
3337 )
3338}
3339
3340#[allow(unused_variables)]
3341fn __action71<
3342 'input,
3343>(
3344 input: &'input str,
3345 __lookbehind: &usize,
3346 __lookahead: &usize,
3347) -> Vec<ast::Expr>
3348{
3349 let __start0 = __lookbehind.clone();
3350 let __end0 = __lookahead.clone();
3351 let __temp0 = __action37(
3352 input,
3353 &__start0,
3354 &__end0,
3355 );
3356 let __temp0 = (__start0, __temp0, __end0);
3357 __action62(
3358 input,
3359 __temp0,
3360 )
3361}
3362
3363#[allow(unused_variables)]
3364fn __action72<
3365 'input,
3366>(
3367 input: &'input str,
3368 __0: (usize, alloc::vec::Vec<ast::Expr>, usize),
3369 __1: (usize, ast::Expr, usize),
3370) -> Vec<ast::Expr>
3371{
3372 let __start0 = __1.0.clone();
3373 let __end0 = __1.2.clone();
3374 let __temp0 = __action36(
3375 input,
3376 __1,
3377 );
3378 let __temp0 = (__start0, __temp0, __end0);
3379 __action63(
3380 input,
3381 __0,
3382 __temp0,
3383 )
3384}
3385
3386#[allow(unused_variables)]
3387fn __action73<
3388 'input,
3389>(
3390 input: &'input str,
3391 __0: (usize, alloc::vec::Vec<ast::Expr>, usize),
3392) -> Vec<ast::Expr>
3393{
3394 let __start0 = __0.2.clone();
3395 let __end0 = __0.2.clone();
3396 let __temp0 = __action37(
3397 input,
3398 &__start0,
3399 &__end0,
3400 );
3401 let __temp0 = (__start0, __temp0, __end0);
3402 __action63(
3403 input,
3404 __0,
3405 __temp0,
3406 )
3407}
3408
3409#[allow(unused_variables)]
3410fn __action74<
3411 'input,
3412>(
3413 input: &'input str,
3414 __lookbehind: &usize,
3415 __lookahead: &usize,
3416) -> ast::Program
3417{
3418 let __start0 = __lookbehind.clone();
3419 let __end0 = __lookahead.clone();
3420 let __temp0 = __action38(
3421 input,
3422 &__start0,
3423 &__end0,
3424 );
3425 let __temp0 = (__start0, __temp0, __end0);
3426 __action1(
3427 input,
3428 __temp0,
3429 )
3430}
3431
3432#[allow(unused_variables)]
3433fn __action75<
3434 'input,
3435>(
3436 input: &'input str,
3437 __0: (usize, alloc::vec::Vec<ast::Statement>, usize),
3438) -> ast::Program
3439{
3440 let __start0 = __0.0.clone();
3441 let __end0 = __0.2.clone();
3442 let __temp0 = __action39(
3443 input,
3444 __0,
3445 );
3446 let __temp0 = (__start0, __temp0, __end0);
3447 __action1(
3448 input,
3449 __temp0,
3450 )
3451}
3452
3453pub trait __ToTriple<'input, > {
3454 fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>>;
3455}
3456
3457impl<'input, > __ToTriple<'input, > for (usize, Token<'input>, usize) {
3458 fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
3459 Ok(value)
3460 }
3461}
3462impl<'input, > __ToTriple<'input, > for Result<(usize, Token<'input>, usize), &'static str> {
3463 fn to_triple(value: Self) -> Result<(usize,Token<'input>,usize), __lalrpop_util::ParseError<usize, Token<'input>, &'static str>> {
3464 match value {
3465 Ok(v) => Ok(v),
3466 Err(error) => Err(__lalrpop_util::ParseError::User { error }),
3467 }
3468 }
3469}