| %{ |
| from gyb_syntax_support import * |
| # -*- mode: C++ -*- |
| # Ignore the following admonition; it applies to the resulting .cpp file only |
| }% |
| //// Automatically Generated From ParsedSyntaxNodes.cpp.gyb. |
| //// Do Not Edit Directly! |
| //===--- ParsedSyntaxNodes.cpp - Parsed Syntax Node definitions -----------===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2019 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "swift/Parse/ParsedSyntaxNodes.h" |
| #include "swift/Syntax/SyntaxNodes.h" |
| |
| using namespace swift; |
| using namespace swift::syntax; |
| |
| % for node in SYNTAX_NODES: |
| % for child in node.children: |
| % if child.is_optional: |
| Optional<Parsed${child.type_name}> |
| Parsed${node.name}::getDeferred${child.name}() { |
| auto RawChild = getRaw().getDeferredChildren()[${node.name}::Cursor::${child.name}]; |
| if (RawChild.isNull()) |
| return None; |
| return Parsed${child.type_name} {RawChild}; |
| } |
| % else: |
| Parsed${child.type_name} Parsed${node.name}::getDeferred${child.name}() { |
| return Parsed${child.type_name} {getRaw().getDeferredChildren()[${node.name}::Cursor::${child.name}]}; |
| } |
| % end |
| |
| % end |
| % end |