324,325c324,330
< else {String::new()};
<
---
> else {String::new()};
> let mut groupvariants:HashMap<usize,HashSet<String>> = HashMap::new();
> /*
> for (_,ntd) in toextend.iter() {
> groupvariants.insert(*ntd,HashSet::new());
> }
> */
337c342,347
< let mut groupenums = HashSet::new(); // for variant-groups
---
> let mut targetnt = nti;
> if let Some(ntd) = toextend.get(nt) { targetnt = *ntd;}
> if !groupvariants.contains_key(&targetnt) {
> groupvariants.insert(targetnt,HashSet::new());
> }
> let groupenums = groupvariants.get_mut(&targetnt).unwrap();
403c413,415
< groupenums.insert(self.Rules[*ri].lhs.label.clone());
---
> let toinsert = self.Rules[*ri].lhs.label.clone();
> //println!("inserting {} to groupenums, had len {}",&toinsert, groupenums.len());
> groupenums.insert(toinsert);
409,419d420
< /*
< if groupoper.len()>0 {
< let operlab = self.Rules[*ri].lhs.label.to_lowercase();
< if groupenums.contains(&self.Rules[*ri].lhs.label) {
< nullenum = true;
< } else
< enumvar.push_str(&format!("{}:&'static str,",&operlab));
< groupenums.insert(self.Rules[*ri].lhs.label.clone());
< }
< ACTION.push_str(&format!("{}:\"{}\",",&operlab,groupoper));
< */