private static AstGetSet _prepareMacro(MacroContext context, AstExpr macroSpec, AstExpr call, AstExpr justEffect, IEnumerable<AstExpr> args) { var getContext = context.Factory.IndirectCall(context.Invocation.Position, context.Factory.Call(context.Invocation.Position, EntityRef.Variable.Local.Create( MacroAliases.ContextAlias))); var prepareCall = context.CreateExpand(EntityRef.MacroCommand.Create(CallMacroPerform.PartialCallMacroPerform.Alias)); prepareCall.Arguments.Add(macroSpec); prepareCall.Arguments.Add(getContext); prepareCall.Arguments.Add(call); prepareCall.Arguments.Add(justEffect); prepareCall.Arguments.AddRange(args); return prepareCall; }