Example #1
0
        public Type Visit(NegativeStatement negativeStatement, FunctionGeneratorEnvironment arg)
        {
            negativeStatement.s1.Accept(this, arg);
            Program.Emit(T42Instruction.NEG);

            return(new IntType());
        }
Example #2
0
        public IValue Visit(NegativeStatement negativeStatement)
        {
            var result = negativeStatement.s1.Accept(this);
            var x      = ((NumberValue)result).Number;

            if (result.Type != ValueType.Number)
            {
                var err = new ErrorMessage();
                throw new EvaluationError(err.ErrorOutput(ErrorMessage.ErrorCode.UOP_1, negativeStatement));
            }

            return(new NumberValue(0 - x));
        }
Example #3
0
        public Type Visit(NegativeStatement negativeStatement)
        {
            var type      = negativeStatement.s1.Accept(this);
            var type_text = type.GetType().Name;

            if (IsVoidType(type_text))
            {
                var err = new TypeErrorMessage();
                throw new TypeException(err.ErrorOutput(TypeErrorMessage.ErrorCode.ASN_2, negativeStatement));
            }
            if (type_text != "IntType")
            {
                var err = new TypeErrorMessage();
                throw new TypeException(err.ErrorOutput(TypeErrorMessage.ErrorCode.UOP_2, negativeStatement));
            }
            return(type);
        }
Example #4
0
        public Statement Visit(NegativeStatement negativeStatement)
        {
            negativeStatement.s1.Accept(this);

            return(null);
        }
Example #5
0
        public Void Visit(NegativeStatement negativeStatement, SortedSet <string> free)
        {
            negativeStatement.s1.Accept(this, free);

            return(null);
        }