1 //
2 // Copyright 2016 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 // SplitSequenceOperator is an AST traverser that detects sequence operator expressions that
7 // go through further AST transformations that generate statements, and splits them so that
8 // possible side effects of earlier parts of the sequence operator expression are guaranteed to be
9 // evaluated before the latter parts of the sequence operator expression are evaluated.
10 //
11 
12 #ifndef COMPILER_TRANSLATOR_TREEOPS_SPLITSEQUENCEOPERATOR_H_
13 #define COMPILER_TRANSLATOR_TREEOPS_SPLITSEQUENCEOPERATOR_H_
14 
15 #include "common/angleutils.h"
16 
17 namespace sh
18 {
19 class TCompiler;
20 class TIntermNode;
21 class TSymbolTable;
22 
23 ANGLE_NO_DISCARD bool SplitSequenceOperator(TCompiler *compiler,
24                                             TIntermNode *root,
25                                             int patternsToSplitMask,
26                                             TSymbolTable *symbolTable);
27 
28 }  // namespace sh
29 
30 #endif  // COMPILER_TRANSLATOR_TREEOPS_SPLITSEQUENCEOPERATOR_H_
31