blob: 757d20675ba71241dca75178222e36bc4f1c4e03 [file] [log] [blame]
Manuel Klimek04616e42012-07-06 05:48:52 +00001//===--- ASTMatchersInternal.cpp - Structural query framework -------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// Implements the base layer of the matcher framework.
11//
12//===----------------------------------------------------------------------===//
13
14#include "clang/ASTMatchers/ASTMatchers.h"
15#include "clang/ASTMatchers/ASTMatchersInternal.h"
16
17namespace clang {
18namespace ast_matchers {
19namespace internal {
20
Manuel Klimeka0c025f2013-06-19 15:42:45 +000021void BoundNodesTreeBuilder::visitMatches(Visitor *ResultVisitor) {
22 if (Bindings.empty())
23 Bindings.push_back(BoundNodesMap());
24 for (unsigned i = 0, e = Bindings.size(); i != e; ++i) {
25 ResultVisitor->visitMatch(BoundNodes(Bindings[i]));
Manuel Klimek021d56f2012-08-28 23:26:39 +000026 }
27}
28
Manuel Klimeka0c025f2013-06-19 15:42:45 +000029void BoundNodesTreeBuilder::addMatch(const BoundNodesTreeBuilder &Other) {
30 for (unsigned i = 0, e = Other.Bindings.size(); i != e; ++i) {
31 Bindings.push_back(Other.Bindings[i]);
Daniel Jasper94a56852012-11-16 18:39:22 +000032 }
Manuel Klimek021d56f2012-08-28 23:26:39 +000033}
34
Samuel Benzaquen31edb512013-06-03 19:31:08 +000035DynTypedMatcher::~DynTypedMatcher() {}
36
37DynTypedMatcher *DynTypedMatcher::tryBind(StringRef ID) const { return NULL; }
38
Manuel Klimek04616e42012-07-06 05:48:52 +000039} // end namespace internal
40} // end namespace ast_matchers
41} // end namespace clang