blob: cccd4d3ff0128f4bbb389b963f32eb5677024629 [file] [log] [blame]
daniel@transgaming.combdfb2e52010-11-15 16:41:20 +00001//
2// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6// SearchSymbol is an AST traverser to detect the use of a given symbol name
7//
8
Geoff Lang17732822013-08-29 13:46:49 -04009#include "compiler/translator/SearchSymbol.h"
daniel@transgaming.combdfb2e52010-11-15 16:41:20 +000010
Geoff Lang17732822013-08-29 13:46:49 -040011#include "compiler/translator/InfoSink.h"
daniel@transgaming.combdfb2e52010-11-15 16:41:20 +000012
13namespace sh
14{
Olli Etuaho3d0d9a42015-06-01 12:16:36 +030015SearchSymbol::SearchSymbol(const TString &symbol)
16 : TIntermTraverser(true, false, false),
17 mSymbol(symbol)
daniel@transgaming.combdfb2e52010-11-15 16:41:20 +000018{
19 match = false;
20}
21
22void SearchSymbol::traverse(TIntermNode *node)
23{
24 node->traverse(this);
25}
26
27void SearchSymbol::visitSymbol(TIntermSymbol *symbolNode)
28{
29 if (symbolNode->getSymbol() == mSymbol)
30 {
31 match = true;
32 }
33}
34
35bool SearchSymbol::foundMatch() const
36{
37 return match;
38}
39}