std::unique_ptr<ExprAST> Parser::parsePrimary(s_cursor_t &it, const s_cursor_t &end) { switch (_curTok) { case tok_identifier: return parseIdentifierExpr(it, end); case tok_number: return parseNumberExpr(it, end); case '(': return parseParenExpr(it, end); default: return Error("unknown token when expecting an expression"); } }
ExprAST* Parser::parsePrimary() { switch (lexer->token) { case Lexer::TOK_IDENTIFIER: return parseIdentifierExpr(); case Lexer::TOK_INTEGER: return parseIntegerExpr(); case Lexer::TOK_DOUBLE: return parseDoubleExpr(); case Lexer::TOK_STRING: return parseStringExpr(); case '(': return parseParenExpr(); default: return Error("Unknown token '" + lexer->TokToStr(lexer->token) + "' when expecting an expression"); } }