rustlr 0.3.9

Bottom-Up Parser Generator with Advanced Options
Documentation
//Parser generated by rustlr for grammar ll1

#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_mut)]
#![allow(unused_imports)]
#![allow(unused_assignments)]
#![allow(dead_code)]
#![allow(irrefutable_let_patterns)]
#![allow(unreachable_patterns)]
use std::rc::Rc;
use std::cell::RefCell;
extern crate rustlr;
use rustlr::{Tokenizer,TerminalToken,ZCParser,ZCRProduction,Stateaction,decode_action};

static SYMBOLS:[&'static str;14] = ["_WILDCARD_TOKEN_","E","E1","T","T1","F","num","+","-","*","(",")","START","EOF"];

static TABLE:[u64;69] = [21475164161,42949804032,4295163905,25770065920,12884967425,281530811482114,281505042006016,281522221547522,281483567104001,281509336842240,562992903225344,562962838388737,562971428585473,562954248978433,562975723487232,844480764706819,1125934267039746,1125947151941634,1125929972072450,1125938562007042,1125955741876226,1407430718521346,1407392064077825,1407422128586754,1407404948717570,1407409243684866,1407413538979840,1688862745952257,1688875630329856,1688871335428097,1688892810067968,1970372081614850,1970380671549442,2251842763489280,2251825583751168,2251821288849409,2251812699439105,2533322035953664,2814797012008962,2814805601943554,2814779832139778,2814784127107074,3096237629702145,3096267693621248,3096250513883136,3096246218981377,3377729785823232,3377708311511041,3377755555299330,3377746965364738,3377734080659456,3659221942075394,3659209057370112,3659204762533888,3659230532009986,3659183288287233,3940679739244546,3940684034211842,3940705509048322,3940696919113730,3940688329179138,4222180485562370,4222159010725890,4222154715758594,4222171895627778,4503646872076290,4503655462010882,4785130438787074,4785121848852482,];

pub fn make_parser() -> ZCParser<i32,()>
{
 let mut parser1:ZCParser<i32,()> = ZCParser::new(10,18);
 let mut rule = ZCRProduction::<i32,()>::new_skeleton("start");
 rule = ZCRProduction::<i32,()>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("E1");
 rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("E1");
 rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("E1");
 rule.Ruleaction = |parser|{ <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("T");
 rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("T1");
 rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("T1");
 rule.Ruleaction = |parser|{ <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("F");
 rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("F");
 rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<i32,()>::new_skeleton("START");
 rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <i32>::default()};
 parser1.Rules.push(rule);
 parser1.Errsym = "";

 for i in 0..69 {
   let symi = ((TABLE[i] & 0x0000ffff00000000) >> 32) as usize;
   let sti = ((TABLE[i] & 0xffff000000000000) >> 48) as usize;
   parser1.RSM[sti].insert(SYMBOLS[symi],decode_action(TABLE[i]));
 }

 for s in SYMBOLS { parser1.Symset.insert(s); }

 load_extras(&mut parser1);
 return parser1;
} //make_parser

pub fn parse_with<'t>(parser:&mut ZCParser<i32,()>, lexer:&mut dyn Tokenizer<'t,i32>) -> Result<i32,i32>
{
  let _xres_ = parser.parse(lexer);  if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
}//parse_with public function

pub fn parse_train_with<'t>(parser:&mut ZCParser<i32,()>, lexer:&mut dyn Tokenizer<'t,i32>, parserpath:&str) -> Result<i32,i32>
{
  let _xres_ = parser.parse_train(lexer,parserpath);  if !parser.error_occurred() {Ok(_xres_)} else {Err(_xres_)}
}//parse_train_with public function
fn load_extras(parser:&mut ZCParser<i32,()>)
{
}//end of load_extras: don't change this line as it affects augmentation