# HG changeset patch # User John W. Eaton # Date 1630756208 14400 # Node ID a471bf0f78ba0c405fcb1bfa87ee8c6359138c74 # Parent a9e3e1c96c47e17ed2f886be96508393624e375e allow for invalid filepos objects * filepos.h (filepos::filepos (int, int)): Don't provide default values. (filepos::filepos (void)): Initialize to invalid line and column positions. (filepos::operator bool): New function. (filepos::set): Delete. * lex.h (lexical_feedback::lexical_feedback): Initialize filepos with line and column == 1. * lex.ll (lexical_feedback::reset): Set m_filepos to (1, 1). diff -r a9e3e1c96c47 -r a471bf0f78ba libinterp/parse-tree/filepos.h --- a/libinterp/parse-tree/filepos.h Sat Sep 04 05:33:27 2021 -0400 +++ b/libinterp/parse-tree/filepos.h Sat Sep 04 07:50:08 2021 -0400 @@ -34,7 +34,9 @@ { public: - filepos (int l = 1, int c = 1) : m_line (l), m_column (c) { } + filepos (void) : m_line (0), m_column (0) { } + + filepos (int l, int c) : m_line (l), m_column (c) { } filepos (const filepos&) = default; @@ -42,11 +44,7 @@ ~filepos (void) = default; - void set (int l, int c) - { - m_line = l; - m_column = c; - } + operator bool () { return m_line > 0 && m_column > 0; } void line (int l) { m_line = l; } void column (int c) { m_column = c; } diff -r a9e3e1c96c47 -r a471bf0f78ba libinterp/parse-tree/lex.h --- a/libinterp/parse-tree/lex.h Sat Sep 04 05:33:27 2021 -0400 +++ b/libinterp/parse-tree/lex.h Sat Sep 04 07:50:08 2021 -0400 @@ -299,7 +299,7 @@ m_block_comment_nesting_level (0), m_command_arg_paren_count (0), m_token_count (0), - m_filepos (), + m_filepos (1, 1), m_tok_beg (), m_tok_end (), m_string_text (), diff -r a9e3e1c96c47 -r a471bf0f78ba libinterp/parse-tree/lex.ll --- a/libinterp/parse-tree/lex.ll Sat Sep 04 05:33:27 2021 -0400 +++ b/libinterp/parse-tree/lex.ll Sat Sep 04 07:50:08 2021 -0400 @@ -2260,7 +2260,7 @@ m_block_comment_nesting_level = 0; m_command_arg_paren_count = 0; m_token_count = 0; - m_filepos = filepos (); + m_filepos = filepos (1, 1); m_tok_beg = filepos (); m_tok_end = filepos (); m_string_text = "";