]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Use MacroInvocLexerBase in MacroInvocLexer
authorOwen Avery <powerboat9.gamer@gmail.com>
Fri, 30 Jun 2023 01:28:23 +0000 (21:28 -0400)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:56:04 +0000 (18:56 +0100)
gcc/rust/ChangeLog:

* expand/rust-macro-invoc-lexer.cc
(MacroInvocLexer::skip_token): Remove.
* expand/rust-macro-invoc-lexer.h
(class MacroInvocLexer): Extend MacroInvocLexerBase.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
gcc/rust/expand/rust-macro-invoc-lexer.cc
gcc/rust/expand/rust-macro-invoc-lexer.h

index db1471eab7297d15b0c8d71e165e0d054b81d28a..aa1e1ff2ebd3b5a7793fd559b8adb75785bd17cf 100644 (file)
@@ -30,13 +30,6 @@ MacroInvocLexer::peek_token (int n)
   return token_stream.at (offs + n)->get_tok_ptr ();
 }
 
-// Advances current token to n + 1 tokens ahead of current position.
-void
-MacroInvocLexer::skip_token (int n)
-{
-  offs += (n + 1);
-}
-
 void
 MacroInvocLexer::split_current_token (TokenId new_left, TokenId new_right)
 {
index c8db89204d2625750664ef13231b88ad72838f72..a65816b5ef571067ba71645529d5e03914612aea 100644 (file)
@@ -49,11 +49,11 @@ protected:
   std::vector<T> token_stream;
 };
 
-class MacroInvocLexer
+class MacroInvocLexer : public MacroInvocLexerBase<std::unique_ptr<AST::Token>>
 {
 public:
   MacroInvocLexer (std::vector<std::unique_ptr<AST::Token>> stream)
-    : offs (0), token_stream (std::move (stream))
+    : MacroInvocLexerBase (std::move (stream))
   {}
 
   // Returns token n tokens ahead of current position.
@@ -62,32 +62,13 @@ public:
   // Peeks the current token.
   const_TokenPtr peek_token () { return peek_token (0); }
 
-  // Advances current token to n + 1 tokens ahead of current position.
-  void skip_token (int n);
-
-  // Skips the current token.
-  void skip_token () { skip_token (0); }
-
   // Splits the current token into two. Intended for use with nested generics
   // closes (i.e. T<U<X>> where >> is wrongly lexed as one token). Note that
   // this will only work with "simple" tokens like punctuation.
   void split_current_token (TokenId new_left, TokenId new_right);
 
-  std::string get_filename () const
-  {
-    // FIXME
-    rust_unreachable ();
-    return "FIXME";
-  }
-
-  size_t get_offs () const { return offs; }
-
   std::vector<std::unique_ptr<AST::Token>>
   get_token_slice (size_t start_idx, size_t end_idx) const;
-
-private:
-  size_t offs;
-  std::vector<std::unique_ptr<AST::Token>> token_stream;
 };
 } // namespace Rust