-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompiler.hpp
More file actions
37 lines (31 loc) · 805 Bytes
/
compiler.hpp
File metadata and controls
37 lines (31 loc) · 805 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*****************************************************
* GMAMCompiler class.
*
* Krain
*/
#ifndef __GMAM_COMPILER__
#define __GMAM_COMPILER__
#include "define.hpp"
#include "parser.hpp"
#include "iostream"
#define YY_DECL yy::parser::symbol_type yylex()
// ... and declare it for the parser's sake.
YY_DECL;
namespace GMAM {
class GMAMCompiler {
private:
ast::Program *program;
builder::Timeline *timeline;
public:
GMAMCompiler();
ast::Program* parseFile(const char *filename);
void parse(const char *filename);
void type_check();
void compile();
void debug_parse(std::ostream &os);
void debug_type_check(std::ostream &os);
void debug_compile(std::ostream &os);
void final_print(std::ostream &os);
};
} // namespace GMAM
#endif // __GMAM_COMPILER__