Add conversion to tokenstream Literals for string and byte strings.
gcc/rust/ChangeLog:
* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
conversion for byte string and string.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
{
switch (token->get_id ())
{
+ // Literals
+ case CHAR_LITERAL: // TODO: UTF-8 handling
+ trees.back ().push (ProcMacro::TokenTree::make_tokentree (
+ ProcMacro::Literal::make_char (token->as_string ()[0])));
+ break;
+ case STRING_LITERAL:
+ trees.back ().push (ProcMacro::TokenTree::make_tokentree (
+ ProcMacro::Literal::make_string (token->as_string ())));
+ break;
+ case BYTE_STRING_LITERAL: {
+ auto str = token->as_string ();
+ std::vector<uint8_t> data (str.begin (), str.end ());
+ trees.back ().push (ProcMacro::TokenTree::make_tokentree (
+ ProcMacro::Literal::make_byte_string (data)));
+ }
+ break;
// Ident
case IDENTIFIER:
case ABSTRACT: