예제 #1
0
파일: Reference.cs 프로젝트: SealedSun/prx
 private static AstGetSet _assembleImplCall(MacroContext context, SymbolEntry implementationSymbolEntry,
                                            ISourcePosition position)
 {
     var internalId = context.CreateConstant(implementationSymbolEntry.InternalId);
     var interpretation = implementationSymbolEntry.Interpretation.ToExpr(position);
     var moduleNameOpt = context.CreateConstantOrNull(implementationSymbolEntry.Module);
     var implCall = context.Factory.IndirectCall(context.Invocation.Position,
                                                 context.Factory.Reference(context.Invocation.Position,
                                                                           EntityRef.Command.Create(
                                                                               Impl.Alias)));
     implCall.Arguments.Add(internalId);
     implCall.Arguments.Add(interpretation);
     implCall.Arguments.Add(moduleNameOpt);
     return implCall;
 }