From babddd394ec774a3b5d7426a6469bbd836de6f9a Mon Sep 17 00:00:00 2001 From: Lefteris Karapetsas Date: Thu, 20 Nov 2014 23:56:24 +0100 Subject: [PATCH] cleaning up the external interface of Scanner::next(). No special cases --- libsolidity/Scanner.cpp | 10 +++++++--- libsolidity/Scanner.h | 6 ++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/libsolidity/Scanner.cpp b/libsolidity/Scanner.cpp index 934b30dcf..d30000999 100644 --- a/libsolidity/Scanner.cpp +++ b/libsolidity/Scanner.cpp @@ -109,7 +109,11 @@ void Scanner::reset(CharStream const& _source) m_char = m_source.get(); skipWhitespace(); foundDocComment = scanToken(); - next(foundDocComment); + + // special version of Scanner:next() taking the previous scanToken() result into account + m_current_token = m_next_token; + if (scanToken() || foundDocComment) + m_skipped_comment = m_next_skipped_comment; } @@ -135,10 +139,10 @@ bool Scanner::scanHexByte(char& o_scannedByte) // Ensure that tokens can be stored in a byte. BOOST_STATIC_ASSERT(Token::NUM_TOKENS <= 0x100); -Token::Value Scanner::next(bool _changeSkippedComment) +Token::Value Scanner::next() { m_current_token = m_next_token; - if (scanToken() || _changeSkippedComment) + if (scanToken()) m_skipped_comment = m_next_skipped_comment; return m_current_token.token; } diff --git a/libsolidity/Scanner.h b/libsolidity/Scanner.h index 94c67840a..5dfe7a33a 100644 --- a/libsolidity/Scanner.h +++ b/libsolidity/Scanner.h @@ -116,10 +116,8 @@ public: /// Resets the scanner as if newly constructed with _input as input. void reset(CharStream const& _source); - /// Returns the next token and advances input. If called from reset() - /// and ScanToken() found a documentation token then next should be called - /// with _changeSkippedComment=true - Token::Value next(bool _changeSkippedComment = false); + /// Returns the next token and advances input + Token::Value next(); ///@{ ///@name Information about the current token