rustlr 0.4.1

LR Parser Generator with Advanced Options
Documentation
//Parser generated by rustlr for grammar hodd

#![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;26] = ["_WILDCARD_TOKEN_","d","c","a","b","x","y","e","f","g","S","A","B","M","N","P","Q","C","START","EOF","NEWDELAYNT_A_2","NEWDELAYNT_B_2","NEWDELAYNT_C_2","NEWDELAYNT_NEWDELAYNT_A_2_1","NEWDELAYNT_NEWDELAYNT_B_2_1","NEWDELAYNT_NEWDELAYNT_C_2_1"];

static TABLE:[u64;21] = [42949804033,12884967424,281492156776448,281573761286145,281578056187905,563031558193152,844433520525312,844532304838657,1125934267170816,1407404948979712,1688931465363456,1970333427695616,2251829879635970,2533356395823106,2814831372402690,3096306349047808,3377704016412672,3659256302600192,3940679739834370,3940684034670594,4222206255038467,];

pub fn make_parser() -> ZCParser<(),()>
{
 let mut parser1:ZCParser<(),()> = ZCParser::new(19,16);
 let mut rule = ZCRProduction::<(),()>::new_skeleton("start");
 rule = ZCRProduction::<(),()>::new_skeleton("S");
 rule.Ruleaction = |parser|{ let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("S");
 rule.Ruleaction = |parser|{ let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("A");
 rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("B");
 rule.Ruleaction = |parser|{ let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("C");
 rule.Ruleaction = |parser|{ let mut _item0_ = parser.popstack(); <()>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("START");
 rule.Ruleaction = |parser|{ let mut _item4_ = parser.popstack(); let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack(); <()>::default()};
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_A_2");
 rule.Ruleaction = |parser|{ let mut _item_del2_6_2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_20_1_ = _rrsemaction_2_(parser,_item0_,_item1_); (_delvar_20_1_,_item_del2_6_2_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("S");
 rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _delayitem1_0_14 = parser.popstack(); let mut _item0_ = parser.popstack();  _rrsemaction_0_(parser,_item0_,_delayitem1_0_14.0,_delayitem1_0_14.1,_item2_,_item3_) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_B_2");
 rule.Ruleaction = |parser|{ let mut _item_del2_8_3_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_21_1_ = _rrsemaction_3_(parser,_item0_,_item1_); (_delvar_21_1_,_item_del2_8_3_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("S");
 rule.Ruleaction = |parser|{ let mut _item3_ = parser.popstack(); let mut _item2_ = parser.popstack(); let mut _delayitem1_1_16 = parser.popstack(); let mut _item0_ = parser.popstack();  _rrsemaction_1_(parser,_item0_,_delayitem1_1_16.0,_delayitem1_1_16.1,_item2_,_item3_) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_C_2");
 rule.Ruleaction = |parser|{ let mut _item_del1_10_4_ = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_22_1_ = _rrsemaction_4_(parser,_item0_); (_delvar_22_1_,_item_del1_10_4_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_A_2");
 rule.Ruleaction = |parser|{ let mut _delayitem1_6_18 = parser.popstack(); let mut _item0_ = parser.popstack();  _rrsemaction_6_(parser,_item0_,_delayitem1_6_18.0,_delayitem1_6_18.1) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_NEWDELAYNT_A_2_1");
 rule.Ruleaction = |parser|{ let mut _item_del2_12_11_ = parser.popstack(); let mut _delayitem1_6_18 = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_23_1_ = _rrsemaction_11_(parser,_item0_,_delayitem1_6_18); (_delvar_23_1_,_item_del2_12_11_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_NEWDELAYNT_A_2_1");
 rule.Ruleaction = |parser|{ let mut _item_del3_13_6_ = parser.popstack(); let mut _item_del2_6_2_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_23_1_ = _rrsemaction_6_(parser,_item0_,_item1_,_item_del2_6_2_); (_delvar_23_1_,_item_del3_13_6_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("S");
 rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _delayitem1_7_29 = parser.popstack(); let mut _item0_ = parser.popstack();  _rrsemaction_7_(parser,_item0_,_delayitem1_7_29.0,_delayitem1_7_29.1,_item2_) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_NEWDELAYNT_B_2_1");
 rule.Ruleaction = |parser|{ let mut _item_del3_15_8_ = parser.popstack(); let mut _item_del2_8_3_ = parser.popstack(); let mut _item1_ = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_24_1_ = _rrsemaction_8_(parser,_item0_,_item1_,_item_del2_8_3_); (_delvar_24_1_,_item_del3_15_8_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("S");
 rule.Ruleaction = |parser|{ let mut _item2_ = parser.popstack(); let mut _delayitem1_9_31 = parser.popstack(); let mut _item0_ = parser.popstack();  _rrsemaction_9_(parser,_item0_,_delayitem1_9_31.0,_delayitem1_9_31.1,_item2_) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_NEWDELAYNT_C_2_1");
 rule.Ruleaction = |parser|{ let mut _item_del2_17_10_ = parser.popstack(); let mut _item_del1_10_4_ = parser.popstack(); let mut _item0_ = parser.popstack();  let _delvar_25_1_ = _rrsemaction_10_(parser,_item0_,_item_del1_10_4_); (_delvar_25_1_,_item_del2_17_10_,) };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<(),()>::new_skeleton("NEWDELAYNT_NEWDELAYNT_A_2_1");
 rule.Ruleaction = |parser|{ let mut _delayitem1_12_35 = parser.popstack(); let mut _item0_ = parser.popstack();  _rrsemaction_12_(parser,_item0_,_delayitem1_12_35.0,_delayitem1_12_35.1) };
 parser1.Rules.push(rule);
 parser1.Errsym = "";

 for i in 0..21 {
   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<(),()>, lexer:&mut dyn Tokenizer<'t,()>) -> Result<(),()>
{
  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<(),()>, lexer:&mut dyn Tokenizer<'t,()>, parserpath:&str) -> Result<(),()>
{
  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<(),()>)
{
}//end of load_extras: don't change this line as it affects augmentation