Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: tools/gn/parse_tree.h

Issue 1544333002: Convert Pass()→std::move() in //tools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/operators_unittest.cc ('k') | tools/gn/parse_tree_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef TOOLS_GN_PARSE_TREE_H_ 5 #ifndef TOOLS_GN_PARSE_TREE_H_
6 #define TOOLS_GN_PARSE_TREE_H_ 6 #define TOOLS_GN_PARSE_TREE_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "tools/gn/err.h" 14 #include "tools/gn/err.h"
15 #include "tools/gn/token.h" 15 #include "tools/gn/token.h"
16 #include "tools/gn/value.h" 16 #include "tools/gn/value.h"
17 17
18 class AccessorNode; 18 class AccessorNode;
19 class BinaryOpNode; 19 class BinaryOpNode;
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 const std::string& help = std::string()) const override; 143 const std::string& help = std::string()) const override;
144 void Print(std::ostream& out, int indent) const override; 144 void Print(std::ostream& out, int indent) const override;
145 145
146 // Base is the thing on the left of the [] or dot, currently always required 146 // Base is the thing on the left of the [] or dot, currently always required
147 // to be an identifier token. 147 // to be an identifier token.
148 const Token& base() const { return base_; } 148 const Token& base() const { return base_; }
149 void set_base(const Token& b) { base_ = b; } 149 void set_base(const Token& b) { base_ = b; }
150 150
151 // Index is the expression inside the []. Will be null if member is set. 151 // Index is the expression inside the []. Will be null if member is set.
152 const ParseNode* index() const { return index_.get(); } 152 const ParseNode* index() const { return index_.get(); }
153 void set_index(scoped_ptr<ParseNode> i) { index_ = i.Pass(); } 153 void set_index(scoped_ptr<ParseNode> i) { index_ = std::move(i); }
154 154
155 // The member is the identifier on the right hand side of the dot. Will be 155 // The member is the identifier on the right hand side of the dot. Will be
156 // null if the index is set. 156 // null if the index is set.
157 const IdentifierNode* member() const { return member_.get(); } 157 const IdentifierNode* member() const { return member_.get(); }
158 void set_member(scoped_ptr<IdentifierNode> i) { member_ = i.Pass(); } 158 void set_member(scoped_ptr<IdentifierNode> i) { member_ = std::move(i); }
159 159
160 void SetNewLocation(int line_number); 160 void SetNewLocation(int line_number);
161 161
162 private: 162 private:
163 Value ExecuteArrayAccess(Scope* scope, Err* err) const; 163 Value ExecuteArrayAccess(Scope* scope, Err* err) const;
164 Value ExecuteScopeAccess(Scope* scope, Err* err) const; 164 Value ExecuteScopeAccess(Scope* scope, Err* err) const;
165 165
166 Token base_; 166 Token base_;
167 167
168 // Either index or member will be set according to what type of access this 168 // Either index or member will be set according to what type of access this
(...skipping 16 matching lines...) Expand all
185 LocationRange GetRange() const override; 185 LocationRange GetRange() const override;
186 Err MakeErrorDescribing( 186 Err MakeErrorDescribing(
187 const std::string& msg, 187 const std::string& msg,
188 const std::string& help = std::string()) const override; 188 const std::string& help = std::string()) const override;
189 void Print(std::ostream& out, int indent) const override; 189 void Print(std::ostream& out, int indent) const override;
190 190
191 const Token& op() const { return op_; } 191 const Token& op() const { return op_; }
192 void set_op(const Token& t) { op_ = t; } 192 void set_op(const Token& t) { op_ = t; }
193 193
194 const ParseNode* left() const { return left_.get(); } 194 const ParseNode* left() const { return left_.get(); }
195 void set_left(scoped_ptr<ParseNode> left) { 195 void set_left(scoped_ptr<ParseNode> left) { left_ = std::move(left); }
196 left_ = left.Pass();
197 }
198 196
199 const ParseNode* right() const { return right_.get(); } 197 const ParseNode* right() const { return right_.get(); }
200 void set_right(scoped_ptr<ParseNode> right) { 198 void set_right(scoped_ptr<ParseNode> right) { right_ = std::move(right); }
201 right_ = right.Pass();
202 }
203 199
204 private: 200 private:
205 scoped_ptr<ParseNode> left_; 201 scoped_ptr<ParseNode> left_;
206 Token op_; 202 Token op_;
207 scoped_ptr<ParseNode> right_; 203 scoped_ptr<ParseNode> right_;
208 204
209 DISALLOW_COPY_AND_ASSIGN(BinaryOpNode); 205 DISALLOW_COPY_AND_ASSIGN(BinaryOpNode);
210 }; 206 };
211 207
212 // BlockNode ------------------------------------------------------------------- 208 // BlockNode -------------------------------------------------------------------
213 209
214 class BlockNode : public ParseNode { 210 class BlockNode : public ParseNode {
215 public: 211 public:
216 BlockNode(); 212 BlockNode();
217 ~BlockNode() override; 213 ~BlockNode() override;
218 214
219 const BlockNode* AsBlock() const override; 215 const BlockNode* AsBlock() const override;
220 Value Execute(Scope* scope, Err* err) const override; 216 Value Execute(Scope* scope, Err* err) const override;
221 LocationRange GetRange() const override; 217 LocationRange GetRange() const override;
222 Err MakeErrorDescribing( 218 Err MakeErrorDescribing(
223 const std::string& msg, 219 const std::string& msg,
224 const std::string& help = std::string()) const override; 220 const std::string& help = std::string()) const override;
225 void Print(std::ostream& out, int indent) const override; 221 void Print(std::ostream& out, int indent) const override;
226 222
227 void set_begin_token(const Token& t) { begin_token_ = t; } 223 void set_begin_token(const Token& t) { begin_token_ = t; }
228 void set_end(scoped_ptr<EndNode> e) { end_ = e.Pass(); } 224 void set_end(scoped_ptr<EndNode> e) { end_ = std::move(e); }
229 const EndNode* End() const { return end_.get(); } 225 const EndNode* End() const { return end_.get(); }
230 226
231 const std::vector<ParseNode*>& statements() const { return statements_; } 227 const std::vector<ParseNode*>& statements() const { return statements_; }
232 void append_statement(scoped_ptr<ParseNode> s) { 228 void append_statement(scoped_ptr<ParseNode> s) {
233 statements_.push_back(s.release()); 229 statements_.push_back(s.release());
234 } 230 }
235 231
236 private: 232 private:
237 // Tokens corresponding to { and }, if any (may be NULL). The end is stored 233 // Tokens corresponding to { and }, if any (may be NULL). The end is stored
238 // in a custom parse node so that it can have comments hung off of it. 234 // in a custom parse node so that it can have comments hung off of it.
(...skipping 17 matching lines...) Expand all
256 Value Execute(Scope* scope, Err* err) const override; 252 Value Execute(Scope* scope, Err* err) const override;
257 LocationRange GetRange() const override; 253 LocationRange GetRange() const override;
258 Err MakeErrorDescribing( 254 Err MakeErrorDescribing(
259 const std::string& msg, 255 const std::string& msg,
260 const std::string& help = std::string()) const override; 256 const std::string& help = std::string()) const override;
261 void Print(std::ostream& out, int indent) const override; 257 void Print(std::ostream& out, int indent) const override;
262 258
263 void set_if_token(const Token& token) { if_token_ = token; } 259 void set_if_token(const Token& token) { if_token_ = token; }
264 260
265 const ParseNode* condition() const { return condition_.get(); } 261 const ParseNode* condition() const { return condition_.get(); }
266 void set_condition(scoped_ptr<ParseNode> c) { 262 void set_condition(scoped_ptr<ParseNode> c) { condition_ = std::move(c); }
267 condition_ = c.Pass();
268 }
269 263
270 const BlockNode* if_true() const { return if_true_.get(); } 264 const BlockNode* if_true() const { return if_true_.get(); }
271 void set_if_true(scoped_ptr<BlockNode> t) { 265 void set_if_true(scoped_ptr<BlockNode> t) { if_true_ = std::move(t); }
272 if_true_ = t.Pass();
273 }
274 266
275 // This is either empty, a block (for the else clause), or another 267 // This is either empty, a block (for the else clause), or another
276 // condition. 268 // condition.
277 const ParseNode* if_false() const { return if_false_.get(); } 269 const ParseNode* if_false() const { return if_false_.get(); }
278 void set_if_false(scoped_ptr<ParseNode> f) { 270 void set_if_false(scoped_ptr<ParseNode> f) { if_false_ = std::move(f); }
279 if_false_ = f.Pass();
280 }
281 271
282 private: 272 private:
283 // Token corresponding to the "if" string. 273 // Token corresponding to the "if" string.
284 Token if_token_; 274 Token if_token_;
285 275
286 scoped_ptr<ParseNode> condition_; // Always non-null. 276 scoped_ptr<ParseNode> condition_; // Always non-null.
287 scoped_ptr<BlockNode> if_true_; // Always non-null. 277 scoped_ptr<BlockNode> if_true_; // Always non-null.
288 scoped_ptr<ParseNode> if_false_; // May be null. 278 scoped_ptr<ParseNode> if_false_; // May be null.
289 279
290 DISALLOW_COPY_AND_ASSIGN(ConditionNode); 280 DISALLOW_COPY_AND_ASSIGN(ConditionNode);
(...skipping 11 matching lines...) Expand all
302 LocationRange GetRange() const override; 292 LocationRange GetRange() const override;
303 Err MakeErrorDescribing( 293 Err MakeErrorDescribing(
304 const std::string& msg, 294 const std::string& msg,
305 const std::string& help = std::string()) const override; 295 const std::string& help = std::string()) const override;
306 void Print(std::ostream& out, int indent) const override; 296 void Print(std::ostream& out, int indent) const override;
307 297
308 const Token& function() const { return function_; } 298 const Token& function() const { return function_; }
309 void set_function(Token t) { function_ = t; } 299 void set_function(Token t) { function_ = t; }
310 300
311 const ListNode* args() const { return args_.get(); } 301 const ListNode* args() const { return args_.get(); }
312 void set_args(scoped_ptr<ListNode> a) { args_ = a.Pass(); } 302 void set_args(scoped_ptr<ListNode> a) { args_ = std::move(a); }
313 303
314 const BlockNode* block() const { return block_.get(); } 304 const BlockNode* block() const { return block_.get(); }
315 void set_block(scoped_ptr<BlockNode> b) { block_ = b.Pass(); } 305 void set_block(scoped_ptr<BlockNode> b) { block_ = std::move(b); }
316 306
317 private: 307 private:
318 Token function_; 308 Token function_;
319 scoped_ptr<ListNode> args_; 309 scoped_ptr<ListNode> args_;
320 scoped_ptr<BlockNode> block_; // May be null. 310 scoped_ptr<BlockNode> block_; // May be null.
321 311
322 DISALLOW_COPY_AND_ASSIGN(FunctionCallNode); 312 DISALLOW_COPY_AND_ASSIGN(FunctionCallNode);
323 }; 313 };
324 314
325 // IdentifierNode -------------------------------------------------------------- 315 // IdentifierNode --------------------------------------------------------------
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 348
359 const ListNode* AsList() const override; 349 const ListNode* AsList() const override;
360 Value Execute(Scope* scope, Err* err) const override; 350 Value Execute(Scope* scope, Err* err) const override;
361 LocationRange GetRange() const override; 351 LocationRange GetRange() const override;
362 Err MakeErrorDescribing( 352 Err MakeErrorDescribing(
363 const std::string& msg, 353 const std::string& msg,
364 const std::string& help = std::string()) const override; 354 const std::string& help = std::string()) const override;
365 void Print(std::ostream& out, int indent) const override; 355 void Print(std::ostream& out, int indent) const override;
366 356
367 void set_begin_token(const Token& t) { begin_token_ = t; } 357 void set_begin_token(const Token& t) { begin_token_ = t; }
368 void set_end(scoped_ptr<EndNode> e) { end_ = e.Pass(); } 358 void set_end(scoped_ptr<EndNode> e) { end_ = std::move(e); }
369 const EndNode* End() const { return end_.get(); } 359 const EndNode* End() const { return end_.get(); }
370 360
371 void append_item(scoped_ptr<ParseNode> s) { 361 void append_item(scoped_ptr<ParseNode> s) {
372 contents_.push_back(s.release()); 362 contents_.push_back(s.release());
373 } 363 }
374 const std::vector<const ParseNode*>& contents() const { return contents_; } 364 const std::vector<const ParseNode*>& contents() const { return contents_; }
375 365
376 void SortAsStringsList(); 366 void SortAsStringsList();
377 void SortAsDepsList(); 367 void SortAsDepsList();
378 368
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 Err MakeErrorDescribing( 438 Err MakeErrorDescribing(
449 const std::string& msg, 439 const std::string& msg,
450 const std::string& help = std::string()) const override; 440 const std::string& help = std::string()) const override;
451 void Print(std::ostream& out, int indent) const override; 441 void Print(std::ostream& out, int indent) const override;
452 442
453 const Token& op() const { return op_; } 443 const Token& op() const { return op_; }
454 void set_op(const Token& t) { op_ = t; } 444 void set_op(const Token& t) { op_ = t; }
455 445
456 const ParseNode* operand() const { return operand_.get(); } 446 const ParseNode* operand() const { return operand_.get(); }
457 void set_operand(scoped_ptr<ParseNode> operand) { 447 void set_operand(scoped_ptr<ParseNode> operand) {
458 operand_ = operand.Pass(); 448 operand_ = std::move(operand);
459 } 449 }
460 450
461 private: 451 private:
462 Token op_; 452 Token op_;
463 scoped_ptr<ParseNode> operand_; 453 scoped_ptr<ParseNode> operand_;
464 454
465 DISALLOW_COPY_AND_ASSIGN(UnaryOpNode); 455 DISALLOW_COPY_AND_ASSIGN(UnaryOpNode);
466 }; 456 };
467 457
468 // BlockCommentNode ------------------------------------------------------------ 458 // BlockCommentNode ------------------------------------------------------------
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 const Token& value() const { return value_; } 506 const Token& value() const { return value_; }
517 void set_value(const Token& t) { value_ = t; } 507 void set_value(const Token& t) { value_ = t; }
518 508
519 private: 509 private:
520 Token value_; 510 Token value_;
521 511
522 DISALLOW_COPY_AND_ASSIGN(EndNode); 512 DISALLOW_COPY_AND_ASSIGN(EndNode);
523 }; 513 };
524 514
525 #endif // TOOLS_GN_PARSE_TREE_H_ 515 #endif // TOOLS_GN_PARSE_TREE_H_
OLDNEW
« no previous file with comments | « tools/gn/operators_unittest.cc ('k') | tools/gn/parse_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698