]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/lib/Tooling/Syntax/Nodes.cpp
MFC r355940:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / lib / Tooling / Syntax / Nodes.cpp
1 //===- Nodes.cpp ----------------------------------------------*- C++ -*-=====//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 #include "clang/Tooling/Syntax/Nodes.h"
9 #include "clang/Basic/TokenKinds.h"
10
11 using namespace clang;
12
13 llvm::raw_ostream &syntax::operator<<(llvm::raw_ostream &OS, NodeKind K) {
14   switch (K) {
15   case NodeKind::Leaf:
16     return OS << "Leaf";
17   case NodeKind::TranslationUnit:
18     return OS << "TranslationUnit";
19   case NodeKind::TopLevelDeclaration:
20     return OS << "TopLevelDeclaration";
21   case NodeKind::CompoundStatement:
22     return OS << "CompoundStatement";
23   }
24   llvm_unreachable("unknown node kind");
25 }
26
27 syntax::Leaf *syntax::CompoundStatement::lbrace() {
28   return llvm::cast_or_null<syntax::Leaf>(
29       findChild(NodeRole::CompoundStatement_lbrace));
30 }
31
32 syntax::Leaf *syntax::CompoundStatement::rbrace() {
33   return llvm::cast_or_null<syntax::Leaf>(
34       findChild(NodeRole::CompoundStatement_rbrace));
35 }