rustlr 0.3.93

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

#![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(irrefutable_let_patterns)]
extern crate rustlr;
use rustlr::{ZCParser,ZCRProduction,Stateaction,decode_action};
use crate::exprtrees::*;
use crate::exprtrees::Expr::*;
use rustlr::{LBox};

const SYMBOLS:[&'static str;12] = ["E","ES","+","-","*","/","(",")",";","int","START","EOF"];

const TABLE:[u64;99] = [4295098369,65537,12885164032,25770131456,38654902272,281509337038848,281492157038592,281483567169536,281496452202496,281487862005760,562997198061571,562962838585344,562975723552768,562988608323584,562949954142209,844454994903042,844433520066562,844442110001154,844446404968450,844437815033858,844459289870338,1125912792006656,1125925676974080,1125938561744896,1125899907629057,1407413538455552,1407400653684736,1407387768717312,1407374884405249,1688849861181441,1688862745427968,1688888515166208,1688875630395392,1970350607106048,1970324837957633,1970363491876864,1970337722138624,2251799814733825,2251825583816704,2251838468587520,2251812698849280,2533300560658434,2533313445560322,2533287675756546,2533322035494914,2814775537238016,2814788422008832,2814762652270592,2814749768220673,3096237629112320,3096246219309056,3096259104735232,3096233334276096,3096241924145152,3377734080593922,3377721196019712,3377708310790146,3377712605757442,3377729785626626,3377716900855808,3659183287697408,3659187582533632,3659196172730368,3659204763254784,3659191877566464,3940658264014850,3940679738851330,3940671149441024,3940684033818626,3940666854277120,3940662558982146,4222137535823874,4222154715693058,4222146125758466,4222159010660354,4222133240856578,4222141830791170,4503612512337922,4503633987174402,4503621102862336,4503629692207106,4503608217370626,4503616807698432,4785087489179650,4785096079114242,4785104669048834,4785108964016130,4785083194212354,4785091784146946,5066575351119874,5066562466217986,5066596825956354,5066588236021762,5348058917634050,5348041737764866,5348054622666754,5348037442797570,5348046032732162,5348033147830274,];

pub fn make_parser() -> ZCParser<Expr,Expr>
{
 let mut parser1:ZCParser<Expr,Expr> = ZCParser::new(10,20);
 let mut rule = ZCRProduction::<Expr,Expr>::new_skeleton("start");
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _m_ = parser.popstack(); 
  if let (m,)=(_m_.value,) { m /* should be a Val(n) */}  else {parser.bad_pattern("(m,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _e2_ = parser.popstack(); let _popped_1 = parser.popstack(); let _e1_ = parser.popstack(); 
  if let (e2,e1,)=(_e2_.value,_e1_.value,) {  Plus(makelbox!(_e1_,e1),makelbox!(_e2_,e2)) }  else {parser.bad_pattern("(e2,e1,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _e2_ = parser.popstack(); let _popped_1 = parser.popstack(); let _e1_ = parser.popstack(); 
  if let (e2,e1,)=(_e2_.value,_e1_.value,) {  Minus(parser.lb(e1),parser.lb(e2)) }  else {parser.bad_pattern("(e2,e1,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _e2_ = parser.popstack(); let _popped_1 = parser.popstack(); let _e1_ = parser.popstack(); 
  if let (e2,e1,)=(_e2_.value,_e1_.value,) {  Divide(parser.lb(e1),parser.lb(e2)) }  else {parser.bad_pattern("(e2,e1,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _e2_ = parser.popstack(); let _popped_1 = parser.popstack(); let _e1_ = parser.popstack(); 
  if let (e2,e1,)=(_e2_.value,_e1_.value,) {  Times(parser.lb(e1),parser.lb(e2)) }  else {parser.bad_pattern("(e2,e1,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _e_ = parser.popstack(); let _popped_0 = parser.popstack(); 
  if let (e,)=(_e_.value,) {  Negative(makelbox!(_e_,e)) }  else {parser.bad_pattern("(e,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("E");
 rule.Ruleaction = |parser|{ let _popped_2 = parser.popstack(); let _e_ = parser.popstack(); let _popped_0 = parser.popstack(); 
  if let (e,)=(_e_.value,) {  e }  else {parser.bad_pattern("(e,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("ES");
 rule.Ruleaction = |parser|{ let _popped_1 = parser.popstack(); let _n_ = parser.popstack(); 
  if let (n,)=(_n_.value,) {  Seq(vec![parser.lb(n)]) }  else {parser.bad_pattern("(n,)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("ES");
 rule.Ruleaction = |parser|{ let _popped_2 = parser.popstack(); let _e_ = parser.popstack(); let _@Seq(mut v)_ = parser.popstack(); 
  if let (e,Seq(mut v),)=(_e_.value,_@Seq(mut v)_.value,) { 
   v.push(parser.lb(e));
   Seq(v)
 }  else {parser.bad_pattern("(e,Seq(mut v),)")} };
 parser1.Rules.push(rule);
 rule = ZCRProduction::<Expr,Expr>::new_skeleton("START");
 rule.Ruleaction = |parser|{ let _popped_0 = parser.popstack(); <Expr>::default()};
 parser1.Rules.push(rule);
 parser1.Errsym = "";
 parser1.resynch.insert(";");

 for i in 0..99 {
   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

fn load_extras(parser:&mut ZCParser<Expr,Expr>)
{
}//end of load_extras: don't change this line as it affects augmentation