summaryrefslogtreecommitdiff
path: root/src/expand/proc_macro.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-11-15 21:19:22 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-11-15 21:19:22 +0800
commit97839be171f00c9f6ea3d9921ca89db918027800 (patch)
treec60922d8147128d34b8514e1fd30b73b91a750cf /src/expand/proc_macro.hpp
parentd585aa08551aa78b692bab8326509baef02a7b3d (diff)
downloadmrust-97839be171f00c9f6ea3d9921ca89db918027800.tar.gz
proc_macro - Working invocations (some work needed on AST->TT)
Diffstat (limited to 'src/expand/proc_macro.hpp')
-rw-r--r--src/expand/proc_macro.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/expand/proc_macro.hpp b/src/expand/proc_macro.hpp
new file mode 100644
index 00000000..8c5b71c7
--- /dev/null
+++ b/src/expand/proc_macro.hpp
@@ -0,0 +1,15 @@
+/*
+ * MRustC - Rust Compiler
+ * - By John Hodge (Mutabah/thePowersGang)
+ *
+ * expand/proc_macro.hpp
+ * - Support for the `#[proc_macro_derive]` attribute
+ */
+#pragma once
+#include <parse/tokenstream.hpp>
+
+extern ::std::unique_ptr<TokenStream> ProcMacro_Invoke(const Span& sp, const ::AST::Crate& crate, const ::std::vector<::std::string>& mac_path, const ::std::string& name, const ::AST::Struct& i);
+extern ::std::unique_ptr<TokenStream> ProcMacro_Invoke(const Span& sp, const ::AST::Crate& crate, const ::std::vector<::std::string>& mac_path, const ::std::string& name, const ::AST::Enum& i);
+extern ::std::unique_ptr<TokenStream> ProcMacro_Invoke(const Span& sp, const ::AST::Crate& crate, const ::std::vector<::std::string>& mac_path, const ::std::string& name, const ::AST::Union& i);
+//extern ::std::unique_ptr<TokenStream> ProcMacro_Invoke(const Span& sp, const ::AST::Crate& crate, const ::std::vector<::std::string>& mac_path, const TokenStream& tt);
+