Я создаю парсер lisp в python 3.7.
Представьте, что у меня есть эта программа списка в виде строки
"(begin (define r 10) (* pi (* r r)))"
который я токенизирую, используя:
def tokenize(string):
return string.replace('(', ' ( ').replace(')', ' ) ').split()
возвращение
['(', 'begin', '(', 'define', 'r', '10', ')', '(', '*', 'pi', '(', '*', 'r', 'r', ')', ')', ')']
Теперь я пытаюсь создать функцию, которая считывает этот список токенов и возвращает это.
['begin', ['define', 'r', '10'], ['*', 'pi', ['*', 'r', 'r']]]
Любая идея приветствуется.
'("\"" "(" "\\")
и т. д. - person tripleee   schedule 01.09.2019