Всем привет!
Не очень понимаю, как в yargy написать правило, которое будет "зависимым" от другого правила.
Например, в грамматике стандартного AddressExtractor описано правило для определения индекса, но оно работает независимо от того, есть ли в строке какая-то другая часть адреса или нет.
Получается что, в строке
УАЗ-390995
был найден индекс.
Хотелось бы парсить индекс только в том случае, если уже напарсили, например, город.
Также, хочется доработать текущую грамматику AddressExtractor, чтобы можно было разбирать подобные адреса: Пенза, Строителей, 90.
Т.е., если мы уже напарсили город, то следующий токен -- название улицы, если после него идет ADDR_VALUE rule.
INDEX = and_(
INT, gte(100000),lte(999999)
).interpretation(
Index.value
).interpretation(
Index
)
ADDR_PART = or_(
INDEX, COUNTRY, ..., KVARTIRA
).interpretation(
AddrPart.value
).interpretation(
AddrPart
)