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