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> | 2024-01-16 18:37:16 +0100 |
commit | e9ced4a3a581fd06e9bd6c8862a53607b4395f34 (patch) | |
tree | 3fb0a74b33c224d791f182e43876b82b2a8296dc | |
parent | 8c465d5fb09d1c7769ba4d9ce641e3e7c261b528 (diff) | |
download | gcc-e9ced4a3a581fd06e9bd6c8862a53607b4395f34.zip gcc-e9ced4a3a581fd06e9bd6c8862a53607b4395f34.tar.gz gcc-e9ced4a3a581fd06e9bd6c8862a53607b4395f34.tar.bz2 |
gccrs: 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: |