如何理解这个 EBNF Pascal 定义
How to understand this EBNF Pascal Definition
我正在从这个 EBNF defintion 中实现一个 Pascal 解析器。以下规范中有些地方我不明白:
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
假设我们要在 a.b[0]
上应用 variable
产生式。由于 a
符合 entire-variable
生产,这将阻止 component-variable
检测到 field-designator
a.b
,因此 .
跟随 a
将停止解析器。
由于 EBNF 没有有序的选择,因此通常使用最长匹配来确定应用哪些规则。
我正在从这个 EBNF defintion 中实现一个 Pascal 解析器。以下规范中有些地方我不明白:
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
假设我们要在 a.b[0]
上应用 variable
产生式。由于 a
符合 entire-variable
生产,这将阻止 component-variable
检测到 field-designator
a.b
,因此 .
跟随 a
将停止解析器。
由于 EBNF 没有有序的选择,因此通常使用最长匹配来确定应用哪些规则。