def test(self): assert 0 == len(self.lParams) try: ensureConsType(self.consWrapped, ar_assocElem) return True except: return False
def assocAddIntern(csAssoc, cs2Add): ensureConsType(cs2Add, ar_assocElem) # baustelle vieleicht zu viele tests (da durch interne verwendung abgesichert) walker = csAssoc while not nil == walker.cdr(): walker = walker.cdr() ensureConsType(walker.car(), ar_assocElem) # baustelle vieleicht zu viele tests walker.cdr(ConsSimple(cs2Add, nil))
def listLen(csList): ensureConsType(csList, ar_list) ret = 0 walker = csList while not nil == walker.cdr(): ret += 1 walker = walker.cdr() return ret
def assocElemClone(csAssocElem): ensureConsType(csAssocElem, ar_assocElem) ret = ConsSimple(csAssocElem.car(), nil) walker = csAssocElem.cdr() while not nil == walker: listAdd(ret, walker.car()) # baustelle1 : ineffizient walker = walker.cdr() return ret
def assocClone(csAssoc): ensureConsType(csAssoc, ar_assoc) ret = ConsSimple(csAssoc.car(), nil) walker = csAssoc.cdr() while not nil == walker: ensureConsType(walker.car(), ar_assocElem) # baustelle vieleicht zu viele tests assocAddIntern(ret, assocElemClone(walker.car())) # baustelle1 : ineffizient walker = walker.cdr() return ret
def codeListConfigGet( codeListConfig, key): ensureConsType( codeListConfig, ar_codeListConfig) codeListConfigEnvironment= assocGet( codeListConfig, (lambda x: x.car()==key)) if 0==listLen( codeListConfigEnvironment): assert( False) # test-hook codeListConfigSet( codeListConfigSet, key, None) # baustelle: ungetestet codeListConfigEnvironment= assocGet( codeListConfig, (lambda x: x.car()==key)) assert( 1==listLen( codeListConfigEnvironment)) return consesNth0( assocNth0( codeListConfigEnvironment, 0), 1)
def assocGet(csAssoc, fSelector): ensureConsType(csAssoc, ar_assoc) ret = assocMake() walker = csAssoc.cdr() while not nil == walker: ensureConsType(walker.car(), ar_assocElem) # baustelle vieleicht zu viele tests if fSelector(walker.car().cdr()): # assocAdd( ret, walker.car().cdr()) # baustelle1 : ineffizient assocAddIntern(ret, walker.car()) # baustelle1 : ineffizient walker = walker.cdr() return ret
def listNth0(csList, i): ensureConsType(csList, ar_list) if i < 0: return not_found ensureConsType(csList, ar_list) walker = csList while not nil == walker.cdr(): walker = walker.cdr() if 0 == i: return walker.car() i -= 1 return not_found
def macroBufFeed( self, l, outer= True): ensure( l, [Cons]) if outer: if isinstance( l.cdr(), Cons): if isinstance( l.cdr().car(), Cons): ensureConsType( l.cdr().car(), ar_codeList) # baustelle: ggf. uebertestet ensureConsType( l.cdr().car().cdr().car(), ar_codeListConfig) # baustelle: ggf. uebertestet pass uNames.next( usRename( ConsSimple, 'cs')) uNames.next( usRename( Symbol, 's')) c= l r= nil # reverse while not id( nil) == id( c): r= ConsSimple( c.car(), r) c= c.cdr() self.macroBufAdd( False, Symbol( ')')) while not id( nil) == id( r): value= r.car() if isinstance( value, Cons) and typeSymbolChk( value.car(), ar_codeList): # f69eef8ad76e459da16194dcdd0c73c6 codeListEnsure( value) # b73fcfe5b4de4df6946ee586d8f79713 self.macroBufFeed( codeListGetParameterValues( value), outer= False) # 2849da4969b146bc88315f20fd205e06 baustelle0: hier wird das Environment verworfen else: self.macroBufAdd( False, value) r= r.cdr() self.macroBufAdd( outer, Symbol( '(')) # 64005373aae94f3a9314d303d5f4016e uNames.undo() uNames.undo()
def assocNth0(csAssoc, i): ret1 = listNth0(csAssoc, i) ensureConsType(ret1, ar_assocElem) return ret1.cdr()
def assocAdd(csAssoc, cs2Add): ensureConsType(csAssoc, ar_assoc) return assocAddIntern(csAssoc, ConsSimple(ar_assocElem, cs2Add))
def listAdd(csList, cs2Add): # baustelle ineffizient ensureConsType(csList, ar_list) # baustelle vieleicht zu viele tests (da durch interne verwendung abgesichert) walker = csList while not nil == walker.cdr(): # e81b14fbc95d425b90b9849b493c7ac9 walker = walker.cdr() walker.cdr(ConsSimple(cs2Add, nil))
def stackGetCodeCurrentLeafList( stack): ensureConsType( stack, ar_stack) return stack.cdr().cdr().cdr().car()
def stackGetCodeListParent2EvalToken( stack): ensureConsType( stack, ar_stack) return stack.cdr().cdr().car()
def stackGetCodeListCurrentEvalTokenList( stack): ensureConsType( stack, ar_stack) return stack.cdr().car()
def codeListConfigSet( codeListConfig, key, value): ensureConsType( codeListConfig, ar_codeListConfig) codeListConfigEnvironment= assocGet( codeListConfig, (lambda x: x.car()==key)) assert( 1==listLen( codeListConfigEnvironment)) assocNth0( codeListConfigEnvironment, 0).cdr().car( value)