summaryrefslogtreecommitdiff
path: root/src/ast/ast.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-09-25 18:01:01 +0800
committerJohn Hodge <tpg@mutabah.net>2016-09-25 18:01:01 +0800
commitadc6e7e42f05724d031c50d6d0092753e87cc79d (patch)
tree80ac1e5a3e6757e199656a9b43dde65af0e97b70 /src/ast/ast.cpp
parent07849e03b7d32ff28402ddd485326e00dbe2fedd (diff)
downloadmrust-adc6e7e42f05724d031c50d6d0092753e87cc79d.tar.gz
Parse - Split module item parse into a form that is callable from macro_rules
Diffstat (limited to 'src/ast/ast.cpp')
-rw-r--r--src/ast/ast.cpp27
1 files changed, 4 insertions, 23 deletions
diff --git a/src/ast/ast.cpp b/src/ast/ast.cpp
index 23a3208d..4de02843 100644
--- a/src/ast/ast.cpp
+++ b/src/ast/ast.cpp
@@ -131,6 +131,10 @@ MacroInvocation MacroInvocation::clone() const
return rv;
}
+void Module::add_item( Named<Item> i ) {
+ m_items.push_back( mv$(i) );
+ DEBUG("Item " << m_items.back().data.tag_str() << " - attrs = " << m_items.back().data.attrs);
+}
void Module::add_item(bool is_pub, ::std::string name, Item it, MetaItems attrs) {
m_items.push_back( Named<Item>( mv$(name), mv$(it), is_pub ) );
m_items.back().data.attrs = mv$(attrs);
@@ -143,29 +147,6 @@ void Module::add_alias(bool is_public, UseStmt us, ::std::string name, MetaItems
us.attrs = mv$(attrs);
m_imports.push_back( Named<UseStmt>( mv$(name), mv$(us), is_public) );
}
-void Module::add_typealias(bool is_public, ::std::string name, TypeAlias alias, MetaItems attrs) {
- this->add_item( is_public, name, Item::make_Type({mv$(alias)}), mv$(attrs) );
-}
-void Module::add_static(bool is_public, ::std::string name, Static item, MetaItems attrs) {
- this->add_item( is_public, name, Item::make_Static({mv$(item)}), mv$(attrs) );
-}
-void Module::add_trait(bool is_public, ::std::string name, Trait item, MetaItems attrs) {
- this->add_item( is_public, name, Item::make_Trait({mv$(item)}), mv$(attrs) );
-}
-void Module::add_struct(bool is_public, ::std::string name, Struct item, MetaItems attrs) {
- this->add_item( is_public, name, Item::make_Struct({mv$(item)}), mv$(attrs) );
-}
-void Module::add_enum(bool is_public, ::std::string name, Enum item, MetaItems attrs) {
- this->add_item( is_public, name, Item::make_Enum({mv$(item)}), mv$(attrs) );
-}
-void Module::add_function(bool is_public, ::std::string name, Function item, MetaItems attrs) {
- DEBUG("mod fn " << name);
- this->add_item( is_public, name, Item::make_Function({mv$(item)}), mv$(attrs) );
-}
-void Module::add_submod(bool is_public, ::std::string name, Module mod, MetaItems attrs) {
- DEBUG("mod.m_name = " << name << ", attrs = " << attrs);
- this->add_item( is_public, mv$(name), Item::make_Module({mv$(mod)}), mv$(attrs) );
-}
void Module::add_macro(bool is_exported, ::std::string name, MacroRulesPtr macro) {
m_macros.push_back( Named<MacroRulesPtr>( mv$(name), mv$(macro), is_exported ) );
}