changeset 33118:8ec8df064d8f

allow comment lists to be stored in token objects * token.h (token::m_comment_list): New member variable. (token::token): Accept optional comment_list argument in all constructors.
author John W. Eaton <jwe@octave.org>
date Sat, 02 Mar 2024 12:07:44 -0500
parents 068b80d70ff6
children f83d0ab96c16
files libinterp/parse-tree/token.h
diffstat 1 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/token.h	Sat Mar 02 11:17:19 2024 -0500
+++ b/libinterp/parse-tree/token.h	Sat Mar 02 12:07:44 2024 -0500
@@ -73,32 +73,32 @@
 
 public:
 
-  token (int tv, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv)
+  token (int tv, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_comment_list (lst)
   { }
 
-  token (int tv, bool is_kw, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (is_kw ? keyword_token : generic_token)
+  token (int tv, bool is_kw, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (is_kw ? keyword_token : generic_token), m_comment_list (lst)
   { }
 
-  token (int tv, const char *s, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (string_token), m_tok_info (s)
+  token (int tv, const char *s, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (string_token), m_tok_info (s), m_comment_list (lst)
   { }
 
-  token (int tv, const std::string& s, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (string_token), m_tok_info (s)
+  token (int tv, const std::string& s, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (string_token), m_tok_info (s), m_comment_list (lst)
   { }
 
-  token (int tv, const octave_value& val, const std::string& s, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (numeric_token), m_tok_info (val), m_orig_text (s)
+  token (int tv, const octave_value& val, const std::string& s, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (numeric_token), m_tok_info (val), m_orig_text (s), m_comment_list (lst)
   { }
 
-  token (int tv, end_tok_type t, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (ettype_token), m_tok_info (t)
+  token (int tv, end_tok_type t, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (ettype_token), m_tok_info (t), m_comment_list (lst)
   { }
 
-  token (int tv, const std::string& meth, const std::string& cls, const filepos& beg_pos, const filepos& end_pos)
-    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (scls_name_token), m_tok_info (meth, cls)
+  token (int tv, const std::string& meth, const std::string& cls, const filepos& beg_pos, const filepos& end_pos, comment_list *lst = nullptr)
+    : m_beg_pos (beg_pos), m_end_pos (end_pos), m_tok_val (tv), m_type_tag (scls_name_token), m_tok_info (meth, cls), m_comment_list (lst)
   { }
 
   OCTAVE_DEFAULT_COPY_MOVE_DELETE (token)
@@ -235,6 +235,8 @@
   tok_info m_tok_info;
 
   std::string m_orig_text;
+
+  comment_list *m_comment_list;
 };
 
 OCTAVE_END_NAMESPACE(octave)