summaryrefslogtreecommitdiff
path: root/parse/common.hpp
blob: 357944c4ef4c3e5e5e2b9d3262a539f567e7dc0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef PARSE_COMMON_HPP_INCLUDED
#define PARSEERROR_HPP_INCLUDED

#define GET_CHECK_TOK(tok, lex, exp) do {\
    if((tok = lex.getToken()).type() != exp) \
            throw ParseError::Unexpected(tok, Token(exp));\
} while(0)

extern AST::Path   Parse_Path(TokenStream& lex, bool is_abs, bool generic_ok);
extern TypeRef     Parse_Type(TokenStream& lex);
extern AST::Expr   Parse_Expr(TokenStream& lex, bool const_only);

#endif // PARSE_COMMON_HPP_INCLUDED