def getSelector(self): from literals import Symbol selector = '' if self.keyword: selector += self.keyword if self.argKeywords: selector += ' ' for kw in self.argKeywords: selector += kw + ':' return Symbol(selector)
def __init__(self, arg): from literals import Symbol super(Name, self).__init__() if isinstance(arg, basestring): self.token = None self.sym = Symbol(arg) else: assert isinstance(arg.value, Symbol) self.token = arg self.sym = arg.value # initial state is undefined reference self.definition = None self.stmt = None # XXX: cycle return
class Sub(Oper): selector = Symbol('__sub__')
class BOr(Oper): selector = Symbol('__bor__')
class BAnd(Oper): selector = Symbol('__band__')
class Eq(Oper): selector = Symbol('__eq__')
class LE(Oper): selector = Symbol('__le__')
class LT(Oper): selector = Symbol('__lt__')
class Neg(Oper): selector = Symbol('__neg__')
class Pos(Oper): selector = Symbol('__pos__')
class Ind(Oper): selector = Symbol('__ind__')
class Addr(Oper): selector = Symbol('__addr__')
class Pred(Oper): selector = Symbol('__pred__')
class Index(Oper): selector = Symbol('__index__')
class Apply(Oper): selector = Symbol('__apply__')
class LShift(Oper): selector = Symbol('__lshift__')
class RShift(Oper): selector = Symbol('__rshift__')
class BNeg(Oper): selector = Symbol('__bneg__')
class GT(Oper): selector = Symbol('__gt__')
class LNeg(Oper): selector = Symbol('__lneg__')
class GE(Oper): selector = Symbol('__ge__')
class Mul(Oper): selector = Symbol('__mul__')
class NE(Oper): selector = Symbol('__ne__')
class Div(Oper): selector = Symbol('__div__')
class BXOr(Oper): selector = Symbol('__bxor__')
class Mod(Oper): selector = Symbol('__mod__')
class Add(Oper): selector = Symbol('__add__')
class Succ(Oper): selector = Symbol('__succ__')