我正在编写解析 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。随意评论/批评。想在这里学习