ParseNode         247 tools/gn/builder.cc                                                 const ParseNode* request_from,
ParseNode         275 tools/gn/builder.cc                                                 const ParseNode* origin,
ParseNode          19 tools/gn/builder.h class ParseNode;
ParseNode          68 tools/gn/builder.h                                          const ParseNode* request_from,
ParseNode          78 tools/gn/builder.h                                          const ParseNode* request_from,
ParseNode          15 tools/gn/builder_record.h class ParseNode;
ParseNode          63 tools/gn/builder_record.h   const ParseNode* originally_referenced_from() const {
ParseNode          66 tools/gn/builder_record.h   void set_originally_referenced_from(const ParseNode* pn) {
ParseNode         101 tools/gn/builder_record.h   const ParseNode* originally_referenced_from_;
ParseNode         173 tools/gn/command_desc.cc void OutputSourceOfDep(const ParseNode* origin, std::ostream& out) {
ParseNode          48 tools/gn/config_values_extractors.h   const ParseNode* origin() const {
ParseNode         118 tools/gn/err.cc Err::Err(const ParseNode* node,
ParseNode          14 tools/gn/err.h class ParseNode;
ParseNode          48 tools/gn/err.h   Err(const ParseNode* node,
ParseNode         112 tools/gn/file_template.cc                          const ParseNode* origin,
ParseNode          16 tools/gn/file_template.h class ParseNode;
ParseNode          80 tools/gn/file_template.h              const ParseNode* origin,
ParseNode          23 tools/gn/functions.cc bool EnsureNotProcessingImport(const ParseNode* node,
ParseNode          36 tools/gn/functions.cc bool EnsureNotProcessingBuildConfig(const ParseNode* node,
ParseNode         338 tools/gn/functions.cc   const std::vector<const ParseNode*>& args_vector = args_list->contents();
ParseNode          19 tools/gn/functions.h class ParseNode;
ParseNode         356 tools/gn/functions.h bool EnsureNotProcessingImport(const ParseNode* node,
ParseNode         361 tools/gn/functions.h bool EnsureNotProcessingBuildConfig(const ParseNode* node,
ParseNode          22 tools/gn/functions_unittest.cc       scoped_ptr<ParseNode>(new IdentifierNode(undefined_token)));
ParseNode          37 tools/gn/functions_unittest.cc       scoped_ptr<ParseNode>(new IdentifierNode(defined_token)));
ParseNode          50 tools/gn/functions_unittest.cc   args_list_accessor_defined.append_item(undef_accessor.PassAs<ParseNode>());
ParseNode          18 tools/gn/import_manager.cc                       const ParseNode* node_for_err,
ParseNode          20 tools/gn/import_manager.cc   const ParseNode* node = g_scheduler->input_file_manager()->SyncLoadFile(
ParseNode          49 tools/gn/import_manager.cc                              const ParseNode* node_for_err,
ParseNode          13 tools/gn/import_manager.h class ParseNode;
ParseNode          27 tools/gn/import_manager.h                 const ParseNode* node_for_err,
ParseNode          30 tools/gn/input_conversion.cc                  const ParseNode* origin,
ParseNode          52 tools/gn/input_conversion.cc                   const ParseNode* origin,
ParseNode          64 tools/gn/input_conversion.cc   scoped_ptr<ParseNode> expression = Parser::ParseExpression(tokens, err);
ParseNode         102 tools/gn/input_conversion.cc                 const ParseNode* origin,
ParseNode         125 tools/gn/input_conversion.cc                             const ParseNode* origin,
ParseNode         201 tools/gn/input_conversion.cc                           const ParseNode* origin,
ParseNode          11 tools/gn/input_conversion.h class ParseNode;
ParseNode          24 tools/gn/input_conversion.h                           const ParseNode* origin,
ParseNode          19 tools/gn/input_file_manager.cc                             const ParseNode* node) {
ParseNode         100 tools/gn/input_file_manager.cc const ParseNode* InputFileManager::SyncLoadFile(
ParseNode         239 tools/gn/input_file_manager.cc   scoped_ptr<ParseNode> root = Parser::Parse(tokens, err);
ParseNode         242 tools/gn/input_file_manager.cc   ParseNode* unowned_root = root.get();
ParseNode          26 tools/gn/input_file_manager.h class ParseNode;
ParseNode          41 tools/gn/input_file_manager.h   typedef base::Callback<void(const ParseNode*)> FileLoadCallback;
ParseNode          62 tools/gn/input_file_manager.h   const ParseNode* SyncLoadFile(const LocationRange& origin,
ParseNode          98 tools/gn/input_file_manager.h     scoped_ptr<ParseNode> parsed_root;
ParseNode          14 tools/gn/item.h class ParseNode;
ParseNode          32 tools/gn/item.h   const ParseNode* defined_from() const { return defined_from_; }
ParseNode          33 tools/gn/item.h   void set_defined_from(const ParseNode* df) { defined_from_ = df; }
ParseNode          57 tools/gn/item.h   const ParseNode* defined_from_;
ParseNode          10 tools/gn/label_ptr.h class ParseNode;
ParseNode          35 tools/gn/label_ptr.h   const ParseNode* origin;  // May be NULL.
ParseNode         234 tools/gn/loader.cc                                     const ParseNode* root) {
ParseNode         266 tools/gn/loader.cc     const ParseNode* root) {
ParseNode         393 tools/gn/loader.cc     const base::Callback<void(const ParseNode*)>& callback,
ParseNode          77 tools/gn/loader.h                               const base::Callback<void(const ParseNode*)>&,
ParseNode         128 tools/gn/loader.h                           const ParseNode* root);
ParseNode         132 tools/gn/loader.h       const ParseNode* root);
ParseNode         154 tools/gn/loader.h                      const base::Callback<void(const ParseNode*)>& callback,
ParseNode          25 tools/gn/loader_unittest.cc   typedef base::Callback<void(const ParseNode*)> Callback;
ParseNode          46 tools/gn/loader_unittest.cc     scoped_ptr<ParseNode> root;
ParseNode         500 tools/gn/operators.cc                             const ParseNode* left,
ParseNode         501 tools/gn/operators.cc                             const ParseNode* right,
ParseNode          10 tools/gn/operators.h class ParseNode;
ParseNode          31 tools/gn/operators.h                             const ParseNode* left,
ParseNode          32 tools/gn/operators.h                             const ParseNode* right,
ParseNode          30 tools/gn/operators_unittest.cc   list->append_item(scoped_ptr<ParseNode>(new LiteralNode(token)));
ParseNode          52 tools/gn/operators_unittest.cc   node.set_left(scoped_ptr<ParseNode>(new IdentifierNode(identifier_token)));
ParseNode          62 tools/gn/operators_unittest.cc   node.set_right(ListWithLiteral(integer).PassAs<ParseNode>());
ParseNode          69 tools/gn/operators_unittest.cc   node.set_right(ListWithLiteral(string_1).PassAs<ParseNode>());
ParseNode          76 tools/gn/operators_unittest.cc   node.set_right(ListWithLiteral(string_2).PassAs<ParseNode>());
ParseNode          82 tools/gn/operators_unittest.cc   list.append_item(scoped_ptr<ParseNode>(new LiteralNode(string_1)));
ParseNode          83 tools/gn/operators_unittest.cc   list.append_item(scoped_ptr<ParseNode>(new LiteralNode(string_2)));
ParseNode         115 tools/gn/operators_unittest.cc   node.set_left(scoped_ptr<ParseNode>(new IdentifierNode(identifier_token)));
ParseNode         121 tools/gn/operators_unittest.cc   outer_list->append_item(ListWithLiteral(twelve).PassAs<ParseNode>());
ParseNode         122 tools/gn/operators_unittest.cc   node.set_right(outer_list.PassAs<ParseNode>());
ParseNode         145 tools/gn/operators_unittest.cc   node.set_right(scoped_ptr<ParseNode>(new LiteralNode(str)));
ParseNode         150 tools/gn/operators_unittest.cc   node.set_right(scoped_ptr<ParseNode>(new LiteralNode(twelve)));
ParseNode          27 tools/gn/parse_tree.cc ParseNode::ParseNode() {
ParseNode          30 tools/gn/parse_tree.cc ParseNode::~ParseNode() {
ParseNode          33 tools/gn/parse_tree.cc const AccessorNode* ParseNode::AsAccessor() const { return NULL; }
ParseNode          34 tools/gn/parse_tree.cc const BinaryOpNode* ParseNode::AsBinaryOp() const { return NULL; }
ParseNode          35 tools/gn/parse_tree.cc const BlockNode* ParseNode::AsBlock() const { return NULL; }
ParseNode          36 tools/gn/parse_tree.cc const ConditionNode* ParseNode::AsConditionNode() const { return NULL; }
ParseNode          37 tools/gn/parse_tree.cc const FunctionCallNode* ParseNode::AsFunctionCall() const { return NULL; }
ParseNode          38 tools/gn/parse_tree.cc const IdentifierNode* ParseNode::AsIdentifier() const { return NULL; }
ParseNode          39 tools/gn/parse_tree.cc const ListNode* ParseNode::AsList() const { return NULL; }
ParseNode          40 tools/gn/parse_tree.cc const LiteralNode* ParseNode::AsLiteral() const { return NULL; }
ParseNode          41 tools/gn/parse_tree.cc const UnaryOpNode* ParseNode::AsUnaryOp() const { return NULL; }
ParseNode         251 tools/gn/parse_tree.cc     const ParseNode* cur = statements_[i];
ParseNode         416 tools/gn/parse_tree.cc     const ParseNode* cur = contents_[i];
ParseNode          31 tools/gn/parse_tree.h class ParseNode {
ParseNode          33 tools/gn/parse_tree.h   ParseNode();
ParseNode          34 tools/gn/parse_tree.h   virtual ~ParseNode();
ParseNode          61 tools/gn/parse_tree.h   DISALLOW_COPY_AND_ASSIGN(ParseNode);
ParseNode          89 tools/gn/parse_tree.h class AccessorNode : public ParseNode {
ParseNode         108 tools/gn/parse_tree.h   const ParseNode* index() const { return index_.get(); }
ParseNode         109 tools/gn/parse_tree.h   void set_index(scoped_ptr<ParseNode> i) { index_ = i.Pass(); }
ParseNode         124 tools/gn/parse_tree.h   scoped_ptr<ParseNode> index_;
ParseNode         132 tools/gn/parse_tree.h class BinaryOpNode : public ParseNode {
ParseNode         148 tools/gn/parse_tree.h   const ParseNode* left() const { return left_.get(); }
ParseNode         149 tools/gn/parse_tree.h   void set_left(scoped_ptr<ParseNode> left) {
ParseNode         153 tools/gn/parse_tree.h   const ParseNode* right() const { return right_.get(); }
ParseNode         154 tools/gn/parse_tree.h   void set_right(scoped_ptr<ParseNode> right) {
ParseNode         159 tools/gn/parse_tree.h   scoped_ptr<ParseNode> left_;
ParseNode         161 tools/gn/parse_tree.h   scoped_ptr<ParseNode> right_;
ParseNode         168 tools/gn/parse_tree.h class BlockNode : public ParseNode {
ParseNode         185 tools/gn/parse_tree.h   const std::vector<ParseNode*>& statements() const { return statements_; }
ParseNode         186 tools/gn/parse_tree.h   void append_statement(scoped_ptr<ParseNode> s) {
ParseNode         201 tools/gn/parse_tree.h   std::vector<ParseNode*> statements_;
ParseNode         208 tools/gn/parse_tree.h class ConditionNode : public ParseNode {
ParseNode         223 tools/gn/parse_tree.h   const ParseNode* condition() const { return condition_.get(); }
ParseNode         224 tools/gn/parse_tree.h   void set_condition(scoped_ptr<ParseNode> c) {
ParseNode         235 tools/gn/parse_tree.h   const ParseNode* if_false() const { return if_false_.get(); }
ParseNode         236 tools/gn/parse_tree.h   void set_if_false(scoped_ptr<ParseNode> f) {
ParseNode         244 tools/gn/parse_tree.h   scoped_ptr<ParseNode> condition_;  // Always non-null.
ParseNode         246 tools/gn/parse_tree.h   scoped_ptr<ParseNode> if_false_;  // May be null.
ParseNode         253 tools/gn/parse_tree.h class FunctionCallNode : public ParseNode {
ParseNode         285 tools/gn/parse_tree.h class IdentifierNode : public ParseNode {
ParseNode         310 tools/gn/parse_tree.h class ListNode : public ParseNode {
ParseNode         326 tools/gn/parse_tree.h   void append_item(scoped_ptr<ParseNode> s) {
ParseNode         329 tools/gn/parse_tree.h   const std::vector<const ParseNode*>& contents() const { return contents_; }
ParseNode         337 tools/gn/parse_tree.h   std::vector<const ParseNode*> contents_;
ParseNode         344 tools/gn/parse_tree.h class LiteralNode : public ParseNode {
ParseNode         369 tools/gn/parse_tree.h class UnaryOpNode : public ParseNode {
ParseNode         385 tools/gn/parse_tree.h   const ParseNode* operand() const { return operand_.get(); }
ParseNode         386 tools/gn/parse_tree.h   void set_operand(scoped_ptr<ParseNode> operand) {
ParseNode         392 tools/gn/parse_tree.h   scoped_ptr<ParseNode> operand_;
ParseNode          88 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Parse(const std::vector<Token>& tokens,
ParseNode          91 tools/gn/parser.cc   return p.ParseFile().PassAs<ParseNode>();
ParseNode          95 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::ParseExpression(const std::vector<Token>& tokens,
ParseNode         101 tools/gn/parser.cc bool Parser::IsAssignment(const ParseNode* node) const {
ParseNode         169 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::ParseExpression() {
ParseNode         173 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::ParseExpression(int precedence) {
ParseNode         175 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         184 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         187 tools/gn/parser.cc   scoped_ptr<ParseNode> left = (this->*prefix)(token);
ParseNode         199 tools/gn/parser.cc       return scoped_ptr<ParseNode>();
ParseNode         203 tools/gn/parser.cc       return scoped_ptr<ParseNode>();
ParseNode         209 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Literal(Token token) {
ParseNode         210 tools/gn/parser.cc   return scoped_ptr<ParseNode>(new LiteralNode(token)).Pass();
ParseNode         213 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Name(Token token) {
ParseNode         214 tools/gn/parser.cc   return IdentifierOrCall(scoped_ptr<ParseNode>(), token).Pass();
ParseNode         217 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Group(Token token) {
ParseNode         218 tools/gn/parser.cc   scoped_ptr<ParseNode> expr = ParseExpression();
ParseNode         220 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         225 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Not(Token token) {
ParseNode         226 tools/gn/parser.cc   scoped_ptr<ParseNode> expr = ParseExpression(PRECEDENCE_PREFIX + 1);
ParseNode         228 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         232 tools/gn/parser.cc   return unary_op.PassAs<ParseNode>();
ParseNode         235 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::List(Token node) {
ParseNode         236 tools/gn/parser.cc   scoped_ptr<ParseNode> list(ParseList(Token::RIGHT_BRACKET, true));
ParseNode         242 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::BinaryOperator(scoped_ptr<ParseNode> left,
ParseNode         244 tools/gn/parser.cc   scoped_ptr<ParseNode> right =
ParseNode         250 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         256 tools/gn/parser.cc   return binary_op.PassAs<ParseNode>();
ParseNode         259 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::IdentifierOrCall(scoped_ptr<ParseNode> left,
ParseNode         274 tools/gn/parser.cc         return scoped_ptr<ParseNode>();
ParseNode         281 tools/gn/parser.cc         return scoped_ptr<ParseNode>();
ParseNode         287 tools/gn/parser.cc     return scoped_ptr<ParseNode>(new IdentifierNode(token)).Pass();
ParseNode         294 tools/gn/parser.cc   return func_call.PassAs<ParseNode>();
ParseNode         297 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Assignment(scoped_ptr<ParseNode> left,
ParseNode         301 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         303 tools/gn/parser.cc   scoped_ptr<ParseNode> value = ParseExpression(PRECEDENCE_ASSIGNMENT);
ParseNode         308 tools/gn/parser.cc   return assign.PassAs<ParseNode>();
ParseNode         311 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::Subscript(scoped_ptr<ParseNode> left,
ParseNode         320 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         322 tools/gn/parser.cc   scoped_ptr<ParseNode> value = ParseExpression();
ParseNode         327 tools/gn/parser.cc   return accessor.PassAs<ParseNode>();
ParseNode         330 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::DotOperator(scoped_ptr<ParseNode> left,
ParseNode         337 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         340 tools/gn/parser.cc   scoped_ptr<ParseNode> right = ParseExpression(PRECEDENCE_DOT);
ParseNode         344 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         351 tools/gn/parser.cc   return accessor.PassAs<ParseNode>();
ParseNode         383 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::ParseFile() {
ParseNode         388 tools/gn/parser.cc     scoped_ptr<ParseNode> statement = ParseStatement();
ParseNode         396 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         397 tools/gn/parser.cc   return file.PassAs<ParseNode>();
ParseNode         400 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::ParseStatement() {
ParseNode         402 tools/gn/parser.cc     return ParseBlock().PassAs<ParseNode>();
ParseNode         408 tools/gn/parser.cc     scoped_ptr<ParseNode> stmt = ParseExpression();
ParseNode         417 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         435 tools/gn/parser.cc     scoped_ptr<ParseNode> statement = ParseStatement();
ParseNode         443 tools/gn/parser.cc scoped_ptr<ParseNode> Parser::ParseCondition() {
ParseNode         455 tools/gn/parser.cc     return scoped_ptr<ParseNode>();
ParseNode         456 tools/gn/parser.cc   return condition.PassAs<ParseNode>();
ParseNode          19 tools/gn/parser.h typedef scoped_ptr<ParseNode> (Parser::*InfixFunc)(scoped_ptr<ParseNode> left,
ParseNode          34 tools/gn/parser.h   static scoped_ptr<ParseNode> Parse(const std::vector<Token>& tokens,
ParseNode          38 tools/gn/parser.h   static scoped_ptr<ParseNode> ParseExpression(const std::vector<Token>& tokens,
ParseNode          41 tools/gn/parser.h   scoped_ptr<ParseNode> ParseExpression();
ParseNode          49 tools/gn/parser.h   scoped_ptr<ParseNode> ParseExpression(int precedence);
ParseNode          52 tools/gn/parser.h   scoped_ptr<ParseNode> Literal(Token token);
ParseNode          53 tools/gn/parser.h   scoped_ptr<ParseNode> Name(Token token);
ParseNode          54 tools/gn/parser.h   scoped_ptr<ParseNode> Group(Token token);
ParseNode          55 tools/gn/parser.h   scoped_ptr<ParseNode> Not(Token token);
ParseNode          56 tools/gn/parser.h   scoped_ptr<ParseNode> List(Token token);
ParseNode          59 tools/gn/parser.h   scoped_ptr<ParseNode> BinaryOperator(scoped_ptr<ParseNode> left, Token token);
ParseNode          60 tools/gn/parser.h   scoped_ptr<ParseNode> IdentifierOrCall(scoped_ptr<ParseNode> left,
ParseNode          62 tools/gn/parser.h   scoped_ptr<ParseNode> Assignment(scoped_ptr<ParseNode> left, Token token);
ParseNode          63 tools/gn/parser.h   scoped_ptr<ParseNode> Subscript(scoped_ptr<ParseNode> left, Token token);
ParseNode          64 tools/gn/parser.h   scoped_ptr<ParseNode> DotOperator(scoped_ptr<ParseNode> left, Token token);
ParseNode          71 tools/gn/parser.h   scoped_ptr<ParseNode> ParseFile();
ParseNode          72 tools/gn/parser.h   scoped_ptr<ParseNode> ParseStatement();
ParseNode          74 tools/gn/parser.h   scoped_ptr<ParseNode> ParseCondition();
ParseNode          76 tools/gn/parser.h   bool IsAssignment(const ParseNode* node) const;
ParseNode          29 tools/gn/parser_unittest.cc   scoped_ptr<ParseNode> result = Parser::Parse(tokens, &err);
ParseNode          47 tools/gn/parser_unittest.cc   scoped_ptr<ParseNode> result = Parser::ParseExpression(tokens, &err);
ParseNode          65 tools/gn/parser_unittest.cc     scoped_ptr<ParseNode> result = Parser::Parse(tokens, &err);
ParseNode          83 tools/gn/parser_unittest.cc     scoped_ptr<ParseNode> result = Parser::ParseExpression(tokens, &err);
ParseNode          90 tools/gn/scope.cc                                            const ParseNode* set_node) {
ParseNode         117 tools/gn/scope.cc                        const ParseNode* set_node) {
ParseNode         197 tools/gn/scope.cc                                 const ParseNode* node_for_err,
ParseNode          21 tools/gn/scope.h class ParseNode;
ParseNode         122 tools/gn/scope.h                                       const ParseNode* set_node);
ParseNode         129 tools/gn/scope.h                   const ParseNode* set_node);
ParseNode         177 tools/gn/scope.h                            const ParseNode* node_for_err,
ParseNode          24 tools/gn/setup.h class ParseNode;
ParseNode         132 tools/gn/setup.h   scoped_ptr<ParseNode> dotfile_root_;
ParseNode         139 tools/gn/setup.h   scoped_ptr<ParseNode> args_root_;
ParseNode          17 tools/gn/value.cc Value::Value(const ParseNode* origin, Type t)
ParseNode          25 tools/gn/value.cc Value::Value(const ParseNode* origin, bool bool_val)
ParseNode          33 tools/gn/value.cc Value::Value(const ParseNode* origin, int64 int_val)
ParseNode          41 tools/gn/value.cc Value::Value(const ParseNode* origin, std::string str_val)
ParseNode          51 tools/gn/value.cc Value::Value(const ParseNode* origin, const char* str_val)
ParseNode          60 tools/gn/value.cc Value::Value(const ParseNode* origin, Scope* scope)
ParseNode          72 tools/gn/value.cc void Value::RecursivelySetOrigin(const ParseNode* origin) {
ParseNode          13 tools/gn/value.h class ParseNode;
ParseNode          29 tools/gn/value.h   Value(const ParseNode* origin, Type t);
ParseNode          30 tools/gn/value.h   Value(const ParseNode* origin, bool bool_val);
ParseNode          31 tools/gn/value.h   Value(const ParseNode* origin, int64 int_val);
ParseNode          32 tools/gn/value.h   Value(const ParseNode* origin, std::string str_val);
ParseNode          33 tools/gn/value.h   Value(const ParseNode* origin, const char* str_val);
ParseNode          34 tools/gn/value.h   Value(const ParseNode* origin, Scope* scope);  // Non-owning ptr.
ParseNode          44 tools/gn/value.h   const ParseNode* origin() const { return origin_; }
ParseNode          45 tools/gn/value.h   void set_origin(const ParseNode* o) { origin_ = o; }
ParseNode          49 tools/gn/value.h   void RecursivelySetOrigin(const ParseNode* o);
ParseNode         116 tools/gn/value.h   const ParseNode* origin_;