pascal - 如何理解这个 EBNF Pascal 定义

标签 pascal ebnf

我正在从这里实现一个 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/

相关文章:

grammar - 如何用EBNF定义排列?

c# - TinyPG 没有正确解析这个语法,bug 还是错误的语法?

javascript - EBNF 语法分析器模块

delphi - 如何在 Delphi 7 中使用现有表单作为选项卡

if-statement - 我的 if 语句有什么问题?

Delphi while循环导致程序停止响应

java - 解析维基媒体标记——基于 EBNF 的解析器不适合吗?

openssl - 调用 OpenSSL EVP 函数的 Delphi/Pascal 示例

string - 如何从字符串中删除字符直到第一个字符是字母?

python - 如何在 python lark 解析器中平衡规则和终端?