private RuleCollection CreateRules(CGTContent content) { RuleCollection rules = new RuleCollection(); foreach (RuleRecord ruleRecord in content.RuleTable) { SymbolNonterminal lhs = symbols[ruleRecord.Nonterminal] as SymbolNonterminal; //todo: exception handling? Symbol[] rhs = new Symbol[ruleRecord.Symbols.Count]; for (int i = 0; i < rhs.Length; i++) { rhs[i] = symbols[ruleRecord.Symbols[i]]; } Rule rule = new Rule(ruleRecord.Index, lhs, rhs); rules.Add(rule); } return(rules); }
private RuleCollection CreateRules(CGTContent content) { RuleCollection rules = new RuleCollection(); foreach (RuleRecord ruleRecord in content.RuleTable) { SymbolNonterminal lhs = symbols[ruleRecord.Nonterminal] as SymbolNonterminal; //todo: exception handling? Symbol[] rhs = new Symbol[ruleRecord.Symbols.Count]; for (int i = 0; i< rhs.Length; i++) { rhs[i] = symbols[ruleRecord.Symbols[i]]; } Rule rule = new Rule(ruleRecord.Index,lhs,rhs); rules.Add(rule); } return rules; }