Antlr4 C# 运行时异常

Antlr4 C# runtime exception

这是我的语法文件的精简版:

grammar csv;
csv_list                 : ( TEXT | LETTERS | NUMBER ) (COMMA csv_list)* ;               
any_literal              : TEXT | LETTERS | NUMBER ;

fragment DIGIT           : [0-9] ;
DOT                      : '.' ;
COMMA                    : ',' ;
LETTERS                  : [a-zA-Z]+ ;
NUMBER                   : DIGIT+ ;
TEXT                     : [0-9a-zA-Z]+ ;

WHITESPACE               : ' ' -> skip;

我在尝试实例化上下文时遇到运行时错误(在我的例子中,上下文 class 名称是 Csv_listContext)。

请注意,NUMBERLETTERS 词法分析器规则与其余语法相关,因此我无法删除它们。

当 运行 C# 运行时中的解析器时,我得到一个“参数不能为空”的异常。

如能给我指明正确方向的任何建议,我们将不胜感激。

P.S 我知道这不是一个完整的 CSV 语法,并且有一些 CSV 语法可以工作,这只是我正在研究的语法的精简版。

更新 测试输入为 1,1232,sdfsdf,123,fff,2e,f2

对于遇到此错误的任何人,以下是我(有点)修复它的方法:

grammar csv;

csv_list            : any_literal (COMMA any_literal)* 
                    ;

any_literal         : TEXT | LETTERS | NUMBER
                    ;

fragment DIGIT           : [0-9] ;
DOT                      : '.' ;
COMMA                    : ',' ;
LETTERS                  : [a-zA-Z]+ ;
NUMBER                   : DIGIT+ ;
TEXT                     : [0-9a-zA-Z]+ ;
WHITESPACE               : ' ' -> skip;

这可能有效,因为 csv_list 解析器规则中没有递归。