- if (yytext[i] == '\\')
- // XXX: support more line continuation characters
- if (false) line: {
- yylloc->end.lines(1);
- yylloc->end.columns(yyleng - i);
- } else switch (next = yytext[++i]) {
- case '\n': goto line;
-
- case '\\': next = '\\'; break;
- case '\'': next = '\''; break;
- case '"': next = '"'; break;
- case 'b': next = '\b'; break;
- case 'f': next = '\f'; break;
- case 'n': next = '\n'; break;
- case 'r': next = '\r'; break;
- case 't': next = '\t'; break;
- case 'v': next = '\v'; break;
-
- case '0': case '1': case '2': case '3':
- if (yytext[i + 1] < '0' || yytext[i + 1] > '7')
- next = H(yytext[i]), i += 0;
- else if (yytext[i + 2] < '0' || yytext[i + 2] > '7')
- next = H(yytext[i]) << 3 | H(yytext[i + 1]), i += 1;
- else
- next = H(yytext[i]) << 6 | H(yytext[i + 1]) << 3 | H(yytext[i + 2]), i += 2;
- break;
+<StrictAccentString>{
+ "`" R CYLexBufferEnd(string, String, yyextra->tail_ ? tk::TemplateTail : tk::NoSubstitutionTemplate, hi::Constant);
+ "${" R yyextra->template_.push(true); CYLexBufferEnd(string, String, yyextra->tail_ ? tk::TemplateMiddle : tk::TemplateHead, hi::Constant);