Exemplo n.º 1
0
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");
    }
}
Exemplo n.º 2
0
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");
	}
}