-end_of_wide_char_constant:
- lexer_token.type = T_INTEGER;
- lexer_token.v.intvalue = found_char;
- lexer_token.datatype = type_wchar_t;
+end_of_wide_char_constant:;
+ size_t size = (size_t) obstack_object_size(&symbol_obstack);
+ assert(size % sizeof(wchar_rep_t) == 0);
+ size /= sizeof(wchar_rep_t);
+
+ const wchar_rep_t *string = obstack_finish(&symbol_obstack);
+
+ lexer_token.type = T_WIDE_CHARACTER_CONSTANT;
+ lexer_token.v.wide_string.begin = string;
+ lexer_token.v.wide_string.size = size;
+ lexer_token.datatype = type_wchar_t;