}
#define SYMBOL_CHARS_WITHOUT_E_P \
- case '$': if (!allow_dollar_in_symbol) goto dollar_sign; \
+ '$': if (!allow_dollar_in_symbol) goto dollar_sign; \
case 'a': \
case 'b': \
case 'c': \
case 'X': \
case 'Y': \
case 'Z': \
- case '_':
+ case '_'
#define SYMBOL_CHARS_E_P \
- case 'E': \
+ 'E': \
case 'P': \
case 'e': \
- case 'p':
+ case 'p'
#define SYMBOL_CHARS \
- SYMBOL_CHARS_WITHOUT_E_P \
- SYMBOL_CHARS_E_P
+ SYMBOL_CHARS_WITHOUT_E_P: \
+ case SYMBOL_CHARS_E_P
#define DIGITS \
- case '0': \
+ '0': \
case '1': \
case '2': \
case '3': \
case '6': \
case '7': \
case '8': \
- case '9':
+ case '9'
static bool is_universal_char_valid(utf32 const v)
{
{
while (true) {
switch (c) {
- DIGITS
- SYMBOL_CHARS
+ case DIGITS:
+ case SYMBOL_CHARS:
obstack_1grow(&symbol_obstack, (char) c);
next_char();
break;
} else if (obstack_object_size(&symbol_obstack) == 0 && !is_universal_char_valid_identifier_start(v)) {
errorf(&lexer_pos, "universal character \\%c%0*X is not valid as start of an identifier", n == 4 ? 'u' : 'U', (int)n, v);
} else {
- obstack_grow_symbol(&symbol_obstack, v);
+ obstack_grow_utf8(&symbol_obstack, v);
}
break;
}
{
for (;;) {
switch (c) {
- SYMBOL_CHARS_E_P
+ case SYMBOL_CHARS_E_P:
obstack_1grow(&symbol_obstack, (char)c);
next_char();
if (c == '+' || c == '-') {
case '.':
- DIGITS
- SYMBOL_CHARS_WITHOUT_E_P
+ case DIGITS:
+ case SYMBOL_CHARS_WITHOUT_E_P:
obstack_1grow(&symbol_obstack, (char)c);
next_char();
}
}
obstack_1grow(&symbol_obstack, tc);
} else {
- obstack_grow_symbol(&symbol_obstack, tc);
+ obstack_grow_utf8(&symbol_obstack, tc);
}
break;
}
next_char();
goto end_of_string;
} else {
- obstack_grow_symbol(&symbol_obstack, c);
+ obstack_grow_utf8(&symbol_obstack, c);
next_char();
break;
}
lexer_token.kind = '\n';
return;
- SYMBOL_CHARS {
+ case SYMBOL_CHARS: {
parse_symbol();
/* might be a wide string ( L"string" ) */
string_encoding_t const enc = STRING_ENCODING_WIDE;
return;
}
- DIGITS
+ case DIGITS:
parse_pp_number();
return;
case '.':
MAYBE_PROLOG
- DIGITS
+ case DIGITS:
put_back(c);
c = '.';
parse_pp_number();
default:
dollar_sign:
- errorf(&lexer_pos, "unknown character '%c' found", c);
+ errorf(&lexer_pos, "unknown character '%lc' found", c);
next_char();
break;
}