diff --git a/usql/parser.cpp b/usql/parser.cpp index 678f6b0..cf3a1f4 100644 --- a/usql/parser.cpp +++ b/usql/parser.cpp @@ -385,19 +385,18 @@ namespace usql { std::unique_ptr Parser::parse_where_clause() { - if (m_lexer.tokenType() != TokenType::keyword_where) { - return std::make_unique(); - } + if (m_lexer.tokenType() != TokenType::keyword_where) { + return std::make_unique(); + } - m_lexer.skipToken(TokenType::keyword_where); + m_lexer.skipToken(TokenType::keyword_where); - std::unique_ptr left = parse_expression(); - do { - left = parse_expression(std::move(left)); - - } while (m_lexer.tokenType() != TokenType::eof && m_lexer.tokenType() != TokenType::keyword_order && m_lexer.tokenType() != TokenType::keyword_offset && m_lexer.tokenType() != TokenType::keyword_limit); + std::unique_ptr left = parse_expression(); + do { + left = parse_expression(std::move(left)); + } while (m_lexer.tokenType() != TokenType::eof && m_lexer.tokenType() != TokenType::keyword_order && m_lexer.tokenType() != TokenType::keyword_offset && m_lexer.tokenType() != TokenType::keyword_limit && m_lexer.tokenType() != TokenType::semicolon); - return left; + return left; } std::unique_ptr Parser::parse_expression() { diff --git a/usql/parser.h b/usql/parser.h index 2392d36..7d4b9f5 100644 --- a/usql/parser.h +++ b/usql/parser.h @@ -175,9 +175,6 @@ struct FunctionNode : Node { }; - Type function; - std::vector> params; - FunctionNode(std::string func_name, std::vector> pars) : Node(NodeType::function), function(get_function(func_name)), params(std::move(pars)) {} @@ -199,6 +196,9 @@ struct FunctionNode : Node { } std::cout << ")" << std::endl; } + + Type function; + std::vector> params; }; struct TrueNode : Node { @@ -581,7 +581,6 @@ struct CreateIndexNode : Node { }; class Parser { -private: public: Parser();