Я пишу грамматику для анализа диаграмм состояний PlantUML и сомневаюсь в следующем:
Я имел:
transition: STATE arrow STATE (":" event? guard? action?)? "\n"
arrow: ("->" | "-->" | "-left->" | "-right->" | "-up->" | "-down->")
Но пришлось поменять на:
transition: STATE ("->" | "-->" | "-left->" | "-right->" | "-up->" | "-down->") STATE (":" event? GUARD? action?)? "\n"
Потому что для моего приложения мне не нужно и не заботиться о том, какой тип стрелки используется; достаточно знать, что стрелка была там, чтобы сформировать переход.
Возникает вопрос: есть ли способ разделить transition
правило в других более управляемых правилах без того, чтобы тип стрелки появлялся в анализируемом дереве?
Полный файл на https://github.com/thomedes/PlantUML-Lark-EBNF . Не стесняйтесь комментировать / критиковать. Пытаюсь учиться здесь ????