private static IProductionRuleCaptureStructure BuildStructureFor(OilexerGrammarProductionRuleEntry entry, IProductionRuleSeries expressionSeries, IProductionRule expression, IOilexerGrammarFile source) { IProductionRuleCaptureStructure result = new ProductionRuleCaptureStructure(entry); foreach (var item in expression) { var current = BuildStructureFor(entry, expressionSeries, expression, item, source); result = result.Concat(current); } return(result); }
public IProductionRuleCaptureStructuralItem Union(IProductionRuleCaptureStructuralItem rightElement) { if (rightElement is ProductionRuleCaptureStructure) { return(this.Union((ProductionRuleCaptureStructure)rightElement)); } else { var rightElementStructure = new ProductionRuleCaptureStructure(this.owner); rightElementStructure.Concat(rightElement); return(this.Union(rightElementStructure)); } }