diff options
Diffstat (limited to 'gcc/rust/ast/rust-macro.h')
-rw-r--r-- | gcc/rust/ast/rust-macro.h | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/gcc/rust/ast/rust-macro.h b/gcc/rust/ast/rust-macro.h index 6e34c3e..b51b149 100644 --- a/gcc/rust/ast/rust-macro.h +++ b/gcc/rust/ast/rust-macro.h @@ -112,7 +112,7 @@ public: }; private: - std::vector<std::unique_ptr<MacroMatch>> matches; + std::vector<std::unique_ptr<MacroMatch> > matches; MacroRepOp op; // bool has_sep; @@ -126,7 +126,7 @@ public: // Returns whether macro match repetition has separator token. bool has_sep () const { return sep != NULL; } - MacroMatchRepetition (std::vector<std::unique_ptr<MacroMatch>> matches, + MacroMatchRepetition (std::vector<std::unique_ptr<MacroMatch> > matches, MacroRepOp op, std::unique_ptr<MacroRepSep> sep) : matches (std::move (matches)), op (op), sep (std::move (sep)) {} @@ -174,7 +174,7 @@ protected: class MacroMatcher : public MacroMatch { DelimType delim_type; - std::vector<std::unique_ptr<MacroMatch>> matches; + std::vector<std::unique_ptr<MacroMatch> > matches; // TODO: think of way to mark invalid that doesn't take up more space bool is_invalid; @@ -183,7 +183,7 @@ class MacroMatcher : public MacroMatch public: MacroMatcher (DelimType delim_type, - std::vector<std::unique_ptr<MacroMatch>> matches) + std::vector<std::unique_ptr<MacroMatch> > matches) : delim_type (delim_type), matches (std::move (matches)), is_invalid (false) {} @@ -392,6 +392,8 @@ public: bool check_cfg_predicate (const Session &session) const override; + Attribute to_attribute () const override; + protected: // Use covariance to implement clone function as returning this type MetaItemPath *clone_meta_item_inner_impl () const override @@ -404,11 +406,11 @@ protected: class MetaItemSeq : public MetaItem { SimplePath path; - std::vector<std::unique_ptr<MetaItemInner>> seq; + std::vector<std::unique_ptr<MetaItemInner> > seq; public: MetaItemSeq (SimplePath path, - std::vector<std::unique_ptr<MetaItemInner>> seq) + std::vector<std::unique_ptr<MetaItemInner> > seq) : path (std::move (path)), seq (std::move (seq)) {} @@ -443,6 +445,8 @@ public: bool check_cfg_predicate (const Session &session) const override; + Attribute to_attribute () const override; + protected: // Use covariance to implement clone function as returning this type MetaItemSeq *clone_meta_item_inner_impl () const override @@ -465,6 +469,8 @@ public: bool check_cfg_predicate (const Session &session) const override; + Attribute to_attribute () const override; + protected: // Use covariance to implement clone function as returning this type MetaWord *clone_meta_item_inner_impl () const override @@ -489,13 +495,15 @@ public: void accept_vis (ASTVisitor &vis) override; // HACK: used to simplify parsing - creates a copy of this - MetaNameValueStr *to_meta_name_value_str () const override + std::unique_ptr<MetaNameValueStr> to_meta_name_value_str () const override { - return clone_meta_item_inner_impl (); + return std::unique_ptr<MetaNameValueStr> (clone_meta_item_inner_impl ()); } bool check_cfg_predicate (const Session &session) const override; + Attribute to_attribute () const override; + protected: // Use covariance to implement clone function as returning this type MetaNameValueStr *clone_meta_item_inner_impl () const override @@ -522,6 +530,8 @@ public: bool check_cfg_predicate (const Session &session) const override; + Attribute to_attribute () const override; + private: bool check_path_exists_in_cfg (const Session &session, const SimplePath &path) const; @@ -551,6 +561,8 @@ public: bool check_cfg_predicate (const Session &session) const override; + Attribute to_attribute () const override; + protected: // Use covariance to implement clone function as returning this type MetaListNameValueStr *clone_meta_item_inner_impl () const override @@ -563,7 +575,7 @@ protected: struct MacroParser { private: - std::vector<std::unique_ptr<Token>> token_stream; + std::vector<std::unique_ptr<Token> > token_stream; /* probably have to make this mutable (mutable int stream_pos) otherwise const * has to be removed up to DelimTokenTree or further ok since this changing * would have an effect on the results of the methods run (i.e. not logically @@ -571,14 +583,14 @@ private: int stream_pos; public: - MacroParser (std::vector<std::unique_ptr<Token>> token_stream, + MacroParser (std::vector<std::unique_ptr<Token> > token_stream, int stream_start_pos = 0) : token_stream (std::move (token_stream)), stream_pos (stream_start_pos) {} ~MacroParser () = default; - std::vector<std::unique_ptr<MetaItemInner>> parse_meta_item_seq (); + std::vector<std::unique_ptr<MetaItemInner> > parse_meta_item_seq (); private: // Parses a MetaItemInner. |