Exemplo n.º 1
0
        protected override BaseExpression Visit(PreIncrement inc)
        {
            //Add(inc.Name);
            throw new NotImplementedException();

            return(base.Visit(inc));
        }
Exemplo n.º 2
0
        protected override IEnumerable <BaseStatement> Visit(PreIncrement inc)
        {
            return(new BaseStatement[] {
                // Increment in place
                new Assignment(inc.Name, new Increment(inc.Name)),

                // Return modified value
                new Assignment(MkTmp(), new Variable(inc.Name))
            });
        }
Exemplo n.º 3
0
 /// <summary>
 /// Evaluates the operator.
 /// </summary>
 /// <param name="Operand">Operand.</param>
 /// <returns>Result</returns>
 public virtual IElement Evaluate(IElement Operand)
 {
     if (Operand is DoubleNumber DOp)
     {
         return(new DoubleNumber(DOp.Value + 1));
     }
     else
     {
         return(PreIncrement.Increment(Operand, this));
     }
 }
Exemplo n.º 4
0
 public virtual TResult Visit(BaseExpression expression)
 {
     return(expression switch {
         Phi a => Visit(a),
         Increment a => Visit(a),
         Decrement a => Visit(a),
         ErrorExpression a => Visit(a),
         Bracketed a => Visit(a),
         Abs a => Visit(a),
         Sqrt a => Visit(a),
         Sine a => Visit(a),
         Cosine a => Visit(a),
         Tangent a => Visit(a),
         ArcSine a => Visit(a),
         ArcCos a => Visit(a),
         ArcTan a => Visit(a),
         PostIncrement a => Visit(a),
         PreIncrement a => Visit(a),
         PostDecrement a => Visit(a),
         PreDecrement a => Visit(a),
         Add a => Visit(a),
         Subtract a => Visit(a),
         Multiply a => Visit(a),
         Divide a => Visit(a),
         Modulo a => Visit(a),
         Negate a => Visit(a),
         Exponent a => Visit(a),
         Or a => Visit(a),
         And a => Visit(a),
         Not a => Visit(a),
         Factorial a => Visit(a),
         Variable a => Visit(a),
         ConstantNumber a => Visit(a),
         ConstantString a => Visit(a),
         EqualTo a => Visit(a),
         NotEqualTo a => Visit(a),
         GreaterThan a => Visit(a),
         GreaterThanEqualTo a => Visit(a),
         LessThan a => Visit(a),
         LessThanEqualTo a => Visit(a),
         _ => VisitUnknown(expression)
     });
Exemplo n.º 5
0
 protected override bool Visit(PreIncrement inc) => throw new NotSupportedException();
Exemplo n.º 6
0
 protected override Type Visit(PreIncrement inc) => VariableRead(inc.Name);
Exemplo n.º 7
0
 [NotNull] protected abstract TResult Visit([NotNull] PreIncrement inc);
Exemplo n.º 8
0
        public void CanNotRuntimeError()
        {
            var app = new PreIncrement(new VariableName("abc"));

            Assert.IsFalse(app.CanRuntimeError);
        }
Exemplo n.º 9
0
        public void IsNotBoolean()
        {
            var app = new PreIncrement(new VariableName("abc"));

            Assert.IsFalse(app.IsBoolean);
        }
Exemplo n.º 10
0
        public void IsNotConstant()
        {
            var app = new PreIncrement(new VariableName("abc"));

            Assert.IsFalse(app.IsConstant);
        }
Exemplo n.º 11
0
        protected override BaseExpression Visit(PreIncrement inc)
        {
            _names.Add(inc.Name);

            return(base.Visit(inc));
        }
Exemplo n.º 12
0
 protected override BaseExpression Visit(PreIncrement inc)
 {
     using (AppendLine($"++{inc.Name}"))
         return(inc);
 }
Exemplo n.º 13
0
 [NotNull] protected virtual BaseExpression Visit([NotNull] PreIncrement inc)
 {
     return(new PreIncrement(Visit(inc.Name)));
 }
Exemplo n.º 14
0
 protected override IDataFlowGraphExpressionNode Visit(PreIncrement inc)
 {
     throw new NotSupportedException("PreIncrement must be converted to Increment before data flow analysis");
 }
Exemplo n.º 15
0
 protected override bool Visit(PreIncrement inc) => true;