Пример #1
0
        protected override BaseExpression Visit(PostDecrement dec)
        {
            //Add(dec.Name, dec);
            throw new NotImplementedException();

            return(base.Visit(dec));
        }
Пример #2
0
        protected override IEnumerable <BaseStatement> Visit(PostDecrement dec)
        {
            var tmp = MkTmp();

            return(new BaseStatement[] {
                // Save original value
                new Assignment(tmp, new Variable(dec.Name)),

                // Increment it in place
                new Assignment(dec.Name, new Decrement(dec.Name)),

                // Return original value
                new Assignment(MkTmp(), new Variable(tmp))
            });
        }
Пример #3
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)
     });
Пример #4
0
 protected override bool Visit(PostDecrement dec) => throw new NotSupportedException();
Пример #5
0
 protected override Type Visit(PostDecrement dec) => VariableRead(dec.Name);
Пример #6
0
 [NotNull] protected abstract TResult Visit([NotNull] PostDecrement dec);
Пример #7
0
        protected override BaseExpression Visit(PostDecrement dec)
        {
            _names.Add(dec.Name);

            return(base.Visit(dec));
        }
 protected override BaseExpression Visit(PostDecrement dec)
 {
     using (AppendLine($"{dec.Name}--"))
         return(dec);
 }
Пример #9
0
 [NotNull] protected virtual BaseExpression Visit([NotNull] PostDecrement dec)
 {
     return(new PostDecrement(Visit(dec.Name)));
 }
Пример #10
0
 protected override IDataFlowGraphExpressionNode Visit(PostDecrement dec)
 {
     throw new NotSupportedException("PostDecrement must be converted to Decrement before data flow analysis");
 }
Пример #11
0
 protected override bool Visit(PostDecrement dec) => true;