我正在从这里实现一个 Pascal 解析器 EBNF defintion .以下规范中有一些我不明白的地方:
variable
entire-variable | component-variable | referenced-variable
entire-variable
variable-identifier | field-identifier
component-variable
indexed-variable | field-designator | file-buffer
field-designator
record-variable "." field-identifier
假设我们要应用
variable
生产于 a.b[0]
.自 a
符合entire-variable
生产,这将阻止 component-variable
从检测 field-designator
a.b
因此 .
关注 a
将停止解析器。
最佳答案
由于 EBNF 没有有序的选择,最长的匹配通常用于确定哪些规则适用。
关于pascal - 如何理解这个 EBNF Pascal 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54191146/