我需要在 antlr4 中用 4 位数字解析一个数字

I need to parse a number by 4 digits in antlr4

我刚开始使用 antlr4 我只想编写一个可以解析数字序列但一次只能解析 select 4 位数字的语法

比如我有一个号码1234567891234567 然后我希望它将前 4 位数字解析为 1 个标记,然后将下一个解析为另一个标记,然后将下一个解析为另一个标记,以便我得到 4 个不同的 4 位标记。

token1 = 1234,
token2 = 5678,
token3 = 9123,
token4 = 4567,

谁能帮我写一个语法

   grammar TEST;

    /*
     * Parser Rules
     */

    test             :   (example+ EOF);
    example          :   digit COMMA digit2 NEWLINE;
    digit            :   SINGLE+;
    digit2           :   QUADRUPLE+;


    /*
     * Lexer Rules
     */

     SINGLE:
        INT 
   ;

    QUADRUPLE:
       INT INT INT INT
   ;

   fragment INT:
       [0-9]
    ;
   NEWLINE    : ('\r'? '\n' | '\r')+ ;
   COMMA      : ',';

这是我写的语法,我需要它首先将单个数字打印为标记,然后在逗号后我需要将数字打印为标记中的 4 位数字,请检查附加图像并帮助我

相应的词法分析器规则如下所示:

QUADRUPLE:
    INT INT INT INT
;

fragment INT:
    [0-9]
;

所以这个问题的关键是放弃使用 ANTLR 的 "repeating-operators"(*+)之一,并简单地手写重复,以便它与所需的完全匹配计数。