public override IAstElement ProcessBeforeChildren(IdentifierExpression identifier, ProcessingContext context) { var resolved = context.ResolveIdentifier(identifier.Name); RequireExactlyOne(resolved, identifier.Name); var result = (IAstElement)resolved[0]; var property = result as IAstPropertyReference; if (property != null) { result = new AstPropertyExpression(new AstThisExpression(), property); } var function = result as IAstMethodReference; if (function != null) { result = new AstFunctionReferenceExpression(new AstThisExpression(), function); } result.SourceSpan = identifier.SourceSpan; return(result); }
protected override void AppendFunctionReferenceExpression(StringBuilder builder, AstFunctionReferenceExpression expression) { if (expression.Target != null) { Append(builder, expression.Target); builder.Append("."); } builder.Append(expression.Function.Name); }
protected virtual void AppendFunctionReferenceExpression(StringBuilder builder, AstFunctionReferenceExpression functionReferenceExpression) { builder.Append(functionReferenceExpression); }