c#上的Vhdl解析器

本文关键字:Vhdl 上的 | 更新日期: 2023-09-27 18:06:33

我需要做一个vhdl解析器。我决定使用鹿角解析器生成器和vhdl语法从他们的网站http://www.antlr.org/grammar/1202750770887/vhdl.g。我在检查语法时有问题,有这个错误:

下列标记定义永远无法匹配,因为先前

如果有人以前用过这个,请告诉我,如果语法是不正确的,或者如果我做了其他错误的事情。

c#上的Vhdl解析器

From vhdl.g

BASIC_IDENTIFIER
   :   LETTER ( '_' | LETTER | DIGIT )*
   ;
...
LETTER  
  :  'a'..'z' | 'A'..'Z'
  ;

LETTER, INTEGER和DIGIT看起来都应该是一个片段,因为解析器规则永远不会调用它们。

fragment LETTER 
  :  'a'..'z' | 'A'..'Z'
  ;

编辑:正如Bart所述,由于BASIC_IDENTIFIER在语法中列在LETTER之前,并且涵盖了LETTER所包含的所有情况,因此词法分析器永远不会创建任何LETTER令牌。