Exemplo n.º 1
0
 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());
     }
 }
Exemplo n.º 2
0
 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);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
 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);
        }
Exemplo n.º 9
0
        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);
        }