diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-04-27 18:16:44 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-05-11 09:38:20 +0200 |
commit | 7358d90bb61ca30b6e22066306a8b77e373ed7e8 (patch) | |
tree | c9ca0def71a46d0a0185d262efb86ab385146f1f | |
parent | f087501e3372e62477c9ad17670fc73245ade4a4 (diff) | |
download | gcc-7358d90bb61ca30b6e22066306a8b77e373ed7e8.zip gcc-7358d90bb61ca30b6e22066306a8b77e373ed7e8.tar.gz gcc-7358d90bb61ca30b6e22066306a8b77e373ed7e8.tar.bz2 |
tokenstream: Add string and byte string literals
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>
-rw-r--r-- | gcc/rust/ast/rust-ast-tokenstream.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/rust/ast/rust-ast-tokenstream.cc b/gcc/rust/ast/rust-ast-tokenstream.cc index 7a28634..5442e1c 100644 --- a/gcc/rust/ast/rust-ast-tokenstream.cc +++ b/gcc/rust/ast/rust-ast-tokenstream.cc @@ -50,6 +50,22 @@ TokenStream::collect () const { 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: |