lib-ruby-parser (C++ bindings)  4.0.1+ruby-3.1.1
C++ bindings for lib-ruby-parser library
token_rewriter.hpp
Go to the documentation of this file.
1 #ifndef LIB_RUBY_PARSER_TOKEN_REWRITER_HPP
2 #define LIB_RUBY_PARSER_TOKEN_REWRITER_HPP
3 
4 #include <cstdint>
5 #include <cstdbool>
6 #include "token.hpp"
7 #include "shared_byte_list.hpp"
8 
9 namespace lib_ruby_parser
10 {
11  enum class RewriteAction
12  {
13  DROP,
14  KEEP
15  };
16 
18  {
19  public:
20  enum class Tag
21  {
22  SET,
23  KEEP
24  };
25 
26  union Value
27  {
28  int32_t set;
29  };
30 
33  };
34 
36  {
37  public:
41 
42  TokenRewriterResult(const TokenRewriterResult &) = default;
44 
46  };
47 
48  class TokenRewriter;
51  {
52  public:
54 
56  };
57 
59  {
60  public:
62 
64 
65  bool is_some() const;
66  bool is_none() const;
67 
68  static MaybeTokenRewriter Some(TokenRewriter decoder);
69  static MaybeTokenRewriter None();
70  };
71 } // namespace lib_ruby_parser
72 
73 #endif // LIB_RUBY_PARSER_TOKEN_REWRITER_HPP
lib_ruby_parser::MaybeTokenRewriter::None
static MaybeTokenRewriter None()
lib_ruby_parser::TokenRewriter
Definition: token_rewriter.hpp:50
lib_ruby_parser::RewriteAction
RewriteAction
Definition: token_rewriter.hpp:11
token.hpp
shared_byte_list.hpp
lib_ruby_parser::RewriteAction::DROP
@ DROP
lib_ruby_parser::TokenRewriterResult::~TokenRewriterResult
~TokenRewriterResult()
lib_ruby_parser::MaybeTokenRewriter::MaybeTokenRewriter
MaybeTokenRewriter(TokenRewriter token_rewriter)
lib_ruby_parser::MaybeTokenRewriter::is_some
bool is_some() const
lib_ruby_parser::TokenRewriterResult::rewritten_token
Token * rewritten_token
Definition: token_rewriter.hpp:38
lib_ruby_parser::TokenRewriterResult::token_action
RewriteAction token_action
Definition: token_rewriter.hpp:39
lib_ruby_parser::TokenRewriterResult
Definition: token_rewriter.hpp:35
lib_ruby_parser::LexStateAction::Value::set
int32_t set
Definition: token_rewriter.hpp:28
lib_ruby_parser::TokenRewriterResult::TokenRewriterResult
TokenRewriterResult(const TokenRewriterResult &)=default
lib_ruby_parser::LexStateAction::as
Value as
Definition: token_rewriter.hpp:32
lib_ruby_parser::TokenRewriterResult::operator=
TokenRewriterResult & operator=(TokenRewriterResult const &)=default
lib_ruby_parser::SharedByteList
Definition: shared_byte_list.hpp:10
lib_ruby_parser::MaybeTokenRewriter::is_none
bool is_none() const
lib_ruby_parser::LexStateAction::Tag::KEEP
@ KEEP
lib_ruby_parser::TokenRewriterResult::lex_state_action
LexStateAction lex_state_action
Definition: token_rewriter.hpp:40
lib_ruby_parser::LexStateAction::Value
Definition: token_rewriter.hpp:26
lib_ruby_parser::TokenRewriter::f
TokenRewriterFunction f
Definition: token_rewriter.hpp:53
lib_ruby_parser::TokenRewriter::TokenRewriter
TokenRewriter(TokenRewriterFunction f)
lib_ruby_parser::Token
Equivalent of lib_ruby_parser::Token
Definition: token.hpp:12
lib_ruby_parser::RewriteAction::KEEP
@ KEEP
lib_ruby_parser::LexStateAction::Tag
Tag
Definition: token_rewriter.hpp:20
lib_ruby_parser
Definition: api.hpp:7
lib_ruby_parser::LexStateAction::Tag::SET
@ SET
lib_ruby_parser::TokenRewriterFunction
TokenRewriterResult(* TokenRewriterFunction)(Token *, SharedByteList)
Definition: token_rewriter.hpp:49
lib_ruby_parser::LexStateAction::tag
Tag tag
Definition: token_rewriter.hpp:31
lib_ruby_parser::LexStateAction
Definition: token_rewriter.hpp:17
lib_ruby_parser::MaybeTokenRewriter
Definition: token_rewriter.hpp:58
lib_ruby_parser::MaybeTokenRewriter::token_rewriter
TokenRewriter token_rewriter
Definition: token_rewriter.hpp:61
lib_ruby_parser::MaybeTokenRewriter::Some
static MaybeTokenRewriter Some(TokenRewriter decoder)