private Operator(Operator opToCopyFrom) : base(null) { opToCopyFrom.CloneInto(this); DataType = opToCopyFrom.DataType.Clone(); Modifiers = new List<string>(opToCopyFrom.Modifiers); foreach (Parameter p in opToCopyFrom.Parameters) { Parameters.Add((Parameter)p.Clone()); } }
public VBOperatorPrinter(Operator obj) { this.obj = obj; }
public void Operator_Change_Modifier() { Operator merged1 = new Operator(controller); Operator merged2 = new Operator(controller); Operator merged3 = new Operator(controller); const string name = "MyOperator"; DataType type = new DataType(controller, DataType1); const string expectedResult = Modifier2 + " " + DataType1 + " operator " + name; Operator changing = new Operator(controller, name, type, Modifier2); Operator unchanging = new Operator(controller, name, type, Modifier1); Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult); }
public void Operator_Change_DataType() { Operator merged1 = new Operator(controller); Operator merged2 = new Operator(controller); Operator merged3 = new Operator(controller); const string name = "MyOperator"; const string modifier = "MyModifier"; const string expectedResult = DataType2 + " operator " + name; DataType type1 = new DataType(controller, DataType1); DataType type2 = new DataType(controller, DataType2); Operator unchanging = new Operator(controller, name, type1, modifier); Operator changing = new Operator(controller, name, type2, modifier); Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult); }
private bool IsTheSame(Operator comparisonOperator, ComparisonDepth depth) { if (comparisonOperator == null) return false; if (Name == comparisonOperator.Name) { // Function names are the same, so now compare the class names if (ParametersAreTheSame(comparisonOperator, depth) == false) return false; // TODO: Parent object comparison // if (ParentObject.IsTheSame(comparisonOperator.ParentObject)) { if (depth == ComparisonDepth.Signature) { return true; } if (DataType != comparisonOperator.DataType) return false; if (!base.IsTheSame(comparisonOperator, depth)) { return false; } if (!Utility.StringCollectionsAreTheSame(Modifiers, comparisonOperator.Modifiers)) { ComparisonDifference += GetType().Name + ".Modifiers"; return false; } return true; } } return false; }
private bool IsTheSame(Operator comparisonOperator) { return IsTheSame(comparisonOperator, ComparisonDepth.Signature); }
public void Operator() { Operator item = new Operator(controller, "+", new DataType(controller, "int"), "public"); item.Parameters.Add(new Parameter(controller, "Class1", "this")); item.Parameters.Add(new Parameter(controller, "InputObject", "j")); Assert.That(item.FullyQualifiedDisplayName, Is.EqualTo("+ (Class1, InputObject)")); Class cl = new Class(controller, "Class1"); cl.AddChild(item); Assert.That(item.FullyQualifiedDisplayName, Is.EqualTo("Class1.+ (Class1, InputObject)")); }
public void Operator() { Operator inter = new Operator(controller); inter.Modifiers.Add("public"); inter.Name = "File"; inter.DataType = new DataType(controller, "int"); Parameter param = new Parameter(controller); param.Name = "i"; param.DataType = "int"; inter.Parameters.Add(param); inter.BodyText = "asdfasdfasdfasdf"; Assert.That(inter.IsTheSame(inter.Clone(), ComparisonDepth.Outer), Is.True); Assert.That(string.IsNullOrEmpty(((Operator)inter.Clone()).BodyText), Is.True); }
private void Process_Operator_Declaration(OperatorDeclaration node) { if (node == null) throw new ArgumentNullException("node"); Operator o = new Operator(controller); o.Name = FormatterUtility.GetOperatorName(node.OperatorType); o.Modifiers.AddRange(FormatterUtility.GetModifiersFromEnum(node.Modifiers)); o.DataType = FormatterUtility.GetDataTypeFromTypeReference(node.ReturnType, document, controller); foreach (IAstNode param in node.Parameters) { Parameter p = GetParameterFromParameterDeclaration(document, controller, param as ParameterDeclaration); o.Parameters.Add(p); p.ParentObject = o; } ProcessBodyText(node, o, node.Statements, node.Comments); SetupBaseConstruct(node, o); }
protected CodeRoot CreateClassAndOperator(string secondParameterName) { Operator inter = new Operator(controller); inter.Modifiers.Add("public"); inter.Modifiers.Add("static"); inter.Name = "+"; inter.DataType = new DataType(controller, "int"); Parameter param = new Parameter(controller); param.Name = "self"; param.DataType = "Class1"; inter.Parameters.Add(param); param = new Parameter(controller); param.Name = secondParameterName; param.DataType = "int"; inter.Parameters.Add(param); inter.BodyText = "{ return 5; }"; return CreateClassAndNamespace(inter); }