Mercurial > octave
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;