Zen
A cross-platform functional programming language
|
00001 00005 #pragma once 00006 #include "ParseContext.hpp" 00007 00009 namespace zbl { 00012 class Compiler { 00013 public: 00017 Compiler(const Build::Config& cfg); 00018 00021 ~Compiler(); 00022 00023 public: 00029 static int execute(int argc, char *argv[]); 00030 00031 public: 00036 void readProject(Ast::Unit& unit, const z::string& file); 00037 00041 void compile(const Build::Project& project); 00042 00046 void generate(const Build::Project& project); 00047 00053 void importHeader(zbl::ParseContext& pctx, const z::stringlist& idList, const Ast::ImportStatement::Type& type); 00054 00055 private: 00057 class Impl; 00058 00060 Impl* _impl; 00061 }; 00062 }