rustlr 0.3.0

LR/LALR parser generator that can automatically create abstract syntax trees
Documentation
192d191
<      let defaultrtype = format!("_PE_Default({})",&self.Absyntype);
252c251
< 	          let mut newterm = Gsym::new(stokens[i],true);
---
> 	          let newterm = Gsym::new(stokens[i],true);
254d252
<                   newterm.settype(&defaultrtype);
267,276c265
<               if stokens.len()>2 && stokens[2]!="mut" {
< 	         let rtype = format!("_PE_Variant_{}({})",self.Symbols.len(),tokentype.trim());
< 		 newterm.settype(&rtype);
<                }
<                else {
<                  newterm.settype(&defaultrtype);
<                }               
< 
<                newterm.settype(tokentype.trim()); // need comment out!**
<                
---
>                newterm.settype(tokentype.trim());
287,297c276,281
<                if stokens.len()>2 && stokens[2]!="mut" {
< 	         let rtype = format!("_PE_Variant_{}({})",self.Symbols.len(),tokentype.trim());
< 		 newterm.settype(&rtype);
<                }
<                else {
<                  let rtype = format!("_PE_Default({})",&self.Absyntype);
<                  newterm.settype(&defaultrtype);
<                }               
< 
<                newterm.settype(tokentype.trim()); // need to comment out!
< 
---
> //	       if stokens.len()>2 && stokens[2]!="mut" {
> //	         let rtype = format!("PE_Variant_{}({})",self.Symbols.len(),tokentype.trim());
> //		 newterm.settype(&rtype);
>                newterm.settype(tokentype.trim());
> //               }
> //               else {newterm.settype(&self.Absyntype);}
304c288
< 	          let mut newterm = Gsym::new(stokens[i],false);
---
> 	          let newterm = Gsym::new(stokens[i],false);
306,307d289
<                   let rtype = format!("_PE_Default({})",&self.Absyntype);
<                   newterm.settype(&rtype);
764,778d745
< 
< 
< pub fn gen_enum(&self,fd:&mut File) -> Result<(),std::io::Error>
< {
<     let ref absyn = self.Absyntype;
<     let ref lifetime = self.lifetime;
<     let has_lt = lifetime.len()>0 && (absyn.contains(lifetime));
<     let ltopt = if has_lt {format!("<{}>",lifetime)} else {String::from("")};
<     //enum name is Retenumgrammarname, variant is _grammarname_enum_{n}
<     let enumname = format!("RetEnum_{}",&self.name);
<     let symlen = self.Symbols.len();
<     write!(fd,"\n//Enum for return values \nenum {} {{\n",&enumname)?;
<     
<     Ok(())
< }// generate enum from rusttype defs