From 08e94971beef1899c33e3646ea6695b64282a056 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <jan.travnicek@.fit.cvut.cz> Date: Fri, 22 Nov 2019 13:17:04 +0100 Subject: [PATCH] add comments --- alib2cli/src/lexer/Lexer.cpp | 46 +++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/alib2cli/src/lexer/Lexer.cpp b/alib2cli/src/lexer/Lexer.cpp index f0367e1ff5..c163aa97a8 100644 --- a/alib2cli/src/lexer/Lexer.cpp +++ b/alib2cli/src/lexer/Lexer.cpp @@ -153,7 +153,7 @@ q0: if ( m_source.getCharacter ( ) == EOF ) { res.m_raw += m_source.getCharacter ( ); m_source.advance ( readNextLine ); res.m_type = TokenType::SLASH_SIGN; - return res; + goto qComment; } if ( m_source.getCharacter ( ) == '*' ) { res.m_raw += m_source.getCharacter ( ); @@ -574,6 +574,50 @@ qType: res.m_type = TokenType::TYPE; return res; } + +qComment : + if ( m_source.getCharacter ( ) == EOF ) { + return res; + } + if ( m_source.getCharacter ( ) == '\0' ) { + return res; + } + + if ( m_source.getCharacter ( ) == '/' ) { + res.m_value = ""; + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( readNextLine ); + + while ( m_source.getCharacter ( ) != EOF && m_source.getCharacter ( ) != '\n' && m_source.getCharacter ( ) != '\0' ) { + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( readNextLine ); + } + + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( true ); + } else if ( m_source.getCharacter ( ) == '*' ) { + res.m_value = ""; + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( true ); + + do { + while ( m_source.getCharacter ( ) != EOF && m_source.getCharacter ( ) != '*' && m_source.getCharacter ( ) != '\0' ) { + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( true ); + } + + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( true ); + } while ( m_source.getCharacter ( ) != EOF && m_source.getCharacter ( ) != '/' && m_source.getCharacter ( ) != '\0' ); + + res.m_raw += m_source.getCharacter ( ); + m_source.advance ( true ); + } else { + return res; + } + + goto q0; + } } /* namespace cli */ -- GitLab