示例#1
0
        def _div(ivkbl, frame, interpreter):
            right_obj = frame.pop()
            left      = frame.pop()

            # Do operation and perform conversion to Integer if required
            result = left.get_embedded_biginteger() / right_obj.get_embedded_value()
            if Integer.value_fits(result):
                frame.push(self._universe.new_integer(result))
            else:
                frame.push(self._universe.new_biginteger(result))
示例#2
0
        def _div(ivkbl, frame, interpreter):
            right_obj = frame.pop()
            left = frame.pop()

            # Do operation and perform conversion to Integer if required
            result = left.get_embedded_biginteger(
            ) / right_obj.get_embedded_value()
            if Integer.value_fits(result):
                frame.push(self._universe.new_integer(result))
            else:
                frame.push(self._universe.new_biginteger(result))
示例#3
0
文件: parser.py 项目: QDucasse/PySOM
    def _literal_number(self, mgenc):
        if self._sym == Symbol.Minus:
            val = self._negative_decimal()
        else:
            val = self._literal_decimal()

        if Integer.value_fits(val):
            lit = self._universe.new_integer(val)
        else:
            lit = self._universe.new_biginteger(val)

        mgenc.add_literal_if_absent(lit)
        self._bc_gen.emitPUSHCONSTANT(mgenc, lit)
示例#4
0
文件: parser.py 项目: krono/PySOM
    def _literal_number(self, mgenc):
        if self._sym == Symbol.Minus:
            val = self._negative_decimal()
        else:
            val = self._literal_decimal()

        if Integer.value_fits(val):
            lit = self._universe.new_integer(val)
        else:
            lit = self._universe.new_biginteger(val)

        mgenc.add_literal_if_absent(lit)
        self._bc_gen.emitPUSHCONSTANT(mgenc, lit)
示例#5
0
 def _push_long_result(self, frame, result):
     # Check with integer bounds and push:
     if Integer.value_fits(result):
         frame.push(self._universe.new_integer(int(result)))
     else:
         frame.push(self._universe.new_biginteger(result))