public static InvocationExpression add_Invocation(this BlockStatement blockStatement, string typeName, string methodName, params object[] parameters) //, AstExpression expression) { if (methodName.valid().isFalse()) { return(null); } Expression memberExpression = null; if (typeName.valid()) { memberExpression = new MemberReferenceExpression(new IdentifierExpression(typeName), methodName); } else { memberExpression = new IdentifierExpression(methodName); } var memberReference = new InvocationExpression(memberExpression); if (parameters != null) { var arguments = new List <Expression>(); foreach (var parameter in parameters) { if (parameter is Expression) { arguments.add(parameter as Expression); } else { arguments.add(new PrimitiveExpression(parameter, parameter.str())); } } memberReference.Arguments = arguments; } blockStatement.append(memberReference.expressionStatement()); return(memberReference); }