1 //
2 // Copyright 2020 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 
7 #ifndef COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_SKIPPINGTRAVERSER_H_
8 #define COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_SKIPPINGTRAVERSER_H_
9 
10 #include "compiler/translator/tree_util/IntermTraverse.h"
11 
12 namespace sh
13 {
14 
15 // A TIntermTraverser that skips traversing childen by default.
16 class SkippingTraverser : public TIntermTraverser
17 {
18   public:
19     SkippingTraverser(bool preVisit_,
20                       bool inVisit_,
21                       bool postVisit_,
22                       TSymbolTable *symbolTable = nullptr)
TIntermTraverser(preVisit_,inVisit_,postVisit_,symbolTable)23         : TIntermTraverser(preVisit_, inVisit_, postVisit_, symbolTable)
24     {}
25 
visitSwizzle(Visit,TIntermSwizzle *)26     bool visitSwizzle(Visit, TIntermSwizzle *) { return false; }
visitUnary(Visit,TIntermUnary *)27     bool visitUnary(Visit, TIntermUnary *) { return false; }
visitBinary(Visit,TIntermBinary *)28     bool visitBinary(Visit, TIntermBinary *) { return false; }
visitTernary(Visit,TIntermTernary *)29     bool visitTernary(Visit, TIntermTernary *) { return false; }
visitIfElse(Visit,TIntermIfElse *)30     bool visitIfElse(Visit, TIntermIfElse *) { return false; }
visitSwitch(Visit,TIntermSwitch *)31     bool visitSwitch(Visit, TIntermSwitch *) { return false; }
visitCase(Visit,TIntermCase *)32     bool visitCase(Visit, TIntermCase *) { return false; }
visitFunctionDefinition(Visit,TIntermFunctionDefinition *)33     bool visitFunctionDefinition(Visit, TIntermFunctionDefinition *) { return false; }
visitAggregate(Visit,TIntermAggregate *)34     bool visitAggregate(Visit, TIntermAggregate *) { return false; }
visitBlock(Visit,TIntermBlock *)35     bool visitBlock(Visit, TIntermBlock *) { return false; }
visitDeclaration(Visit,TIntermDeclaration *)36     bool visitDeclaration(Visit, TIntermDeclaration *) { return false; }
visitLoop(Visit,TIntermLoop *)37     bool visitLoop(Visit, TIntermLoop *) { return false; }
visitBranch(Visit,TIntermBranch *)38     bool visitBranch(Visit, TIntermBranch *) { return false; }
visitGlobalQualifierDeclaration(Visit,TIntermGlobalQualifierDeclaration *)39     bool visitGlobalQualifierDeclaration(Visit, TIntermGlobalQualifierDeclaration *)
40     {
41         return false;
42     }
43 };
44 
45 }  // namespace sh
46 
47 #endif  // COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_SKIPPINGTRAVERSER_H_
48