3 #include <boost/foreach.hpp>
5 #include <core/assert.hh>
7 #include <ast/ascii-visitor.hh>
8 #include <ast/llvm-generator-visitor.hh>
9 #include <ast/type-checker-visitor.hh>
10 #include <ast/simplify-visitor.hh>
11 #include <ast/scope-builder-visitor.hh>
12 #include <lang/parser-factory.hh>
13 #include <compiler.hh>
15 #include <parse-task.hh>
28 Compiler::addTask(Task
* task
)
31 tasks_
.push_back(task
);
37 sort(tasks_
.begin(), tasks_
.end());
38 BOOST_FOREACH(Task
* task
, tasks_
)
46 Compiler::work(Task
& task
)
52 Compiler::work(ParseTask
& task
)
54 ast::File
* file
= lang::ParserFactory::parseFile(task
.filename
);
55 file
->path
= task
.filename
;
61 ast::ScopeBuilderVisitor sbv
;
64 ast::TypeCheckerVisitor tcv
;
67 ast::SimplifyVisitor sv
;
74 ast::LLVMGeneratorVisitor
lgv(std::cout
);