我所说的字符串文字是指那些\123
也包含 -like 字符的文字。我写了一些东西,但我不知道它是否完美:
<STRING> {
\" { yybegin(YYINITIAL);
return new Token(TokenType.STRING,string.toString()); }
\\[0-3][0-7][0-7] { string.append( yytext() ); }
\\[0-3][0-7] { string.append( yytext() ); }
\\[0-7] { string.append( yytext() ); }
[^\n\r\"\\]+ { string.append( yytext() ); }
\\t { string.append('\t'); }
\\n { string.append('\n'); }
\\r { string.append('\r'); }
\\\" { string.append('\"'); }
\\ { string.append('\\'); }
}
事实上,我知道这并不完美,因为对于解析类似字符的三行\ddd
,我没有将字符本身放在字符串中,而是将其表示。我可能会尝试使用 Character 方法对其进行转换,但也许我并不详尽,也许还有其他我没有处理的转义序列......所以如果有一个规范的 jflex 文件,那将是完美的。