Antlr 如何获取Lexer规则的文本
我有这样一个Antlr语法词法规则Antlr 如何获取Lexer规则的文本,antlr,antlr3,antlrworks,Antlr,Antlr3,Antlrworks,我有这样一个Antlr语法词法规则 Letter : '\u0024' | '\u005f'| '\u0041'..'\u005a' | '\u0061'..'\u007a' | '\u00c0'..'\u00d6' | '\u00d8'..'\u00f6' | '\u00f8'..'\u00ff' | '\u0100'..'\u1fff' | '\u3040'..'\u318f' | '\u3300'..'\u337f'
Letter
: '\u0024' | '\u005f'|
'\u0041'..'\u005a' | '\u0061'..'\u007a' |
'\u00c0'..'\u00d6' | '\u00d8'..'\u00f6' |
'\u00f8'..'\u00ff' | '\u0100'..'\u1fff' |
'\u3040'..'\u318f' | '\u3300'..'\u337f' |
'\u3400'..'\u3d2d' | '\u4e00'..'\u9fff' |
'\uf900'..'\ufaff'
;
Name : Letter (Letter | '0'..'9' | '.' | '-')*;
我想得到Name的字符串值。如何操作?根据解析器规则:
或
从lexer规则本身:
rule
: Name {String s = $Name.text; System.out.println(s);}
;
rule
: n=Name {String s = $n.text; System.out.println(s);}
;
Name
: Letter (Letter | '0'..'9' | '.' | '-')*
{String s = $text; System.out.println(s);}
;