0

在我的语法中,我有分配规则。它是形式 assignment: VAR_TYPE ID '=' expr;

VAR_TYPE我有一些硬编码的值,如整数、字符串等。

我想知道的是如何匹配文件中声明的任何类名?

假设有人声明class Fooand Class Bar。如何在不使用ID. 因为如果我|ID按照VAR_TYPE规则做广告,ID将永远不会匹配,我不希望这样。

4

1 回答 1

1

除非它们实际上是您语言中的关键字,否则您不应该对您的类型名称进行硬编码。然后你创建一个解析器规则来匹配任何类型:

varType : ID;
assignment : varType ID '=' expr;

Integer然后String将被视为常规ID令牌。

在解析完成后使用侦听器来验证ID出现在 each 中varType实际上是指一种类型。

于 2013-11-05T00:55:33.573 回答