chromium/third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.cpp

//
// Copyright 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.
//
// SplitSequenceOperator is an AST traverser that detects sequence operator expressions that
// go through further AST transformations that generate statements, and splits them so that
// possible side effects of earlier parts of the sequence operator expression are guaranteed to be
// evaluated before the latter parts of the sequence operator expression are evaluated.
//

#include "compiler/translator/tree_ops/SplitSequenceOperator.h"

#include "compiler/translator/tree_util/IntermNodePatternMatcher.h"
#include "compiler/translator/tree_util/IntermTraverse.h"

namespace sh
{

namespace
{

class SplitSequenceOperatorTraverser : public TLValueTrackingTraverser
{};

SplitSequenceOperatorTraverser::SplitSequenceOperatorTraverser(unsigned int patternsToSplitMask,
                                                               TSymbolTable *symbolTable)
    :{}

void SplitSequenceOperatorTraverser::nextIteration()
{}

bool SplitSequenceOperatorTraverser::visitAggregate(Visit visit, TIntermAggregate *node)
{}

bool SplitSequenceOperatorTraverser::visitUnary(Visit visit, TIntermUnary *node)
{}

bool SplitSequenceOperatorTraverser::visitBinary(Visit visit, TIntermBinary *node)
{}

bool SplitSequenceOperatorTraverser::visitTernary(Visit visit, TIntermTernary *node)
{}

}  // namespace

bool SplitSequenceOperator(TCompiler *compiler,
                           TIntermNode *root,
                           int patternsToSplitMask,
                           TSymbolTable *symbolTable)
{}

}  // namespace sh