1ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// 2ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. 3ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 4ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// found in the LICENSE file. 5ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// 6ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// SearchSymbol is an AST traverser to detect the use of a given symbol name 7ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch// 8ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 9ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "compiler/SearchSymbol.h" 10ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 11ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "compiler/InfoSink.h" 12ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "compiler/OutputHLSL.h" 13ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 14ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochnamespace sh 15ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 16ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen MurdochSearchSymbol::SearchSymbol(const TString &symbol) : mSymbol(symbol) 17ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 18ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch match = false; 19ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 20ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 21ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochvoid SearchSymbol::traverse(TIntermNode *node) 22ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 23ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch node->traverse(this); 24ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 25ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 26ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochvoid SearchSymbol::visitSymbol(TIntermSymbol *symbolNode) 27ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 28ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch if (symbolNode->getSymbol() == mSymbol) 29ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch { 30ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch match = true; 31ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch } 32ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 33ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 34ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochbool SearchSymbol::foundMatch() const 35ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{ 36ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch return match; 37ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 38ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch} 39