BNFC中的内部规则用于语法指导翻译?

时间:2013-09-10 22:53:54

标签: compiler-construction bnfc

BNFC允许人们使用“内部”规则来辅助语法指导翻译。他们给出的规范示例是类型注释

internal VarT . Exp ::= "(" Ident ":" Type ");

这为我们提供了AST的新部分,

Exp = ... | VarT Ident Type

这很棒!然而,真正好的是,如果可以允许将任意类型作为占位符放在那里以供日后使用。

internal VarT . Exp ::= "(" Ident ":" a ")";

我们将生成参数数据类型

Exp a = ... | VarT Ident a

然后我们可以用类型(用于类型检查器)或代码段(用于代码生成)来填充它。

0 个答案:

没有答案