public ResolveResult Resolve (Expression expression) { ResolveResult result = expression.AcceptVisitor (this, null) as ResolveResult; if (result == null) result = CreateResult (""); return result; }
public bool Evaluate(Expression condition) { return condition.AcceptVisitor(this, null) == SymbolDefined; }
void AddEventHandler(Expression eventExpr, Expression handler, object data) { methodReference = true; CodeExpression methodInvoker = (CodeExpression)handler.AcceptVisitor(this, data); methodReference = false; if (!(methodInvoker is CodeObjectCreateExpression)) { // we need to create an event handler here methodInvoker = new CodeObjectCreateExpression(new CodeTypeReference("System.EventHandler"), methodInvoker); } if (eventExpr is IdentifierExpression) { AddStmt(new CodeAttachEventStatement(new CodeEventReferenceExpression(new CodeThisReferenceExpression(), ((IdentifierExpression)eventExpr).Identifier), methodInvoker)); } else { MemberReferenceExpression fr = (MemberReferenceExpression)eventExpr; AddStmt(new CodeAttachEventStatement(new CodeEventReferenceExpression((CodeExpression)fr.TargetObject.AcceptVisitor(this, data), fr.MemberName), methodInvoker)); } }