解析规则警告中的隐式声明antlrworks 2

时间:2013-06-04 03:03:07

标签: antlrworks

我总是在解析规则警告时获得隐式声明,当编译antlrworks 2中的antlr v4中的所有示例时,我的简单规则如下:

type
  : 'Integer'
  | 'Character'  
  | 'Real'       
  | 'String'     
  | 'Short'      
  | 'Long'       
  | 'Double'        
  | 'Signed'        
  | 'Unsigned'   
  | 'Boolean'    
  | structTag    
  | enumTag      
  | declarator   
  ;

任何人都可以给我解决方案警告,例如上面的解决方案。 谢谢

1 个答案:

答案 0 :(得分:1)

警告是通知您,您无法在代码中知道您的type是否为标识符,字符,真实等,因为您尚未将命名令牌类型分配给相应的令牌。您可以通过为每个令牌创建命名词法分析器规则来解决此警告:

INTEGER : 'Integer';
CHARACTER : 'Character';

添加这些新定义后,您不必更改type规则,但添加定义后,您将能够检查令牌类型是INTEGER还是CHARACTER解析器结果处理代码的一部分。