【发布时间】:2013-03-06 16:17:23
【问题描述】:
我有一个语法可以分别解析字母字符和数字:
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 用于存储,我应该能够分别获取字母和数字。
如何定义这样的语法?
【问题讨论】:
标签: antlr antlr3 antlrworks antlr2