【发布时间】:2023-03-25 01:40:01
【问题描述】:
假设我为更简单的两项加法器定义了以下 EBNF:
<expression> ::= <number> <plus> <number>
<number> ::= [0-9]+
<plus> ::= "+"
显示为here。
除了术语之间的换行符/回车符之外,允许任何数量的空格的正确方法是什么?例如允许:
1 + 2
1 <tab> + 2
1 + 2
等等
例如,执行以下操作失败:
<whitespace>::= " " | \t
此外,似乎(几乎)每个术语的前后都有一个可选空格。比如:
<plus> ::= <whitespace>? "+" <whitespace>?
如何正确解决?
【问题讨论】: