我有一个语法,它分别解析字母字符和数字:
grammar Demo;
options
{
language = C;
}
program : process+
;
process : Alphanumeric {printf("\%s",$Alphanumeric.text->chars);}
;
Alphanumeric : (Alphabet | Number)+
;
fragment Alphabet : ('a'..'z')+
;
fragment Number : ('0'..'9')+
;
假设输入是 'a10' 或 'b10',printf 语句会显示 a10 或 b10,但我想拆分字母字符和数字,即 a 和 10 必须分开拆分,因为我需要 'a ' 与其他字符串进行比较,并将数字,即 'a' 或 'b' 等旁边的数字保存到表中。
准确地说,a10 必须拆分 -> a 用于比较,10 用于存储,我应该能够分别获取字母和数字。
如何为这样的东西定义语法?