# HG changeset patch # User John W. Eaton # Date 1712206369 14400 # Node ID 9d7e418f012115013f7d967400535f2434b09a03 # Parent 3454c18569c2a9a69bf9173a3055734f3036ba64 new delimiter_list functions * pt-delilmiter-list.h (tree_delimiter_list::empty, tree_delimiter_list::beg_pos, tree_delimiter_list::end_pos): New functions. diff -r 3454c18569c2 -r 9d7e418f0121 libinterp/parse-tree/pt-delimiter-list.h --- 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 +#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 m_delimiters;