probleme beim parsen von lisp-listen
Verfasst: Freitag 18. Mai 2007, 14:12
				
				ich krieg es urgendwie nicht hin lisp-programme/listen in normale python listen umzuwandlen.
also wenn zb etwas so gegeben ist:
muss es so geparst werden:
danke
edit:
hier mein nicht funktionierenden ansatz:
			also wenn zb etwas so gegeben ist:
Code: Alles auswählen
(while (True) (add 7 (raw_input)))Code: Alles auswählen
['while', ['True'], ['add', '7', ['raw_input']]]
edit:
hier mein nicht funktionierenden ansatz:
Code: Alles auswählen
    
def parse(block):
    block = block[1:-1]
    print block
    def_name = block.split(' ')[0]
    level = 0
    args = []
    sub = ''
    for char in block:
        if char == '(':
            level += 1
        elif char == ')':
            level -= 1
        if level:
            sub += char
        else:
            if sub:
                args.append(parse(sub+')'))
            sub = ''
    print def_name, '\t',args
    print
    if args:
        return [def_name, args]
    else:
        return def_name