diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/IntermNodePatternMatcher.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/IntermNodePatternMatcher.h | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/IntermNodePatternMatcher.h b/src/3rdparty/angle/src/compiler/translator/IntermNodePatternMatcher.h deleted file mode 100644 index 997fc2ef10..0000000000 --- a/src/3rdparty/angle/src/compiler/translator/IntermNodePatternMatcher.h +++ /dev/null @@ -1,75 +0,0 @@ -// -// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// IntermNodePatternMatcher is a helper class for matching node trees to given patterns. -// It can be used whenever the same checks for certain node structures are common to multiple AST -// traversers. -// - -#ifndef COMPILER_TRANSLATOR_INTERMNODEPATTERNMATCHER_H_ -#define COMPILER_TRANSLATOR_INTERMNODEPATTERNMATCHER_H_ - -namespace sh -{ - -class TIntermAggregate; -class TIntermBinary; -class TIntermDeclaration; -class TIntermNode; -class TIntermTernary; -class TIntermUnary; - -class IntermNodePatternMatcher -{ - public: - static bool IsDynamicIndexingOfVectorOrMatrix(TIntermBinary *node); - - enum PatternType - { - // Matches expressions that are unfolded to if statements by UnfoldShortCircuitToIf - kUnfoldedShortCircuitExpression = 0x0001, - - // Matches expressions that return arrays with the exception of simple statements where a - // constructor or function call result is assigned. - kExpressionReturningArray = 0x0001 << 1, - - // Matches dynamic indexing of vectors or matrices in l-values. - kDynamicIndexingOfVectorOrMatrixInLValue = 0x0001 << 2, - - // Matches declarations with more than one declared variables. - kMultiDeclaration = 0x0001 << 3, - - // Matches declarations of arrays. - kArrayDeclaration = 0x0001 << 4, - - // Matches declarations of structs where the struct type does not have a name. - kNamelessStructDeclaration = 0x0001 << 5, - - // Matches array length() method. - kArrayLengthMethod = 0x0001 << 6 - }; - IntermNodePatternMatcher(const unsigned int mask); - - bool match(TIntermUnary *node); - - bool match(TIntermBinary *node, TIntermNode *parentNode); - - // Use this version for checking binary node matches in case you're using flag - // kDynamicIndexingOfVectorOrMatrixInLValue. - bool match(TIntermBinary *node, TIntermNode *parentNode, bool isLValueRequiredHere); - - bool match(TIntermAggregate *node, TIntermNode *parentNode); - bool match(TIntermTernary *node); - bool match(TIntermDeclaration *node); - - private: - const unsigned int mMask; - - bool matchInternal(TIntermBinary *node, TIntermNode *parentNode); -}; - -} // namespace sh - -#endif |