MatchEventSpec tags = new MatchEventSpec();
Deque<Integer> subexpressionIdStack = new ArrayDeque<Integer>(assignedTypeNumberStack);
ExprEvaluatorContext evaluatorContextStmt = new ExprEvaluatorContextStatement(context);
recursiveCompile(evalFactoryNode, context, evaluatorContextStmt, eventTypeReferences, isInsertInto, tags, subexpressionIdStack);
Audit auditPattern = AuditEnum.PATTERN.getAudit(context.getAnnotations());
Audit auditPatternInstance = AuditEnum.PATTERNINSTANCES.getAudit(context.getAnnotations());
EvalFactoryNode compiledEvalFactoryNode = evalFactoryNode;
if (auditPattern != null || auditPatternInstance != null) {
EvalAuditInstanceCount instanceCount = new EvalAuditInstanceCount();
compiledEvalFactoryNode = recursiveAddAuditNode(null, auditPattern != null, auditPatternInstance != null, evalFactoryNode, evalNodeExpressions, instanceCount);
}