#ifndef _PARSER_H #define _PARSER_H // Standard includes #include // Local includes #include "Ast.h" using namespace ast; namespace parser{ static int CurTok; static std::map BinopPrecedence; int getNextToken(); static int GetTokPrecedence(); std::unique_ptr Error(const char *Str); std::unique_ptr ErrorP(const char *Str); static std::unique_ptr ParseExpression(); static std::unique_ptr ParseNumberExpr(); static std::unique_ptr ParseParenExpr(); static std::unique_ptr ParseIdentifierExpr(); static std::unique_ptr ParsePrimary(); static std::unique_ptr ParseBinOpRHS(int ExprPrec, std::unique_ptr LHS); static std::unique_ptr ParsePrototype(); static std::unique_ptr ParseDefinition(); static std::unique_ptr ParseTopLevelExpr(); static std::unique_ptr ParseExtern(); static void HandleDefinition(); static void HandleExtern(); static void HandleTopLevelExpression(); void MainLoop(); } #endif