ANTLR4:处于Lexer模式时,Lexer返回单个令牌
我正在尝试使用具有以下词法语法的ANTLR4的词法器模式:ANTLR4:处于Lexer模式时,Lexer返回单个令牌,antlr4,Antlr4,我正在尝试使用具有以下词法语法的ANTLR4的词法器模式: STRING: '"' -> pushMode(STRING_MODE); mode STRING_MODE; STRING_CONTENTS: ~('"'|'\n'|'\r')+ -> type(STRING); END_STRING: '"' -> type(STRING), popMode; STRING_UNMATCHED: . -> type(UNMATCHED); 是否有方法为模式中捕获的所有字符
STRING: '"' -> pushMode(STRING_MODE);
mode STRING_MODE;
STRING_CONTENTS: ~('"'|'\n'|'\r')+ -> type(STRING);
END_STRING: '"' -> type(STRING), popMode;
STRING_UNMATCHED: . -> type(UNMATCHED);
- 是否有方法为模式中捕获的所有字符(包括导致进入模式的字符)返回字符串类型的单个标记
- 模式什么时候结束
STRING: '"' (~["\n\r]|'\\"')* '"';
1) more
属性将把匹配的文本累积到非more
属性规则发出的第一个标记中
用于:
将与字符串
和字符串内容
规则匹配的文本前置到结束字符串
规则的文本,从而生成包含字符串全文的字符串
类型的标记
2) mode语句的“end”由
- 语法分析器规则
- 另一种模式语句
- 片段规则
- EOF
more
属性将匹配文本累积到非more
属性规则发出的第一个标记中
用于:
将与字符串
和字符串内容
规则匹配的文本前置到结束字符串
规则的文本,从而生成包含字符串全文的字符串
类型的标记
2) mode语句的“end”由
- 语法分析器规则
- 另一种模式语句
- 片段规则
- EOF
STRING: '"' -> more, pushMode(STRING_MODE);
mode STRING_MODE;
STRING_CONTENTS: ~('"'|'\n'|'\r')+ -> more ;
END_STRING: '"' -> type(STRING), popMode;