\\r obstack_1grow (&string_obstack, '\r');
\\t obstack_1grow (&string_obstack, '\t');
\\v obstack_1grow (&string_obstack, '\v');
\\r obstack_1grow (&string_obstack, '\r');
\\t obstack_1grow (&string_obstack, '\t');
\\v obstack_1grow (&string_obstack, '\v');
- \\[\"\'?\\] obstack_1grow (&string_obstack, yytext[1]);
+
+ /* \\[\"\'?\\] would be shorter, but it confuses xgettext. */
+ \\("\""|"'"|"?"|"\\") obstack_1grow (&string_obstack, yytext[1]);
+
- "'" YY_OBS_GROW; BEGIN c_context;
- \\{splice}[\'\\] YY_OBS_GROW;
- <<EOF>> unexpected_end_of_file (yylloc, "'");
+ "'" YY_OBS_GROW; BEGIN c_context;
+ \\{splice}[^$@\[\]] YY_OBS_GROW;
+ <<EOF>> unexpected_end_of_file (yylloc, "'");
- "\"" YY_OBS_GROW; BEGIN c_context;
- \\{splice}[\"\\] YY_OBS_GROW;
- <<EOF>> unexpected_end_of_file (yylloc, "\"");
+ "\"" YY_OBS_GROW; BEGIN c_context;
+ \\{splice}[^$@\[\]] YY_OBS_GROW;
+ <<EOF>> unexpected_end_of_file (yylloc, "\"");