#include #include #include "parse/lex.hpp" #include "parse/parseerror.hpp" #include "ast/ast.hpp" #include extern AST::Crate Parse_Crate(::std::string mainfile); extern void ResolvePaths(AST::Crate& crate); extern AST::Flat Convert_Flatten(const AST::Crate& crate); /// main! int main(int argc, char *argv[]) { try { AST::Crate crate = Parse_Crate("samples/1.rs"); Serialiser_TextTree s_tt(::std::cout); Serialiser& s = s_tt; s << crate; // Resolve names to be absolute names (include references to the relevant struct/global/function) ResolvePaths(crate); // Typecheck / type propagate module (type annotations of all values) // Flatten modules into "mangled" set AST::Flat flat_crate = Convert_Flatten(crate); // Convert structures to C structures / tagged enums //Convert_Render(flat_crate, stdout); } catch(const ParseError::Base& e) { ::std::cerr << "Parser Error: " << e.what() << ::std::endl; } return 0; }