Доступ к именам полей в pyparsing - PullRequest
0 голосов
/ 11 сентября 2018

Я использую следующий код pyparser для разбора запросов lucene: https://github.com/pyparsing/pyparsing/blob/master/examples/lucene_grammar.py

Ввод:

result = expression.parseString("lit AND field:value", parseAll=True)
print(result.dump())

вывод

[['lit', 'AND', ['field', ':', 'value']]]
[0]:
  ['lit', 'AND', ['field', ':', 'value']]
  [0]:
    lit
  [1]:
    AND
  [2]:
    ['field', ':', 'value']
    - field: 'field'

Теперь мне бы хотелось узнать, что «И» - это ключевое слово «and», а «Горит» - это слово.

Из кода синтаксического анализатора я вижу, что «word» имеет имя, связанное с ним

valid_word = Regex(r'([a-zA-Z0-9*_+.-]|\\[!(){}\[\]^"~*?\\:])+').setName("word")

Вопрос в том, как получить свойство "word" содержимого результата.

...