changeset 33308:9d7e418f0121

new delimiter_list functions * pt-delilmiter-list.h (tree_delimiter_list::empty, tree_delimiter_list::beg_pos, tree_delimiter_list::end_pos): New functions.
author John W. Eaton <jwe@octave.org>
date Thu, 04 Apr 2024 00:52:49 -0400
parents 3454c18569c2
children d422992b5483
files libinterp/parse-tree/pt-delimiter-list.h
diffstat 1 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-delimiter-list.h	Thu Apr 04 00:49:03 2024 -0400
+++ b/libinterp/parse-tree/pt-delimiter-list.h	Thu Apr 04 00:52:49 2024 -0400
@@ -30,6 +30,7 @@
 
 #include <stack>
 
+#include "filepos.h"
 #include "token.h"
 
 OCTAVE_BEGIN_NAMESPACE(octave)
@@ -42,13 +43,33 @@
 
   OCTAVE_DEFAULT_CONSTRUCT_COPY_MOVE_DELETE (tree_delimiter_list)
 
-    size_t count () const { return m_delimiters.size (); }
+  size_t count () const { return m_delimiters.size (); }
+
+  bool empty () const { return m_delimiters.empty (); }
 
   void push (const token& open_delim, const token& close_delim)
   {
     m_delimiters.push (element_type (open_delim, close_delim));
   }
 
+  filepos beg_pos () const
+  {
+    if (m_delimiters.empty ())
+      return filepos ();
+
+    const element_type& elt = m_delimiters.top ();
+    return elt.first.beg_pos ();
+  }
+
+  filepos end_pos () const
+  {
+    if (m_delimiters.empty ())
+      return filepos ();
+
+    const element_type& elt = m_delimiters.top ();
+    return elt.second.end_pos ();
+  }
+
 private:
 
   std::stack<element_type> m_delimiters;