blob: 34c644d028451823dc3a82b8477b9daf96743f45 [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)
Jamie Madilld7b1ab52016-12-12 14:42:19 -050016 : TIntermTraverser(true, false, false), mSymbol(symbol)
daniel@transgaming.combdfb2e52010-11-15 16:41:20 +000017{
18 match = false;
19}
20
21void SearchSymbol::traverse(TIntermNode *node)
22{
23 node->traverse(this);
24}
25
26void SearchSymbol::visitSymbol(TIntermSymbol *symbolNode)
27{
28 if (symbolNode->getSymbol() == mSymbol)
29 {
30 match = true;
31 }
32}
33
34bool SearchSymbol::foundMatch() const
35{
36 return match;
37}
38}