support all C character escape sequences
This commit is contained in:
parent
4ffc67919e
commit
81614c41ab
@ -110,11 +110,13 @@ sizeof return TOK_SIZEOF;
|
|||||||
|
|
||||||
L?'[^\\]' return TOK_CHAR_CONST;
|
L?'[^\\]' return TOK_CHAR_CONST;
|
||||||
L?'\\.' return TOK_CHAR_CONST;
|
L?'\\.' return TOK_CHAR_CONST;
|
||||||
L?'\\n' (void)'\n'; return TOK_CHAR_CONST;
|
L?'\\a' (void)'\a'; return TOK_CHAR_CONST;
|
||||||
L?'\\t' (void)'\t'; return TOK_CHAR_CONST;
|
|
||||||
L?'\\r' (void)'\r'; return TOK_CHAR_CONST;
|
|
||||||
L?'\\b' (void)'\b'; return TOK_CHAR_CONST;
|
L?'\\b' (void)'\b'; return TOK_CHAR_CONST;
|
||||||
L?'\\f' (void)'\f'; return TOK_CHAR_CONST;
|
L?'\\f' (void)'\f'; return TOK_CHAR_CONST;
|
||||||
|
L?'\\n' (void)'\n'; return TOK_CHAR_CONST;
|
||||||
|
L?'\\r' (void)'\r'; return TOK_CHAR_CONST;
|
||||||
|
L?'\\t' (void)'\t'; return TOK_CHAR_CONST;
|
||||||
|
L?'\\v' (void)'\v'; return TOK_CHAR_CONST;
|
||||||
[0-9]+([uU][lL]?[lL]?)? return TOK_INT_CONST;
|
[0-9]+([uU][lL]?[lL]?)? return TOK_INT_CONST;
|
||||||
0[xX][0-9a-fA-F]+([uU][lL]?[lL]?)? return TOK_INT_CONST;
|
0[xX][0-9a-fA-F]+([uU][lL]?[lL]?)? return TOK_INT_CONST;
|
||||||
([0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?[fFlL]? return TOK_FLOAT_CONST;
|
([0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?[fFlL]? return TOK_FLOAT_CONST;
|
||||||
@ -139,11 +141,13 @@ L?'\\f' (void)'\f'; return TOK_CHAR_CONST;
|
|||||||
char v[2] = {(char)val, '\0'};
|
char v[2] = {(char)val, '\0'};
|
||||||
String_concat(build_string, v);
|
String_concat(build_string, v);
|
||||||
}
|
}
|
||||||
\\n String_concat(build_string, "\n");
|
\\a String_concat(build_string, "\a");
|
||||||
\\t String_concat(build_string, "\t");
|
|
||||||
\\r String_concat(build_string, "\r");
|
|
||||||
\\b String_concat(build_string, "\b");
|
\\b String_concat(build_string, "\b");
|
||||||
\\f String_concat(build_string, "\f");
|
\\f String_concat(build_string, "\f");
|
||||||
|
\\n String_concat(build_string, "\n");
|
||||||
|
\\r String_concat(build_string, "\r");
|
||||||
|
\\t String_concat(build_string, "\t");
|
||||||
|
\\v String_concat(build_string, "\v");
|
||||||
\\. String_concat(build_string, &yytext[1]);
|
\\. String_concat(build_string, &yytext[1]);
|
||||||
[^\\\"]+ String_concat(build_string, yytext);
|
[^\\\"]+ String_concat(build_string, yytext);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user