diff --git a/alib2cli/src/lexer/Lexer.cpp b/alib2cli/src/lexer/Lexer.cpp index fedc98735b4e719671d4d5fa6f740a677eb246f5..7cb42321e02db1a2fc46306058abad373e94f6a3 100644 --- a/alib2cli/src/lexer/Lexer.cpp +++ b/alib2cli/src/lexer/Lexer.cpp @@ -102,6 +102,7 @@ q0: if ( m_index >= m_line.size ( ) ) { } if ( m_line [ m_index ] == '"' ) { + res.m_type = TokenType::STRING; m_index ++; goto q4; } @@ -183,9 +184,8 @@ q4: if ( m_index >= m_line.size ( ) ) { return res; } if ( m_line [ m_index ] == '"' ) { - res.m_type = TokenType::STRING; m_index++; - return res; + goto q6; } if ( m_line [ m_index ] == '\\' ) { m_index++; @@ -213,6 +213,20 @@ q5: if ( m_index >= m_line.size ( ) ) { m_index++; goto q4; + +q6: if ( m_index >= m_line.size ( ) ) { + return res; + } + if ( isspace ( m_line [ m_index ] ) ) { + m_index ++; + goto q6; + } + if ( m_line [ m_index ] == '"' ) { + m_index ++; + goto q4; + } else { + return res; + } } } /* namespace cli */