Files
scryer-prolog/src/prolog/prolog_parser.rs
2017-04-09 19:12:36 -06:00

2932 lines
100 KiB
Rust

use prolog::ast::*;
use std::cell::Cell;
extern crate lalrpop_util as __lalrpop_util;
mod __parse__TopLevel {
#![allow(non_snake_case, non_camel_case_types, unused_mut, unused_variables, unused_imports)]
use prolog::ast::*;
use std::cell::Cell;
extern crate lalrpop_util as __lalrpop_util;
#[allow(dead_code)]
pub enum __Symbol<'input> {
Term_22_21_22(&'input str),
Term_22_28_22(&'input str),
Term_22_29_22(&'input str),
Term_22_2c_22(&'input str),
Term_22_2e_22(&'input str),
Term_22_3a_2d_22(&'input str),
Term_22_3f_2d_22(&'input str),
Term_22_5b_22(&'input str),
Term_22_5b_5d_22(&'input str),
Term_22_5d_22(&'input str),
Term_22___22(&'input str),
Term_22_7c_22(&'input str),
Termr_23_22_5bA_2dZ_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(&'input str),
Termr_23_22_5ba_2dz_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(&'input str),
Termerror(__lalrpop_util::ErrorRecovery<usize, (usize, &'input str), ()>),
Nt_28_22_2c_22_20_3cTermOrCut_3e_29(TermOrCut),
Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2a(::std::vec::Vec<TermOrCut>),
Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(::std::vec::Vec<TermOrCut>),
Nt_28_3cBoxedTerm_3e_20_22_2c_22_29(Box<Term>),
Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2a(::std::vec::Vec<Box<Term>>),
Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(::std::vec::Vec<Box<Term>>),
Nt_28_3cPredicateClause_3e_29(PredicateClause),
Nt_28_3cPredicateClause_3e_29_2b(::std::vec::Vec<PredicateClause>),
NtAtom(Atom),
NtBoxedTerm(Box<Term>),
NtClause(Term),
NtList(Term),
NtListInternals(Term),
NtPredicate(Vec<PredicateClause>),
NtPredicateClause(PredicateClause),
NtRule(Rule),
NtTerm(Term),
NtTermOrCut(TermOrCut),
NtTopLevel(TopLevel),
NtVar(Var),
Nt____TopLevel(TopLevel),
}
const __ACTION: &'static [i32] = &[
// State 0
0, 0, 0, 0, 0, 0, 12, 13, 14, 0, 15, 0, 16, 17, 0,
// State 1
0, 0, 0, 0, 0, 0, 0, 13, 14, 0, 15, 0, 16, 17, 0,
// State 2
0, 21, 0, 0, -30, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 3
0, 0, 0, 0, -31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 4
0, 0, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 5
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 6
0, 0, 0, 0, 0, 0, 0, -12, -12, 0, -12, 0, -12, -12, 0,
// State 7
0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 8
0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 9
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 10
0, 0, 0, 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 11
0, 0, 0, 0, 0, 0, 0, 13, 14, 0, 15, 0, 16, 29, 0,
// State 12
0, 0, 0, 0, 0, 0, 0, 37, 38, 0, 39, 0, 40, 41, 0,
// State 13
0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 14
0, 0, 0, 0, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 15
0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 16
0, -14, 0, 0, -14, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 17
0, 0, 0, 0, 0, 0, 0, -13, -13, 0, -13, 0, -13, -13, 0,
// State 18
0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 19
0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 20
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 21
62, 0, 0, 0, 0, 0, 0, 63, 64, 0, 65, 0, 66, 67, 0,
// State 22
62, 0, 0, 0, 0, 0, 0, 63, 64, 0, 65, 0, 66, 67, 0,
// State 23
0, 0, 0, 0, 0, 0, 0, -24, -24, 0, -24, 0, -24, -24, 0,
// State 24
0, 0, 0, 0, 0, 0, 0, -25, -25, 0, -25, 0, -25, -25, 0,
// State 25
0, 69, 0, 0, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 26
0, 0, 0, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 27
0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 28
0, -14, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 29
0, 71, 0, -30, 0, 0, 0, 0, 0, -30, 0, -30, 0, 0, 0,
// State 30
0, 0, 0, 72, 0, 0, 0, 0, 0, -20, 0, 73, 0, 0, 0,
// State 31
0, 0, 0, -31, 0, 0, 0, 0, 0, -31, 0, -31, 0, 0, 0,
// State 32
0, 0, 0, -32, 0, 0, 0, 0, 0, -32, 0, -32, 0, 0, 0,
// State 33
0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0,
// State 34
0, 0, 0, -15, 0, 0, 0, 0, 0, -15, 0, -15, 0, 0, 0,
// State 35
0, 0, 0, -33, 0, 0, 0, 0, 0, -33, 0, -33, 0, 0, 0,
// State 36
0, 0, 0, 0, 0, 0, 0, 37, 38, 0, 39, 0, 40, 41, 0,
// State 37
0, 0, 0, -18, 0, 0, 0, 0, 0, -18, 0, -18, 0, 0, 0,
// State 38
0, 0, 0, -34, 0, 0, 0, 0, 0, -34, 0, -34, 0, 0, 0,
// State 39
0, 0, 0, -41, 0, 0, 0, 0, 0, -41, 0, -41, 0, 0, 0,
// State 40
0, -14, 0, -14, 0, 0, 0, 0, 0, -14, 0, -14, 0, 0, 0,
// State 41
0, 0, 0, 0, 0, 0, 0, -24, -24, 0, -24, 0, -24, -24, 0,
// State 42
0, 0, 0, 0, 0, 0, 0, -25, -25, 0, -25, 0, -25, -25, 0,
// State 43
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 44
0, 77, -30, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 45
0, 0, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 46
0, 0, -31, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 47
0, 0, -32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 48
0, 0, -15, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 49
0, 0, -33, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 50
0, 0, 0, 0, 0, 0, 0, 37, 38, 0, 39, 0, 40, 41, 0,
// State 51
0, 0, -18, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 52
0, 0, -34, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 53
0, 0, -41, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 54
0, -14, -14, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 55
0, 81, 0, -30, -30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 56
0, 0, 0, -31, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 57
0, 0, 0, -32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 58
0, 0, 0, -36, -36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 59
0, 0, 0, 83, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 60
0, 0, 0, -33, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 61
0, 0, 0, -35, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 62
0, 0, 0, 0, 0, 0, 0, 37, 38, 0, 39, 0, 40, 41, 0,
// State 63
0, 0, 0, -18, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 64
0, 0, 0, -34, -34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 65
0, 0, 0, -41, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 66
0, -14, 0, -14, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 67
0, 0, 0, 83, -26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 68
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 69
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 70
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 71
0, 0, 0, 0, 0, 0, 0, 37, 38, 0, 39, 0, 40, 41, 0,
// State 72
0, 0, 0, 0, 0, 0, 0, 97, 98, 0, 99, 0, 100, 101, 0,
// State 73
0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 74
0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
// State 75
0, 0, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 76
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 77
0, 0, 0, 0, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 78
0, 0, 0, 0, 0, 0, 0, -9, -9, 0, -9, 0, -9, -9, 0,
// State 79
0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0,
// State 80
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 81
0, 0, 0, 110, -29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 82
62, 0, 0, 0, 0, 0, 0, 63, 64, 0, 65, 0, 66, 67, 0,
// State 83
0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0,
// State 84
0, 0, 0, 110, -27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 85
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 86
0, 0, 114, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 87
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 88
0, 0, 116, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 89
0, 0, 0, 0, 0, 0, 0, 0, 0, -21, 0, 0, 0, 0, 0,
// State 90
0, 117, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, 0, 0, 0,
// State 91
0, 0, 0, 0, 0, 0, 0, 0, 0, -22, 0, 0, 0, 0, 0,
// State 92
0, 0, 0, 0, 0, 0, 0, 0, 0, -31, 0, 0, 0, 0, 0,
// State 93
0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 0, 0, 0,
// State 94
0, 0, 0, 0, 0, 0, 0, 0, 0, -15, 0, 0, 0, 0, 0,
// State 95
0, 0, 0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 0, 0,
// State 96
0, 0, 0, 0, 0, 0, 0, 37, 38, 0, 39, 0, 40, 41, 0,
// State 97
0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0,
// State 98
0, 0, 0, 0, 0, 0, 0, 0, 0, -34, 0, 0, 0, 0, 0,
// State 99
0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0,
// State 100
0, -14, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0,
// State 101
0, 0, 0, -19, 0, 0, 0, 0, 0, -19, 0, -19, 0, 0, 0,
// State 102
0, 0, 0, 0, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 103
0, 0, 0, 0, 0, 0, 0, -10, -10, 0, -10, 0, -10, -10, 0,
// State 104
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 105
0, 0, 120, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 106
0, 0, -19, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 107
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 108
0, 0, 122, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 109
62, 0, 0, 0, 0, 0, 0, 63, 64, 0, 65, 0, 66, 67, 0,
// State 110
0, 0, 0, -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 111
0, 0, 0, -19, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 112
0, 0, 124, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 113
0, 0, 0, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 114
0, 0, 125, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 115
0, 0, 0, -16, 0, 0, 0, 0, 0, -16, 0, -16, 0, 0, 0,
// State 116
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 117
0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0,
// State 118
0, 0, 129, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 119
0, 0, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 120
0, 0, 130, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 121
0, 0, 0, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 122
0, 0, 0, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 123
0, 0, 0, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 124
0, 0, 0, -17, 0, 0, 0, 0, 0, -17, 0, -17, 0, 0, 0,
// State 125
0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 53, 0, 54, 55, 0,
// State 126
0, 0, 132, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 127
0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0,
// State 128
0, 0, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 129
0, 0, 0, -17, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 130
0, 0, 133, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 131
0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, 0, 0, 0,
// State 132
0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, 0, 0, 0,
];
const __EOF_ACTION: &'static [i32] = &[
0,
0,
0,
0,
0,
-38,
0,
0,
0,
-42,
0,
0,
0,
0,
0,
0,
0,
-23,
0,
0,
0,
0,
0,
-39,
-40,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-24,
-25,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
];
const __GOTO: &'static [i32] = &[
// State 0
0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 4, 5, 0, 6, 7, 8, 9, 0, 10, 11, 0,
// State 1
0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 5, 0, 0, 18, 19, 20, 0, 0, 11, 0,
// State 2
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 3
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 4
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 5
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 6
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 7
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 8
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 9
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 10
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 11
0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, 5, 0, 0, 0, 0, 28, 0, 0, 11, 0,
// State 12
0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 0, 0, 0, 35, 0, 0, 36, 0,
// State 13
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 14
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 15
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 16
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 17
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 18
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 19
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 20
0, 0, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 21
0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 0, 0, 0, 0, 59, 60, 0, 61, 0,
// State 22
0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 0, 0, 0, 0, 59, 68, 0, 61, 0,
// State 23
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 24
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 25
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 26
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 27
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 28
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 29
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 30
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 31
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 32
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 33
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 34
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 35
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 36
0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 75, 0, 0, 0, 35, 0, 0, 36, 0,
// State 37
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 38
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 39
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 40
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 41
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 42
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 43
0, 0, 0, 0, 0, 0, 0, 0, 45, 76, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 44
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 45
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 46
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 47
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 48
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 49
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 50
0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 80, 0, 0, 0, 35, 0, 0, 36, 0,
// State 51
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 52
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 53
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 54
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 55
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 56
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 57
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 58
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 59
0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 60
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 61
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 62
0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 84, 0, 0, 0, 35, 0, 0, 36, 0,
// State 63
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 64
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 65
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 66
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 67
0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 68
0, 0, 0, 0, 0, 86, 0, 0, 45, 87, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 69
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 70
0, 0, 0, 0, 0, 88, 0, 0, 45, 89, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 71
0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 90, 0, 0, 0, 35, 0, 0, 36, 0,
// State 72
0, 0, 0, 0, 0, 0, 0, 0, 91, 92, 93, 94, 0, 0, 0, 0, 95, 0, 0, 96, 0,
// State 73
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 74
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 75
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 76
0, 0, 0, 0, 0, 105, 0, 0, 45, 106, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 77
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 78
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 79
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 80
0, 0, 0, 0, 0, 108, 0, 0, 45, 109, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 81
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 82
0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 0, 0, 0, 0, 59, 111, 0, 61, 0,
// State 83
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 84
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 85
0, 0, 0, 0, 0, 0, 0, 0, 45, 113, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 86
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 87
0, 0, 0, 0, 0, 0, 0, 0, 45, 115, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 88
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 89
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 90
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 91
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 92
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 93
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 94
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 95
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 96
0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 118, 0, 0, 0, 35, 0, 0, 36, 0,
// State 97
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 98
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 99
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 100
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 101
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 102
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 103
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 104
0, 0, 0, 0, 0, 0, 0, 0, 45, 119, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 105
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 106
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 107
0, 0, 0, 0, 0, 0, 0, 0, 45, 121, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 108
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 109
0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 0, 0, 0, 0, 59, 123, 0, 61, 0,
// State 110
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 111
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 112
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 113
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 114
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 115
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 116
0, 0, 0, 0, 0, 126, 0, 0, 45, 127, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 117
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 118
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 119
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 120
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 121
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 122
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 123
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 124
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 125
0, 0, 0, 0, 0, 0, 0, 0, 45, 131, 47, 48, 0, 0, 0, 0, 49, 0, 0, 50, 0,
// State 126
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 127
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 128
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 129
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 130
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 131
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// State 132
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
];
fn __expected_tokens(__state: usize) -> Vec<::std::string::String> {
const __TERMINAL: &'static [&'static str] = &[
r###""!""###,
r###""(""###,
r###"")""###,
r###"",""###,
r###"".""###,
r###"":-""###,
r###""?-""###,
r###""[""###,
r###""[]""###,
r###""]""###,
r###""_""###,
r###""|""###,
r###"r#"[A-Z][A-Za-z0-9_]*"#"###,
r###"r#"[a-z][A-Za-z0-9_]*"#"###,
];
__ACTION[(__state * 15)..].iter().zip(__TERMINAL).filter_map(|(&state, terminal)| {
if state == 0 {
None
} else {
Some(terminal.to_string())
}
}).collect()
}
pub fn parse_TopLevel<
'input,
>(
input: &'input str,
) -> Result<TopLevel, __lalrpop_util::ParseError<usize, (usize, &'input str), ()>>
{
let mut __tokens = super::__intern_token::__Matcher::new(input);
let mut __states = vec![0_i32];
let mut __symbols = vec![];
let mut __integer;
let mut __lookahead;
let mut __last_location = Default::default();
'__shift: loop {
__lookahead = match __tokens.next() {
Some(Ok(v)) => v,
None => break '__shift,
Some(Err(e)) => return Err(e),
};
__last_location = __lookahead.2.clone();
__integer = match __lookahead.1 {
(0, _) if true => 0,
(1, _) if true => 1,
(2, _) if true => 2,
(3, _) if true => 3,
(4, _) if true => 4,
(5, _) if true => 5,
(6, _) if true => 6,
(7, _) if true => 7,
(8, _) if true => 8,
(9, _) if true => 9,
(10, _) if true => 10,
(11, _) if true => 11,
(12, _) if true => 12,
(13, _) if true => 13,
_ => {
let __state = *__states.last().unwrap() as usize;
let __error = __lalrpop_util::ParseError::UnrecognizedToken {
token: Some(__lookahead),
expected: __expected_tokens(__state),
};
return Err(__error);
}
};
'__inner: loop {
let __state = *__states.last().unwrap() as usize;
let __action = __ACTION[__state * 15 + __integer];
if __action > 0 {
let __symbol = match __integer {
0 => match __lookahead.1 {
(0, __tok0) => __Symbol::Term_22_21_22(__tok0),
_ => unreachable!(),
},
1 => match __lookahead.1 {
(1, __tok0) => __Symbol::Term_22_28_22(__tok0),
_ => unreachable!(),
},
2 => match __lookahead.1 {
(2, __tok0) => __Symbol::Term_22_29_22(__tok0),
_ => unreachable!(),
},
3 => match __lookahead.1 {
(3, __tok0) => __Symbol::Term_22_2c_22(__tok0),
_ => unreachable!(),
},
4 => match __lookahead.1 {
(4, __tok0) => __Symbol::Term_22_2e_22(__tok0),
_ => unreachable!(),
},
5 => match __lookahead.1 {
(5, __tok0) => __Symbol::Term_22_3a_2d_22(__tok0),
_ => unreachable!(),
},
6 => match __lookahead.1 {
(6, __tok0) => __Symbol::Term_22_3f_2d_22(__tok0),
_ => unreachable!(),
},
7 => match __lookahead.1 {
(7, __tok0) => __Symbol::Term_22_5b_22(__tok0),
_ => unreachable!(),
},
8 => match __lookahead.1 {
(8, __tok0) => __Symbol::Term_22_5b_5d_22(__tok0),
_ => unreachable!(),
},
9 => match __lookahead.1 {
(9, __tok0) => __Symbol::Term_22_5d_22(__tok0),
_ => unreachable!(),
},
10 => match __lookahead.1 {
(10, __tok0) => __Symbol::Term_22___22(__tok0),
_ => unreachable!(),
},
11 => match __lookahead.1 {
(11, __tok0) => __Symbol::Term_22_7c_22(__tok0),
_ => unreachable!(),
},
12 => match __lookahead.1 {
(12, __tok0) => __Symbol::Termr_23_22_5bA_2dZ_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(__tok0),
_ => unreachable!(),
},
13 => match __lookahead.1 {
(13, __tok0) => __Symbol::Termr_23_22_5ba_2dz_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(__tok0),
_ => unreachable!(),
},
_ => unreachable!(),
};
__states.push(__action - 1);
__symbols.push((__lookahead.0, __symbol, __lookahead.2));
continue '__shift;
} else if __action < 0 {
if let Some(r) = __reduce(input, __action, Some(&__lookahead.0), &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) {
return r;
}
} else {
let __state = *__states.last().unwrap() as usize;
let __error = __lalrpop_util::ParseError::UnrecognizedToken {
token: Some(__lookahead),
expected: __expected_tokens(__state),
};
return Err(__error)
}
}
}
loop {
let __state = *__states.last().unwrap() as usize;
let __action = __EOF_ACTION[__state];
if __action < 0 {
if let Some(r) = __reduce(input, __action, None, &mut __states, &mut __symbols, ::std::marker::PhantomData::<()>) {
return r;
}
} else {
let __state = *__states.last().unwrap() as usize;
let __error = __lalrpop_util::ParseError::UnrecognizedToken {
token: None,
expected: __expected_tokens(__state),
};
return Err(__error);
}
}
}
pub fn __reduce<
'input,
>(
input: &'input str,
__action: i32,
__lookahead_start: Option<&usize>,
__states: &mut ::std::vec::Vec<i32>,
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>,
_: ::std::marker::PhantomData<()>,
) -> Option<Result<TopLevel,__lalrpop_util::ParseError<usize, (usize, &'input str), ()>>>
{
let __nonterminal = match -__action {
1 => {
// ("," <TermOrCut>) = ",", TermOrCut => ActionFn(28);
let __sym1 = __pop_NtTermOrCut(__symbols);
let __sym0 = __pop_Term_22_2c_22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action28::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29(__nt), __end));
0
}
2 => {
// ("," <TermOrCut>)* = => ActionFn(26);
let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default();
let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone());
let __nt = super::__action26::<>(input, &__start, &__end);
let __states_len = __states.len();
__states.truncate(__states_len - 0);
__symbols.push((__start, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2a(__nt), __end));
1
}
3 => {
// ("," <TermOrCut>)* = ("," <TermOrCut>)+ => ActionFn(27);
let __sym0 = __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action27::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2a(__nt), __end));
1
}
4 => {
// ("," <TermOrCut>)+ = ",", TermOrCut => ActionFn(39);
let __sym1 = __pop_NtTermOrCut(__symbols);
let __sym0 = __pop_Term_22_2c_22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action39::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__nt), __end));
2
}
5 => {
// ("," <TermOrCut>)+ = ("," <TermOrCut>)+, ",", TermOrCut => ActionFn(40);
let __sym2 = __pop_NtTermOrCut(__symbols);
let __sym1 = __pop_Term_22_2c_22(__symbols);
let __sym0 = __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action40::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__nt), __end));
2
}
6 => {
// (<BoxedTerm> ",") = BoxedTerm, "," => ActionFn(34);
let __sym1 = __pop_Term_22_2c_22(__symbols);
let __sym0 = __pop_NtBoxedTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action34::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29(__nt), __end));
3
}
7 => {
// (<BoxedTerm> ",")* = => ActionFn(32);
let __start = __symbols.last().map(|s| s.2.clone()).unwrap_or_default();
let __end = __lookahead_start.cloned().unwrap_or_else(|| __start.clone());
let __nt = super::__action32::<>(input, &__start, &__end);
let __states_len = __states.len();
__states.truncate(__states_len - 0);
__symbols.push((__start, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2a(__nt), __end));
4
}
8 => {
// (<BoxedTerm> ",")* = (<BoxedTerm> ",")+ => ActionFn(33);
let __sym0 = __pop_Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action33::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2a(__nt), __end));
4
}
9 => {
// (<BoxedTerm> ",")+ = BoxedTerm, "," => ActionFn(45);
let __sym1 = __pop_Term_22_2c_22(__symbols);
let __sym0 = __pop_NtBoxedTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action45::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(__nt), __end));
5
}
10 => {
// (<BoxedTerm> ",")+ = (<BoxedTerm> ",")+, BoxedTerm, "," => ActionFn(46);
let __sym2 = __pop_Term_22_2c_22(__symbols);
let __sym1 = __pop_NtBoxedTerm(__symbols);
let __sym0 = __pop_Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action46::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(__nt), __end));
5
}
11 => {
// (<PredicateClause>) = PredicateClause => ActionFn(31);
let __sym0 = __pop_NtPredicateClause(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action31::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::Nt_28_3cPredicateClause_3e_29(__nt), __end));
6
}
12 => {
// (<PredicateClause>)+ = PredicateClause => ActionFn(49);
let __sym0 = __pop_NtPredicateClause(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action49::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::Nt_28_3cPredicateClause_3e_29_2b(__nt), __end));
7
}
13 => {
// (<PredicateClause>)+ = (<PredicateClause>)+, PredicateClause => ActionFn(50);
let __sym1 = __pop_NtPredicateClause(__symbols);
let __sym0 = __pop_Nt_28_3cPredicateClause_3e_29_2b(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action50::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::Nt_28_3cPredicateClause_3e_29_2b(__nt), __end));
7
}
14 => {
// Atom = r#"[a-z][A-Za-z0-9_]*"# => ActionFn(5);
let __sym0 = __pop_Termr_23_22_5ba_2dz_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action5::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtAtom(__nt), __end));
8
}
15 => {
// BoxedTerm = Term => ActionFn(6);
let __sym0 = __pop_NtTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action6::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtBoxedTerm(__nt), __end));
9
}
16 => {
// Clause = Atom, "(", BoxedTerm, ")" => ActionFn(47);
let __sym3 = __pop_Term_22_29_22(__symbols);
let __sym2 = __pop_NtBoxedTerm(__symbols);
let __sym1 = __pop_Term_22_28_22(__symbols);
let __sym0 = __pop_NtAtom(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action47::<>(input, __sym0, __sym1, __sym2, __sym3);
let __states_len = __states.len();
__states.truncate(__states_len - 4);
__symbols.push((__start, __Symbol::NtClause(__nt), __end));
10
}
17 => {
// Clause = Atom, "(", (<BoxedTerm> ",")+, BoxedTerm, ")" => ActionFn(48);
let __sym4 = __pop_Term_22_29_22(__symbols);
let __sym3 = __pop_NtBoxedTerm(__symbols);
let __sym2 = __pop_Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(__symbols);
let __sym1 = __pop_Term_22_28_22(__symbols);
let __sym0 = __pop_NtAtom(__symbols);
let __start = __sym0.0.clone();
let __end = __sym4.2.clone();
let __nt = super::__action48::<>(input, __sym0, __sym1, __sym2, __sym3, __sym4);
let __states_len = __states.len();
__states.truncate(__states_len - 5);
__symbols.push((__start, __Symbol::NtClause(__nt), __end));
10
}
18 => {
// List = "[]" => ActionFn(8);
let __sym0 = __pop_Term_22_5b_5d_22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action8::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtList(__nt), __end));
11
}
19 => {
// List = "[", ListInternals, "]" => ActionFn(9);
let __sym2 = __pop_Term_22_5d_22(__symbols);
let __sym1 = __pop_NtListInternals(__symbols);
let __sym0 = __pop_Term_22_5b_22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action9::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::NtList(__nt), __end));
11
}
20 => {
// ListInternals = BoxedTerm => ActionFn(10);
let __sym0 = __pop_NtBoxedTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action10::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtListInternals(__nt), __end));
12
}
21 => {
// ListInternals = BoxedTerm, ",", ListInternals => ActionFn(11);
let __sym2 = __pop_NtListInternals(__symbols);
let __sym1 = __pop_Term_22_2c_22(__symbols);
let __sym0 = __pop_NtBoxedTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action11::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::NtListInternals(__nt), __end));
12
}
22 => {
// ListInternals = BoxedTerm, "|", BoxedTerm => ActionFn(12);
let __sym2 = __pop_NtBoxedTerm(__symbols);
let __sym1 = __pop_Term_22_7c_22(__symbols);
let __sym0 = __pop_NtBoxedTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action12::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::NtListInternals(__nt), __end));
12
}
23 => {
// Predicate = (<PredicateClause>)+, PredicateClause => ActionFn(13);
let __sym1 = __pop_NtPredicateClause(__symbols);
let __sym0 = __pop_Nt_28_3cPredicateClause_3e_29_2b(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action13::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::NtPredicate(__nt), __end));
13
}
24 => {
// PredicateClause = Rule, "." => ActionFn(14);
let __sym1 = __pop_Term_22_2e_22(__symbols);
let __sym0 = __pop_NtRule(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action14::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::NtPredicateClause(__nt), __end));
14
}
25 => {
// PredicateClause = Term, "." => ActionFn(15);
let __sym1 = __pop_Term_22_2e_22(__symbols);
let __sym0 = __pop_NtTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action15::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::NtPredicateClause(__nt), __end));
14
}
26 => {
// Rule = Clause, ":-", TermOrCut => ActionFn(41);
let __sym2 = __pop_NtTermOrCut(__symbols);
let __sym1 = __pop_Term_22_3a_2d_22(__symbols);
let __sym0 = __pop_NtClause(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action41::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::NtRule(__nt), __end));
15
}
27 => {
// Rule = Clause, ":-", TermOrCut, ("," <TermOrCut>)+ => ActionFn(42);
let __sym3 = __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__symbols);
let __sym2 = __pop_NtTermOrCut(__symbols);
let __sym1 = __pop_Term_22_3a_2d_22(__symbols);
let __sym0 = __pop_NtClause(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action42::<>(input, __sym0, __sym1, __sym2, __sym3);
let __states_len = __states.len();
__states.truncate(__states_len - 4);
__symbols.push((__start, __Symbol::NtRule(__nt), __end));
15
}
28 => {
// Rule = Atom, ":-", TermOrCut => ActionFn(43);
let __sym2 = __pop_NtTermOrCut(__symbols);
let __sym1 = __pop_Term_22_3a_2d_22(__symbols);
let __sym0 = __pop_NtAtom(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action43::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::NtRule(__nt), __end));
15
}
29 => {
// Rule = Atom, ":-", TermOrCut, ("," <TermOrCut>)+ => ActionFn(44);
let __sym3 = __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__symbols);
let __sym2 = __pop_NtTermOrCut(__symbols);
let __sym1 = __pop_Term_22_3a_2d_22(__symbols);
let __sym0 = __pop_NtAtom(__symbols);
let __start = __sym0.0.clone();
let __end = __sym3.2.clone();
let __nt = super::__action44::<>(input, __sym0, __sym1, __sym2, __sym3);
let __states_len = __states.len();
__states.truncate(__states_len - 4);
__symbols.push((__start, __Symbol::NtRule(__nt), __end));
15
}
30 => {
// Term = Atom => ActionFn(20);
let __sym0 = __pop_NtAtom(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action20::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTerm(__nt), __end));
16
}
31 => {
// Term = Clause => ActionFn(21);
let __sym0 = __pop_NtClause(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action21::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTerm(__nt), __end));
16
}
32 => {
// Term = List => ActionFn(22);
let __sym0 = __pop_NtList(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action22::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTerm(__nt), __end));
16
}
33 => {
// Term = Var => ActionFn(23);
let __sym0 = __pop_NtVar(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action23::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTerm(__nt), __end));
16
}
34 => {
// Term = "_" => ActionFn(24);
let __sym0 = __pop_Term_22___22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action24::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTerm(__nt), __end));
16
}
35 => {
// TermOrCut = "!" => ActionFn(18);
let __sym0 = __pop_Term_22_21_22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action18::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTermOrCut(__nt), __end));
17
}
36 => {
// TermOrCut = Term => ActionFn(19);
let __sym0 = __pop_NtTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action19::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTermOrCut(__nt), __end));
17
}
37 => {
// TopLevel = "?-", Term, "." => ActionFn(1);
let __sym2 = __pop_Term_22_2e_22(__symbols);
let __sym1 = __pop_NtTerm(__symbols);
let __sym0 = __pop_Term_22_3f_2d_22(__symbols);
let __start = __sym0.0.clone();
let __end = __sym2.2.clone();
let __nt = super::__action1::<>(input, __sym0, __sym1, __sym2);
let __states_len = __states.len();
__states.truncate(__states_len - 3);
__symbols.push((__start, __Symbol::NtTopLevel(__nt), __end));
18
}
38 => {
// TopLevel = Predicate => ActionFn(2);
let __sym0 = __pop_NtPredicate(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action2::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtTopLevel(__nt), __end));
18
}
39 => {
// TopLevel = Rule, "." => ActionFn(3);
let __sym1 = __pop_Term_22_2e_22(__symbols);
let __sym0 = __pop_NtRule(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action3::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::NtTopLevel(__nt), __end));
18
}
40 => {
// TopLevel = Term, "." => ActionFn(4);
let __sym1 = __pop_Term_22_2e_22(__symbols);
let __sym0 = __pop_NtTerm(__symbols);
let __start = __sym0.0.clone();
let __end = __sym1.2.clone();
let __nt = super::__action4::<>(input, __sym0, __sym1);
let __states_len = __states.len();
__states.truncate(__states_len - 2);
__symbols.push((__start, __Symbol::NtTopLevel(__nt), __end));
18
}
41 => {
// Var = r#"[A-Z][A-Za-z0-9_]*"# => ActionFn(25);
let __sym0 = __pop_Termr_23_22_5bA_2dZ_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action25::<>(input, __sym0);
let __states_len = __states.len();
__states.truncate(__states_len - 1);
__symbols.push((__start, __Symbol::NtVar(__nt), __end));
19
}
42 => {
// __TopLevel = TopLevel => ActionFn(0);
let __sym0 = __pop_NtTopLevel(__symbols);
let __start = __sym0.0.clone();
let __end = __sym0.2.clone();
let __nt = super::__action0::<>(input, __sym0);
return Some(Ok(__nt));
}
_ => panic!("invalid action code {}", __action)
};
let __state = *__states.last().unwrap() as usize;
let __next_state = __GOTO[__state * 21 + __nonterminal] - 1;
__states.push(__next_state);
None
}
fn __pop_Term_22_21_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_21_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_28_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_28_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_29_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_29_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_2c_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_2c_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_2e_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_2e_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_3a_2d_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_3a_2d_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_3f_2d_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_3f_2d_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_5b_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_5b_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_5b_5d_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_5b_5d_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_5d_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_5d_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22___22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22___22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Term_22_7c_22<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Term_22_7c_22(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Termr_23_22_5bA_2dZ_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Termr_23_22_5bA_2dZ_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Termr_23_22_5ba_2dz_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, &'input str, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Termr_23_22_5ba_2dz_5d_5bA_2dZa_2dz0_2d9___5d_2a_22_23(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Termerror<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, __lalrpop_util::ErrorRecovery<usize, (usize, &'input str), ()>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Termerror(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, TermOrCut, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2a<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<TermOrCut>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2a(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<TermOrCut>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_22_2c_22_20_3cTermOrCut_3e_29_2b(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_3cBoxedTerm_3e_20_22_2c_22_29<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Term>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2a<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Term>>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2a(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<Box<Term>>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_3cBoxedTerm_3e_20_22_2c_22_29_2b(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_3cPredicateClause_3e_29<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, PredicateClause, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_3cPredicateClause_3e_29(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt_28_3cPredicateClause_3e_29_2b<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, ::std::vec::Vec<PredicateClause>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt_28_3cPredicateClause_3e_29_2b(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtAtom<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Atom, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtAtom(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtBoxedTerm<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Box<Term>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtBoxedTerm(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtClause<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Term, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtClause(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtList<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Term, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtList(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtListInternals<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Term, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtListInternals(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtPredicate<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Vec<PredicateClause>, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtPredicate(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtPredicateClause<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, PredicateClause, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtPredicateClause(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtRule<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Rule, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtRule(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtTerm<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Term, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtTerm(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtTermOrCut<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, TermOrCut, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtTermOrCut(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtTopLevel<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, TopLevel, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtTopLevel(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_NtVar<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, Var, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::NtVar(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
fn __pop_Nt____TopLevel<
'input,
>(
__symbols: &mut ::std::vec::Vec<(usize,__Symbol<'input>,usize)>
) -> (usize, TopLevel, usize) {
match __symbols.pop().unwrap() {
(__l, __Symbol::Nt____TopLevel(__v), __r) => (__l, __v, __r),
_ => panic!("symbol type mismatch")
}
}
}
pub use self::__parse__TopLevel::parse_TopLevel;
mod __intern_token {
extern crate lalrpop_util as __lalrpop_util;
pub struct __Matcher<'input> {
text: &'input str,
consumed: usize,
}
fn __tokenize(text: &str) -> Option<(usize, usize)> {
let mut __chars = text.char_indices();
let mut __current_match: Option<(usize, usize)> = None;
let mut __current_state: usize = 0;
loop {
match __current_state {
0 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
33 => /* '!' */ {
__current_match = Some((0, __index + 1));
__current_state = 1;
continue;
}
40 => /* '(' */ {
__current_match = Some((1, __index + 1));
__current_state = 2;
continue;
}
41 => /* ')' */ {
__current_match = Some((2, __index + 1));
__current_state = 3;
continue;
}
44 => /* ',' */ {
__current_match = Some((3, __index + 1));
__current_state = 4;
continue;
}
46 => /* '.' */ {
__current_match = Some((4, __index + 1));
__current_state = 5;
continue;
}
58 => /* ':' */ {
__current_state = 6;
continue;
}
63 => /* '?' */ {
__current_state = 7;
continue;
}
65 ... 90 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 8;
continue;
}
91 => /* '[' */ {
__current_match = Some((7, __index + 1));
__current_state = 9;
continue;
}
93 => /* ']' */ {
__current_match = Some((9, __index + 1));
__current_state = 10;
continue;
}
95 => /* '_' */ {
__current_match = Some((10, __index + 1));
__current_state = 11;
continue;
}
97 ... 122 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 12;
continue;
}
124 => /* '|' */ {
__current_match = Some((11, __index + 1));
__current_state = 13;
continue;
}
_ => {
return __current_match;
}
}
}
1 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
2 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
3 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
4 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
5 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
6 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
45 => /* '-' */ {
__current_match = Some((5, __index + 1));
__current_state = 15;
continue;
}
_ => {
return __current_match;
}
}
}
7 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
45 => /* '-' */ {
__current_match = Some((6, __index + 1));
__current_state = 16;
continue;
}
_ => {
return __current_match;
}
}
}
8 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
48 ... 57 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 17;
continue;
}
65 ... 90 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 17;
continue;
}
95 => /* '_' */ {
__current_match = Some((12, __index + 1));
__current_state = 17;
continue;
}
97 ... 122 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 17;
continue;
}
_ => {
return __current_match;
}
}
}
9 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
93 => /* ']' */ {
__current_match = Some((8, __index + 1));
__current_state = 18;
continue;
}
_ => {
return __current_match;
}
}
}
10 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
11 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
12 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
48 ... 57 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 19;
continue;
}
65 ... 90 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 19;
continue;
}
95 => /* '_' */ {
__current_match = Some((13, __index + 1));
__current_state = 19;
continue;
}
97 ... 122 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 19;
continue;
}
_ => {
return __current_match;
}
}
}
13 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
14 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
15 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
16 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
17 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
48 ... 57 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 17;
continue;
}
65 ... 90 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 17;
continue;
}
95 => /* '_' */ {
__current_match = Some((12, __index + 1));
__current_state = 17;
continue;
}
97 ... 122 => {
__current_match = Some((12, __index + __ch.len_utf8()));
__current_state = 17;
continue;
}
_ => {
return __current_match;
}
}
}
18 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
_ => {
return __current_match;
}
}
}
19 => {
let (__index, __ch) = match __chars.next() { Some(p) => p, None => return __current_match };
match __ch as u32 {
48 ... 57 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 19;
continue;
}
65 ... 90 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 19;
continue;
}
95 => /* '_' */ {
__current_match = Some((13, __index + 1));
__current_state = 19;
continue;
}
97 ... 122 => {
__current_match = Some((13, __index + __ch.len_utf8()));
__current_state = 19;
continue;
}
_ => {
return __current_match;
}
}
}
_ => { panic!("invalid state {}", __current_state); }
}
}
}
impl<'input> __Matcher<'input> {
pub fn new(s: &'input str) -> __Matcher<'input> {
__Matcher { text: s, consumed: 0 }
}
}
impl<'input> Iterator for __Matcher<'input> {
type Item = Result<(usize, (usize, &'input str), usize), __lalrpop_util::ParseError<usize,(usize, &'input str),()>>;
fn next(&mut self) -> Option<Self::Item> {
let __text = self.text.trim_left();
let __whitespace = self.text.len() - __text.len();
let __start_offset = self.consumed + __whitespace;
if __text.is_empty() {
self.text = __text;
self.consumed = __start_offset;
None
} else {
match __tokenize(__text) {
Some((__index, __length)) => {
let __result = &__text[..__length];
let __remaining = &__text[__length..];
let __end_offset = __start_offset + __length;
self.text = __remaining;
self.consumed = __end_offset;
Some(Ok((__start_offset, (__index, __result), __end_offset)))
}
None => {
Some(Err(__lalrpop_util::ParseError::InvalidToken { location: __start_offset }))
}
}
}
}
}
}
#[allow(unused_variables)]
pub fn __action0<
'input,
>(
input: &'input str,
(_, __0, _): (usize, TopLevel, usize),
) -> TopLevel
{
(__0)
}
#[allow(unused_variables)]
pub fn __action1<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, t, _): (usize, Term, usize),
(_, _, _): (usize, &'input str, usize),
) -> TopLevel
{
TopLevel::Query(t)
}
#[allow(unused_variables)]
pub fn __action2<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Vec<PredicateClause>, usize),
) -> TopLevel
{
TopLevel::Predicate(__0)
}
#[allow(unused_variables)]
pub fn __action3<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Rule, usize),
(_, _, _): (usize, &'input str, usize),
) -> TopLevel
{
TopLevel::Rule(__0)
}
#[allow(unused_variables)]
pub fn __action4<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Term, usize),
(_, _, _): (usize, &'input str, usize),
) -> TopLevel
{
TopLevel::Fact(__0)
}
#[allow(unused_variables)]
pub fn __action5<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Atom
{
__0.trim().to_string()
}
#[allow(unused_variables)]
pub fn __action6<
'input,
>(
input: &'input str,
(_, t, _): (usize, Term, usize),
) -> Box<Term>
{
Box::new(t)
}
#[allow(unused_variables)]
pub fn __action7<
'input,
>(
input: &'input str,
(_, a, _): (usize, Atom, usize),
(_, _, _): (usize, &'input str, usize),
(_, ts, _): (usize, ::std::vec::Vec<Box<Term>>, usize),
(_, t, _): (usize, Box<Term>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Term
{
{
let mut ts = ts;
ts.push(t);
Term::Clause(Cell::default(), a, ts)
}
}
#[allow(unused_variables)]
pub fn __action8<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Term
{
Term::Constant(Cell::default(), Constant::EmptyList)
}
#[allow(unused_variables)]
pub fn __action9<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, Term, usize),
(_, _, _): (usize, &'input str, usize),
) -> Term
{
__0
}
#[allow(unused_variables)]
pub fn __action10<
'input,
>(
input: &'input str,
(_, t, _): (usize, Box<Term>, usize),
) -> Term
{
Term::Cons(Cell::default(),
t,
Box::new(Term::Constant(Cell::default(),
Constant::EmptyList)))
}
#[allow(unused_variables)]
pub fn __action11<
'input,
>(
input: &'input str,
(_, t, _): (usize, Box<Term>, usize),
(_, _, _): (usize, &'input str, usize),
(_, li, _): (usize, Term, usize),
) -> Term
{
Term::Cons(Cell::default(),
t,
Box::new(li))
}
#[allow(unused_variables)]
pub fn __action12<
'input,
>(
input: &'input str,
(_, t1, _): (usize, Box<Term>, usize),
(_, _, _): (usize, &'input str, usize),
(_, t2, _): (usize, Box<Term>, usize),
) -> Term
{
Term::Cons(Cell::default(), t1, t2)
}
#[allow(unused_variables)]
pub fn __action13<
'input,
>(
input: &'input str,
(_, pcs, _): (usize, ::std::vec::Vec<PredicateClause>, usize),
(_, pc, _): (usize, PredicateClause, usize),
) -> Vec<PredicateClause>
{
{
let mut pcs = pcs;
pcs.push(pc);
pcs
}
}
#[allow(unused_variables)]
pub fn __action14<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Rule, usize),
(_, _, _): (usize, &'input str, usize),
) -> PredicateClause
{
PredicateClause::Rule(__0)
}
#[allow(unused_variables)]
pub fn __action15<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Term, usize),
(_, _, _): (usize, &'input str, usize),
) -> PredicateClause
{
PredicateClause::Fact(__0)
}
#[allow(unused_variables)]
pub fn __action16<
'input,
>(
input: &'input str,
(_, c, _): (usize, Term, usize),
(_, _, _): (usize, &'input str, usize),
(_, h, _): (usize, TermOrCut, usize),
(_, cs, _): (usize, ::std::vec::Vec<TermOrCut>, usize),
) -> Rule
{
Rule { head: (c, h), clauses: cs }
}
#[allow(unused_variables)]
pub fn __action17<
'input,
>(
input: &'input str,
(_, a, _): (usize, Atom, usize),
(_, _, _): (usize, &'input str, usize),
(_, h, _): (usize, TermOrCut, usize),
(_, cs, _): (usize, ::std::vec::Vec<TermOrCut>, usize),
) -> Rule
{
Rule { head: (Term::Constant(Cell::default(), Constant::Atom(a)),
h),
clauses: cs }
}
#[allow(unused_variables)]
pub fn __action18<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> TermOrCut
{
TermOrCut::Cut
}
#[allow(unused_variables)]
pub fn __action19<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Term, usize),
) -> TermOrCut
{
TermOrCut::Term(__0)
}
#[allow(unused_variables)]
pub fn __action20<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Atom, usize),
) -> Term
{
Term::Constant(Cell::default(), Constant::Atom(__0))
}
#[allow(unused_variables)]
pub fn __action21<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Term, usize),
) -> Term
{
__0
}
#[allow(unused_variables)]
pub fn __action22<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Term, usize),
) -> Term
{
__0
}
#[allow(unused_variables)]
pub fn __action23<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Var, usize),
) -> Term
{
Term::Var(Cell::default(), __0)
}
#[allow(unused_variables)]
pub fn __action24<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Term
{
Term::AnonVar
}
#[allow(unused_variables)]
pub fn __action25<
'input,
>(
input: &'input str,
(_, __0, _): (usize, &'input str, usize),
) -> Var
{
__0.trim().to_string()
}
#[allow(unused_variables)]
pub fn __action26<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<TermOrCut>
{
vec![]
}
#[allow(unused_variables)]
pub fn __action27<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<TermOrCut>, usize),
) -> ::std::vec::Vec<TermOrCut>
{
v
}
#[allow(unused_variables)]
pub fn __action28<
'input,
>(
input: &'input str,
(_, _, _): (usize, &'input str, usize),
(_, __0, _): (usize, TermOrCut, usize),
) -> TermOrCut
{
(__0)
}
#[allow(unused_variables)]
pub fn __action29<
'input,
>(
input: &'input str,
(_, __0, _): (usize, PredicateClause, usize),
) -> ::std::vec::Vec<PredicateClause>
{
vec![__0]
}
#[allow(unused_variables)]
pub fn __action30<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<PredicateClause>, usize),
(_, e, _): (usize, PredicateClause, usize),
) -> ::std::vec::Vec<PredicateClause>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
pub fn __action31<
'input,
>(
input: &'input str,
(_, __0, _): (usize, PredicateClause, usize),
) -> PredicateClause
{
(__0)
}
#[allow(unused_variables)]
pub fn __action32<
'input,
>(
input: &'input str,
__lookbehind: &usize,
__lookahead: &usize,
) -> ::std::vec::Vec<Box<Term>>
{
vec![]
}
#[allow(unused_variables)]
pub fn __action33<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<Box<Term>>, usize),
) -> ::std::vec::Vec<Box<Term>>
{
v
}
#[allow(unused_variables)]
pub fn __action34<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Term>, usize),
(_, _, _): (usize, &'input str, usize),
) -> Box<Term>
{
(__0)
}
#[allow(unused_variables)]
pub fn __action35<
'input,
>(
input: &'input str,
(_, __0, _): (usize, Box<Term>, usize),
) -> ::std::vec::Vec<Box<Term>>
{
vec![__0]
}
#[allow(unused_variables)]
pub fn __action36<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<Box<Term>>, usize),
(_, e, _): (usize, Box<Term>, usize),
) -> ::std::vec::Vec<Box<Term>>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
pub fn __action37<
'input,
>(
input: &'input str,
(_, __0, _): (usize, TermOrCut, usize),
) -> ::std::vec::Vec<TermOrCut>
{
vec![__0]
}
#[allow(unused_variables)]
pub fn __action38<
'input,
>(
input: &'input str,
(_, v, _): (usize, ::std::vec::Vec<TermOrCut>, usize),
(_, e, _): (usize, TermOrCut, usize),
) -> ::std::vec::Vec<TermOrCut>
{
{ let mut v = v; v.push(e); v }
}
#[allow(unused_variables)]
pub fn __action39<
'input,
>(
input: &'input str,
__0: (usize, &'input str, usize),
__1: (usize, TermOrCut, usize),
) -> ::std::vec::Vec<TermOrCut>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action28(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action37(
input,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action40<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<TermOrCut>, usize),
__1: (usize, &'input str, usize),
__2: (usize, TermOrCut, usize),
) -> ::std::vec::Vec<TermOrCut>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action28(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action38(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action41<
'input,
>(
input: &'input str,
__0: (usize, Term, usize),
__1: (usize, &'input str, usize),
__2: (usize, TermOrCut, usize),
) -> Rule
{
let __start0 = __2.2.clone();
let __end0 = __2.2.clone();
let __temp0 = __action26(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action16(
input,
__0,
__1,
__2,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action42<
'input,
>(
input: &'input str,
__0: (usize, Term, usize),
__1: (usize, &'input str, usize),
__2: (usize, TermOrCut, usize),
__3: (usize, ::std::vec::Vec<TermOrCut>, usize),
) -> Rule
{
let __start0 = __3.0.clone();
let __end0 = __3.2.clone();
let __temp0 = __action27(
input,
__3,
);
let __temp0 = (__start0, __temp0, __end0);
__action16(
input,
__0,
__1,
__2,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action43<
'input,
>(
input: &'input str,
__0: (usize, Atom, usize),
__1: (usize, &'input str, usize),
__2: (usize, TermOrCut, usize),
) -> Rule
{
let __start0 = __2.2.clone();
let __end0 = __2.2.clone();
let __temp0 = __action26(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action17(
input,
__0,
__1,
__2,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action44<
'input,
>(
input: &'input str,
__0: (usize, Atom, usize),
__1: (usize, &'input str, usize),
__2: (usize, TermOrCut, usize),
__3: (usize, ::std::vec::Vec<TermOrCut>, usize),
) -> Rule
{
let __start0 = __3.0.clone();
let __end0 = __3.2.clone();
let __temp0 = __action27(
input,
__3,
);
let __temp0 = (__start0, __temp0, __end0);
__action17(
input,
__0,
__1,
__2,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action45<
'input,
>(
input: &'input str,
__0: (usize, Box<Term>, usize),
__1: (usize, &'input str, usize),
) -> ::std::vec::Vec<Box<Term>>
{
let __start0 = __0.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action34(
input,
__0,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action35(
input,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action46<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<Box<Term>>, usize),
__1: (usize, Box<Term>, usize),
__2: (usize, &'input str, usize),
) -> ::std::vec::Vec<Box<Term>>
{
let __start0 = __1.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action34(
input,
__1,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action36(
input,
__0,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action47<
'input,
>(
input: &'input str,
__0: (usize, Atom, usize),
__1: (usize, &'input str, usize),
__2: (usize, Box<Term>, usize),
__3: (usize, &'input str, usize),
) -> Term
{
let __start0 = __1.2.clone();
let __end0 = __2.0.clone();
let __temp0 = __action32(
input,
&__start0,
&__end0,
);
let __temp0 = (__start0, __temp0, __end0);
__action7(
input,
__0,
__1,
__temp0,
__2,
__3,
)
}
#[allow(unused_variables)]
pub fn __action48<
'input,
>(
input: &'input str,
__0: (usize, Atom, usize),
__1: (usize, &'input str, usize),
__2: (usize, ::std::vec::Vec<Box<Term>>, usize),
__3: (usize, Box<Term>, usize),
__4: (usize, &'input str, usize),
) -> Term
{
let __start0 = __2.0.clone();
let __end0 = __2.2.clone();
let __temp0 = __action33(
input,
__2,
);
let __temp0 = (__start0, __temp0, __end0);
__action7(
input,
__0,
__1,
__temp0,
__3,
__4,
)
}
#[allow(unused_variables)]
pub fn __action49<
'input,
>(
input: &'input str,
__0: (usize, PredicateClause, usize),
) -> ::std::vec::Vec<PredicateClause>
{
let __start0 = __0.0.clone();
let __end0 = __0.2.clone();
let __temp0 = __action31(
input,
__0,
);
let __temp0 = (__start0, __temp0, __end0);
__action29(
input,
__temp0,
)
}
#[allow(unused_variables)]
pub fn __action50<
'input,
>(
input: &'input str,
__0: (usize, ::std::vec::Vec<PredicateClause>, usize),
__1: (usize, PredicateClause, usize),
) -> ::std::vec::Vec<PredicateClause>
{
let __start0 = __1.0.clone();
let __end0 = __1.2.clone();
let __temp0 = __action31(
input,
__1,
);
let __temp0 = (__start0, __temp0, __end0);
__action30(
input,
__0,
__temp0,
)
}
pub trait __ToTriple<'input, > {
type Error;
fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),Self::Error>;
}
impl<'input, > __ToTriple<'input, > for (usize, (usize, &'input str), usize) {
type Error = ();
fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> {
Ok(value)
}
}
impl<'input, > __ToTriple<'input, > for Result<(usize, (usize, &'input str), usize),()> {
type Error = ();
fn to_triple(value: Self) -> Result<(usize,(usize, &'input str),usize),()> {
value
}
}