public Grammer AddRule(Rule rule) { rules.Add(rule); rule.RuleNumber = rules.Count; foreach(ISymbol symbol in rule.Symbols()){ if (!symbolsInGrammer.ContainsKey(symbol)) symbolsInGrammer.Add(symbol,true); } return this; }