public virtual void visit(ICommonConstructorCall value) { }
//Вызов конструктора параметра generic-типа public void ConvertGenericParamCtorCall(ICommonConstructorCall value) { Type gpar = helper.GetTypeReference(value.common_type).tp; MethodInfo create_inst = ActivatorCreateInstance.MakeGenericMethod(gpar); il.EmitCall(OpCodes.Call, create_inst, Type.EmptyTypes); }
public void visit(ICommonConstructorCall value) { string s = value.GetType().Name + "."; //value.common_type //value.function prepare_string_node(value.last_result_function_call.ToString(), s + "last_result_function_call"); prepare_base_node_collection(value.real_parameters, s + "real_parameters", "real_parameters", value.real_parameters.Length); //value.static_method prepare_node(value.type, s + "type"); }
public void visit(ICommonConstructorCall value) { StringBuilder bodyBlock = new StringBuilder(""); foreach (IExpressionNode nodeParameter in value.real_parameters) { nodeParameter.visit(this); bodyBlock.Append(ISemanticNodeConverter.SourceTextBuilder.GetNodeFromStack()); if (value.real_parameters[value.real_parameters.Length - 1] != nodeParameter) bodyBlock.Append(", "); } if (bodyBlock.Length == 0) bodyBlock.Append("%empty%"); ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack(bodyBlock.ToString()); ISemanticNodeConverter.SourceTextBuilder.AddNodeInToStack(ISemanticNodeConverter.ConvertPABCNETNodeConstructorCall("constructor_call", value)); }