/// <summary> /// Search program operations implementing the /// Condition search plan operation /// are created and inserted into search program /// </summary> private SearchProgramOperation buildCondition( SearchProgramOperation insertionPoint, int currentOperationIndex, PatternCondition condition) { // generate c#-code-string out of condition expression ast SourceBuilder conditionExpression = new SourceBuilder(); condition.ConditionExpression.Emit(conditionExpression); // check condition with current partial match CheckPartialMatchByCondition checkCondition = new CheckPartialMatchByCondition(conditionExpression.ToString(), condition.NeededNodes, condition.NeededEdges, condition.NeededVariables); insertionPoint = insertionPoint.Append(checkCondition); //--------------------------------------------------------------------------- // build next operation insertionPoint = BuildScheduledSearchPlanOperationIntoSearchProgram( currentOperationIndex + 1, insertionPoint); //--------------------------------------------------------------------------- return insertionPoint; }