Changeset 3392:1fea39170df9 in livinglogic.python.xist

Show
Ignore:
Timestamp:
06/24/08 20:47:03 (11 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Change the and and or opcode to return one of the arguments. Add a bool function.

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • docs/ULL.rst

    r3386 r3392  
    263263 
    264264``isfloat`` 
    265 :::::::::::: 
     265::::::::::: 
    266266 
    267267``isfloat(foo)`` returns ``True`` if ``foo`` is a float object, else ``False`` 
     
    269269 
    270270``isstr`` 
    271 :::::::::::: 
     271::::::::: 
    272272 
    273273``isstr(foo)`` returns ``True`` if ``foo`` is a string object, else ``False`` 
     
    275275 
    276276``islist`` 
    277 :::::::::::: 
     277:::::::::: 
    278278 
    279279``islist(foo)`` returns ``True`` if ``foo`` is a list object, else ``False`` 
     
    285285``isdict(foo)`` returns ``True`` if ``foo`` is a dictionary object, else 
    286286``False`` is returned. 
     287 
     288``bool`` 
     289:::::::: 
     290 
     291``bool(foo)`` converts ``foo`` to an boolean. 
    287292 
    288293``int`` 
  • src/ll/ullc.py

    r3391 r3392  
    332332    ``"or"``: 
    333333        Check the truth value of two object in registers :attr:`r2` and :attr:`r3` 
    334         and store ``True`` in the register :attr:`r1` if one of them is true 
    335         (``False`` otherwise). 
     334        and store :attr:`r2` in the register :attr:`r1` if it is true, :attr:`r3` 
     335        otherwise). 
    336336 
    337337    ``"and"``: 
    338338        Check the truth value of two object in registers :attr:`r2` and :attr:`r3` 
    339         and store ``True`` in the register :attr:`r1` if both of them are true 
    340         (``False`` otherwise). 
     339        and store :attr:`r3` in the register :attr:`r1` if :attr:`r2` is true, 
     340        :attr:`r3` otherwise). 
    341341 
    342342    ``"mod"``: 
     
    768768                    _code("reg%d = reg%d / reg%d" % (opcode.r1, opcode.r2, opcode.r3)) 
    769769                elif opcode.code == "and": 
    770                     _code("reg%d = bool(reg%d and reg%d)" % (opcode.r1, opcode.r2, opcode.r3)) 
     770                    _code("reg%d = reg%d and reg%d" % (opcode.r1, opcode.r2, opcode.r3)) 
    771771                elif opcode.code == "or": 
    772                     _code("reg%d = bool(reg%d or reg%d)" % (opcode.r1, opcode.r2, opcode.r3)) 
     772                    _code("reg%d = reg%d or reg%d" % (opcode.r1, opcode.r2, opcode.r3)) 
    773773                elif opcode.code == "mod": 
    774774                    _code("reg%d = reg%d %% reg%d" % (opcode.r1, opcode.r2, opcode.r3)) 
     
    782782                    elif opcode.arg == "int": 
    783783                        _code("reg%d = int(reg%d)" % (opcode.r1, opcode.r2)) 
     784                    elif opcode.arg == "bool": 
     785                        _code("reg%d = bool(reg%d)" % (opcode.r1, opcode.r2)) 
    784786                    elif opcode.arg == "len": 
    785787                        _code("reg%d = len(reg%d)" % (opcode.r1, opcode.r2))