Я не могу и не знаю, как получить значения AST, сгенерированные мной с помощью анализатора Lark.
Моя грамматика выглядит следующим образом, сохраняемая в файле .lark:
start: (un_handle ": ")? AMOUNT "|" p_handle ("," p_handle)* (" \"" MESSAGE* "\"")?
AMOUNT: /[0-9]+(\.[0-9][0-9]?)?/
un_handle: HANDLE
p_handle: HANDLE
HANDLE : /[A-Z][A-Z]/
MESSAGE : /[^"]+/
Затем я запускаю:
testText = '10|GP "Bananas"'
testTree = parser.parse(testText)
и получаю:
Tree(start, [Token(AMOUNT, '10'), Tree(p_handle, [Token(HANDLE, 'GP')]), Token(MESSAGE, 'Bananas')])
Но что теперь?
Я понимаю, что мне, вероятно, придется построитьтрансформер, но какие методы я должен определить и как их назвать?Я просто хочу извлечь значения для AMOUNT, un_handle, p_handle (может быть более одного p_handle) и сообщения в переменные Python.
Заранее большое спасибо!Отлаживал часами.