public override object VisitExpressionStatement(ExpressionStatement expressionStatement, object data)
{
if (resolver.CompilationUnit == null)
return base.VisitExpressionStatement(expressionStatement, data);
// Transform event invocations that aren't already transformed by a parent IfStatement to RaiseEvent statement
InvocationExpression eventInvocation = expressionStatement.Expression as InvocationExpression;
if (eventInvocation != null && eventInvocation.TargetObject is IdentifierExpression) {
MemberResolveResult mrr = resolver.ResolveInternal(eventInvocation.TargetObject, ExpressionContext.Default) as MemberResolveResult;
if (mrr != null && mrr.ResolvedMember is IEvent) {
ReplaceCurrentNode(new RaiseEventStatement(
((IdentifierExpression)eventInvocation.TargetObject).Identifier,
eventInvocation.Arguments));
}
}
base.VisitExpressionStatement(expressionStatement, data);
HandleAssignmentStatement(expressionStatement.Expression as AssignmentExpression);
return null;
}