Пример #1
0
 def test(self):
     assert 0 == len(self.lParams)
     try:
         ensureConsType(self.consWrapped, ar_assocElem)
         return True
     except:
         return False
Пример #2
0
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))
Пример #3
0
def listLen(csList):
    ensureConsType(csList, ar_list)
    ret = 0
    walker = csList
    while not nil == walker.cdr():
        ret += 1
        walker = walker.cdr()
    return ret
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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)
Пример #7
0
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
Пример #8
0
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
Пример #9
0
 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()
Пример #10
0
def assocNth0(csAssoc, i):

    ret1 = listNth0(csAssoc, i)
    ensureConsType(ret1, ar_assocElem)
    return ret1.cdr()
Пример #11
0
def assocAdd(csAssoc, cs2Add):
    ensureConsType(csAssoc, ar_assoc)
    return assocAddIntern(csAssoc, ConsSimple(ar_assocElem, cs2Add))
Пример #12
0
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))
Пример #13
0
def stackGetCodeCurrentLeafList( stack):
 ensureConsType( stack, ar_stack)
 return stack.cdr().cdr().cdr().car()
Пример #14
0
def stackGetCodeListParent2EvalToken( stack):
 ensureConsType( stack, ar_stack)
 return stack.cdr().cdr().car()
Пример #15
0
def stackGetCodeListCurrentEvalTokenList( stack):
 ensureConsType( stack, ar_stack)
 return stack.cdr().car()
Пример #16
0
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)