mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-29 23:52:22 +00:00
character constants
This commit is contained in:
parent
6ec47e6be6
commit
9d2739598a
2 changed files with 20 additions and 3 deletions
|
@ -106,12 +106,13 @@ PR_LexString (void)
|
||||||
int i;
|
int i;
|
||||||
int mask;
|
int mask;
|
||||||
int boldnext;
|
int boldnext;
|
||||||
|
int quote;
|
||||||
|
|
||||||
pr_token_len = 0;
|
pr_token_len = 0;
|
||||||
mask = 0x00;
|
mask = 0x00;
|
||||||
boldnext = 0;
|
boldnext = 0;
|
||||||
|
|
||||||
pr_file_p++;
|
quote = *pr_file_p++;
|
||||||
do {
|
do {
|
||||||
c = *pr_file_p++;
|
c = *pr_file_p++;
|
||||||
if (!c)
|
if (!c)
|
||||||
|
@ -123,12 +124,18 @@ PR_LexString (void)
|
||||||
if (!c)
|
if (!c)
|
||||||
error (0, "EOF inside quote");
|
error (0, "EOF inside quote");
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
case '\\':
|
||||||
|
c = '\\';
|
||||||
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
c = '\n';
|
c = '\n';
|
||||||
break;
|
break;
|
||||||
case '"':
|
case '"':
|
||||||
c = '\"';
|
c = '\"';
|
||||||
break;
|
break;
|
||||||
|
case '\'':
|
||||||
|
c = '\'';
|
||||||
|
break;
|
||||||
case '0':
|
case '0':
|
||||||
case '1':
|
case '1':
|
||||||
case '2':
|
case '2':
|
||||||
|
@ -197,7 +204,7 @@ PR_LexString (void)
|
||||||
error (0, "Unknown escape char");
|
error (0, "Unknown escape char");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (c == '\"') {
|
} else if (c == quote) {
|
||||||
pr_token[pr_token_len] = 0;
|
pr_token[pr_token_len] = 0;
|
||||||
pr_token_type = tt_immediate;
|
pr_token_type = tt_immediate;
|
||||||
pr_immediate_type = &type_string;
|
pr_immediate_type = &type_string;
|
||||||
|
|
|
@ -108,7 +108,17 @@ m ([\-+]?)
|
||||||
sscanf (yytext, "' %f %f %f %f '",
|
sscanf (yytext, "' %f %f %f %f '",
|
||||||
&yylval.vector_val[0], &yylval.vector_val[1],
|
&yylval.vector_val[0], &yylval.vector_val[1],
|
||||||
&yylval.vector_val[2], &yylval.vector_val[3]);
|
&yylval.vector_val[2], &yylval.vector_val[3]);
|
||||||
return VECTOR_VAL;
|
return QUATERNION_VAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
'(\\[^xX0-7\n]|[^'\n]|\\[xX][0-9A-Fa-f]+|\\[0-7]+)*' {
|
||||||
|
char *str = make_string (yytext);
|
||||||
|
|
||||||
|
if (str[1])
|
||||||
|
warning (0, "multibyte char constant");
|
||||||
|
yylval.integer_val = *str;
|
||||||
|
free (str);
|
||||||
|
return INT_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
^#{s}+{DIGIT}+{s}+\"(\.|[^"])*\".*$ {
|
^#{s}+{DIGIT}+{s}+\"(\.|[^"])*\".*$ {
|
||||||
|
|
Loading…
Reference in a new issue