private ParsingRule FindOrAddRuleByName(string name) { foreach (var rule in _rules) { if (rule.Name == name) { return(rule); } } var newRule = new ParsingRule(name); _rules.Add(newRule); return(newRule); }
//private void ExpandAllRecursive(ParsingRule rule) //{ // if (rule.Definitions != null) // { // foreach (var definition in rule.Definitions) // { // Console.WriteLine(); // foreach (var step in definition) // ExpandAllRecursive(step); // } // } // else // { // foreach (var pred in rule.Predicates) // Console.Write("{0}, ", pred.name); // } //} private void ExpandAllRecursive(ParsingRule rule) { if (rule.Definitions != null) { foreach (var definition in rule.Definitions) { foreach (var step in definition) { if (step.Predicates != null) { Console.Write("{0}, ", step.Name); } else { ExpandAllRecursive(step); } } } } }
private object ExpandRulesTree(ParsingRule rulesTreeRoot) { throw new NotImplementedException(); }