'aaddrof': lambda x:CA.CAttrAddrOf(*x), 'aindex': lambda x:CA.CAttrIndex(*x), 'aquestion': lambda x:CA.CAttrQuestion(*x) } constant_constructors = { 'int': lambda x:CC.CConstInt(*x), 'str': lambda x:CC.CConstStr(*x), 'wstr': lambda x:CC.CConstWStr(*x), 'chr': lambda x:CC.CConstChr(*x), 'real': lambda x:CC.CConstReal(*x), 'enum': lambda x:CC.CConstEnum(*x) } exp_constructors = { 'const': lambda x:CE.CExpConst(*x), 'lval': lambda x:CE.CExpLval(*x), 'sizeof': lambda x:CE.CExpSizeOf(*x), 'sizeofe': lambda x:CE.CExpSizeOfE(*x), 'sizeofstr': lambda x:CE.CExpSizeOfStr(*x), 'alignof': lambda x:CE.CExpAlignOf(*x), 'alignofe': lambda x:CE.CExpAlignOfE(*x), 'unop': lambda x:CE.CExpUnOp(*x), 'binop': lambda x:CE.CExpBinOp(*x), 'question': lambda x:CE.CExpQuestion(*x), 'caste': lambda x:CE.CExpCastE(*x), 'addrof': lambda x:CE.CExpAddrOf(*x), 'addroflabel': lambda x:CE.CExpAddrOfLabel(*x), 'startof': lambda x:CE.CExpStartOf(*x), 'fnapp': lambda x:CE.CExpFnApp(*x), 'cnapp': lambda x:CE.CExpCnApp(*x)
def f(index,key): return CE.CExpLval(self,index,e.tags,args) return self.exp_table.add(IT.get_key(e.tags,args),f)
def f(index, key): return CE.CExpLval(self, index, tags, args)