From 1e2b0cc4fc9ce65ffe8212c9feca4eec945b46f3 Mon Sep 17 00:00:00 2001 From: "John Hodge (sonata)" Date: Sun, 18 Jan 2015 14:50:41 +0800 Subject: Add handlers for more item types to AST iterator, fix bad name in std --- src/ast/ast.hpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/ast/ast.hpp') diff --git a/src/ast/ast.hpp b/src/ast/ast.hpp index 579cb058..849587f1 100644 --- a/src/ast/ast.hpp +++ b/src/ast/ast.hpp @@ -120,6 +120,9 @@ struct Item: { } + //friend ::std::ostream& operator<<(::std::ostream& os, const Item& i) { + // return os << (i.is_pub ? "pub " : " ") << i.name << ": " << i.data; + //} SERIALISE_TYPE(, "Item", { s << name << data << is_pub; },{ @@ -286,8 +289,11 @@ public: m_variants( move(variants) ) {} - const TypeParams params() const { return m_params; } - const ::std::vector variants() const { return m_variants; } + const TypeParams& params() const { return m_params; } + const ::std::vector& variants() const { return m_variants; } + + TypeParams& params() { return m_params; } + ::std::vector& variants() { return m_variants; } SERIALISABLE_PROTOTYPES(); }; @@ -304,8 +310,11 @@ public: m_fields( move(fields) ) {} - const TypeParams params() const { return m_params; } - const ::std::vector fields() const { return m_fields; } + const TypeParams& params() const { return m_params; } + const ::std::vector& fields() const { return m_fields; } + + TypeParams& params() { return m_params; } + ::std::vector& fields() { return m_fields; } SERIALISABLE_PROTOTYPES(); }; @@ -436,6 +445,10 @@ public: ::std::vector >& type_aliases() { return m_type_aliases; } itemlist_ext_t& extern_crates() { return m_extern_crates; } ::std::vector& impls() { return m_impls; } + itemlist_static_t& statics() { return m_statics; } + ItemList& traits() { return m_traits; } + itemlist_enum_t& enums () { return m_enums; } + itemlist_struct_t& structs() { return m_structs; } const ::std::vector& attrs() const { return m_attrs; } const itemlist_fcn_t& functions() const { return m_functions; } -- cgit v1.2.3