Edit

kc3-lang/angle/src/compiler/UnfoldShortCircuit.h

Branch :

  • Show log

    Commit

  • Author : daniel@transgaming.com
    Date : 2012-04-29 19:50:09
    Hash : 8b47903c
    Message : Added missing files from the renaming of UnfoldSelect to UnfoldShortCircuit. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1064 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • src/compiler/UnfoldShortCircuit.h
  • //
    // Copyright (c) 2002-2012 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.
    //
    // UnfoldShortCircuit is an AST traverser to output short-circuiting operators as if-else statements
    //
    
    #ifndef COMPILER_UNFOLDSHORTCIRCUIT_H_
    #define COMPILER_UNFOLDSHORTCIRCUIT_H_
    
    #include "compiler/intermediate.h"
    #include "compiler/ParseHelper.h"
    
    namespace sh
    {
    class OutputHLSL;
    
    class UnfoldShortCircuit : public TIntermTraverser
    {
      public:
        UnfoldShortCircuit(TParseContext &context, OutputHLSL *outputHLSL);
    
        void traverse(TIntermNode *node);
        bool visitBinary(Visit visit, TIntermBinary*);
        bool visitSelection(Visit visit, TIntermSelection *node);
        bool visitLoop(Visit visit, TIntermLoop *node);
    
        int getNextTemporaryIndex();
    
      protected:
        TParseContext &mContext;
        OutputHLSL *const mOutputHLSL;
    
        int mTemporaryIndex;
    };
    }
    
    #endif   // COMPILER_UNFOLDSHORTCIRCUIT_H_