| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- /* -*- c++ -*- */
 - /*
 -  * Copyright © 2010 Intel Corporation
 -  *
 -  * Permission is hereby granted, free of charge, to any person obtaining a
 -  * copy of this software and associated documentation files (the "Software"),
 -  * to deal in the Software without restriction, including without limitation
 -  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 -  * and/or sell copies of the Software, and to permit persons to whom the
 -  * Software is furnished to do so, subject to the following conditions:
 -  *
 -  * The above copyright notice and this permission notice (including the next
 -  * paragraph) shall be included in all copies or substantial portions of the
 -  * Software.
 -  *
 -  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 -  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 -  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 -  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 -  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 -  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 -  * DEALINGS IN THE SOFTWARE.
 -  */
 - 
 - #pragma once
 - #ifndef IR_PRINT_VISITOR_H
 - #define IR_PRINT_VISITOR_H
 - 
 - #include "ir.h"
 - #include "ir_visitor.h"
 - 
 - /**
 -  * Abstract base class of visitors of IR instruction trees
 -  */
 - class ir_print_visitor : public ir_visitor {
 - public:
 -    ir_print_visitor()
 -       : deref_depth(0)
 -    {
 -       /* empty */
 -    }
 - 
 -    virtual ~ir_print_visitor()
 -    {
 -       /* empty */
 -    }
 - 
 -    /**
 -     * \name Visit methods
 -     *
 -     * As typical for the visitor pattern, there must be one \c visit method for
 -     * each concrete subclass of \c ir_instruction.  Virtual base classes within
 -     * the hierarchy should not have \c visit methods.
 -     */
 -    /*@{*/
 -    virtual void visit(ir_variable *);
 -    virtual void visit(ir_label *);
 -    virtual void visit(ir_function_signature *);
 -    virtual void visit(ir_function *);
 -    virtual void visit(ir_expression *);
 -    virtual void visit(ir_swizzle *);
 -    virtual void visit(ir_dereference *);
 -    virtual void visit(ir_assignment *);
 -    virtual void visit(ir_constant *);
 -    virtual void visit(ir_call *);
 -    virtual void visit(ir_return *);
 -    /*@}*/
 - 
 - private:
 -    int deref_depth;
 - };
 - 
 - #endif /* IR_PRINT_VISITOR_H */
 
 
  |