} 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;
}
}
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;
}
}
obstack_1grow(&symbol_obstack, tc);
} else {
- obstack_grow_symbol(&symbol_obstack, tc);
+ obstack_grow_utf8(&symbol_obstack, tc);
}
} else {
obstack_1grow(&symbol_obstack, (char)input.c);
next_char();
goto end_of_string;
} else {
- obstack_grow_symbol(&symbol_obstack, input.c);
+ obstack_grow_utf8(&symbol_obstack, input.c);
next_char();
break;
}
return result;
}
-static inline void obstack_grow_symbol(struct obstack *obstack, utf32 const tc)
+static inline void obstack_grow_utf8(struct obstack *const obst, utf32 const c)
{
- if (tc < 0x80U) {
- obstack_1grow(obstack, tc);
- } else if (tc < 0x800) {
- obstack_1grow(obstack, 0xC0 | (tc >> 6));
- obstack_1grow(obstack, 0x80 | (tc & 0x3F));
- } else if (tc < 0x10000) {
- obstack_1grow(obstack, 0xE0 | ( tc >> 12));
- obstack_1grow(obstack, 0x80 | ((tc >> 6) & 0x3F));
- obstack_1grow(obstack, 0x80 | ( tc & 0x3F));
+ if (c < 0x80U) {
+ obstack_1grow(obst, c);
+ } else if (c < 0x800) {
+ obstack_1grow(obst, 0xC0 | (c >> 6));
+ obstack_1grow(obst, 0x80 | (c & 0x3F));
+ } else if (c < 0x10000) {
+ obstack_1grow(obst, 0xE0 | ( c >> 12));
+ obstack_1grow(obst, 0x80 | ((c >> 6) & 0x3F));
+ obstack_1grow(obst, 0x80 | ( c & 0x3F));
} else {
- obstack_1grow(obstack, 0xF0 | ( tc >> 18));
- obstack_1grow(obstack, 0x80 | ((tc >> 12) & 0x3F));
- obstack_1grow(obstack, 0x80 | ((tc >> 6) & 0x3F));
- obstack_1grow(obstack, 0x80 | ( tc & 0x3F));
+ obstack_1grow(obst, 0xF0 | ( c >> 18));
+ obstack_1grow(obst, 0x80 | ((c >> 12) & 0x3F));
+ obstack_1grow(obst, 0x80 | ((c >> 6) & 0x3F));
+ obstack_1grow(obst, 0x80 | ( c & 0x3F));
}
}