summaryrefslogtreecommitdiff
path: root/src/include/main_bindings.hpp
blob: 8085eb4cb9c4791b6395a901fc65a5b4e41ff0fc (plain)
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
/*
 * MRustC - Mutabah's Rust Compiler
 * - By John Hodge (Mutabah/thePowersGang)
 *
 * include/main_bindings.hpp
 * - General bindings of AST passes for main to call
 */
#ifndef _MAIN_BINDINGS_HPP_
#define _MAIN_BINDINGS_HPP_

#include <string>
#include <memory>

namespace AST {
    class Crate;
}

/// Parse a crate from the given file
extern AST::Crate Parse_Crate(::std::string mainfile);

extern void Expand_Init();
extern void Expand(::AST::Crate& crate);
extern void Expand_TestHarness(::AST::Crate& crate);
extern void Expand_ProcMacro(::AST::Crate& crate);

/// Dump the crate AST as annotated rust
extern void Dump_Rust(const char *Filename, const AST::Crate& crate);

#endif