如何在 ANTLR4 中为 UUID v4 编写词法分析器规则?

How to write a lexer rule for UUID v4 in ANTLR4?

如何在 ANTLR4 中为 UUID v4 编写词法分析器规则?

UUIDV4: [0-9a-fA-F]{8}'-'[0-9a-fA-F]{4}'-'[0-9a-fA-F]{4}'-'[0-9a-fA-F]{4}'-'[0-9a-fA-F]{12};;

我还导入了另一个语法,其中有以下规则

WS
   : [ \t\n\r] + -> skip
   ;

在满足 WS 规则的同时,我不想在 UUID V4 中的破折号前后有任何空格。我该怎么做?

ANTLR 没有 {...} 量词。你将不得不自己重复它们。应该这样做:

UUIDV4
 : HEX_4 HEX_4 '-' HEX_4 '-' HEX_4 '-' HEX_4 '-' HEX_4 HEX_4 HEX_4
 ;

fragment HEX_4
 : HEX HEX HEX HEX
 ;

fragment HEX
 : [0-9a-fA-F]
 ;