Невозможно получить значения от Lark AST - PullRequest
0 голосов
/ 04 июля 2019

Я не могу и не знаю, как получить значения 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.

Заранее большое спасибо!Отлаживал часами.

...