/// PTAnyNodePtr.h 
///
/// (c) 2001-2014 Bastian Spiegel <bs@tkscript.de>
///     - distributed under the terms of the GNU general public license (GPL).
///

#ifndef __PTNANYNODEPTR_H__
#define __PTNANYNODEPTR_H__


class PTN_Node;
class PTN_Call;
class PTN_CallableExpr;
class PTN_ConstVal; 
class PTN_ConstValReference; 
class PTN_Define;
class PTN_ModuleDef;
class PTN_ExprStat;
class PTN_ARGBExpr;
class PTN_ArrayIniExpr;
class PTN_ArgList;
class PTN_Break;
class PTN_BreakableStatement;
class PTN_BuiltinFun;
class PTN_ClampWrapStat;
class PTN_ClassDecl;
class PTN_ClassMemberExpr;
class PTN_ClassMemberIncDecExpr;
class PTN_ClassMemberIncDecStat;
class PTN_ClassMemberOpAssign;
class PTN_ClassMemberOpIndexedVarAssign;
class PTN_ClassMemberIndirectObjectExpr;
class PTN_ClassMemberIndirectObjectECall;
class PTN_ClassMemberIndirectObjectStat;
class PTN_ClassMemberIndirectClassExpr;
class PTN_ClassMemberIndirectClassMethodECall;
class PTN_ClassMemberIndirectClassStat;
class PTN_ClassMemberPointerAssign;
class PTN_ClassMemberIndexedVarExpr;
class PTN_ClassMethodBody;
class PTN_ClassMethodECall; 
class PTN_ClassMethodDelegateAssign; 
class PTN_ClassMethodDelegateCall; 
class PTN_ClassVarDecl;
class PTN_ConditionalExpr;
class PTN_DerefExpr;
class PTN_DoubleArgExpr;
class PTN_DoWhile;
class PTN_DynTraceStat;
class PTN_ECallY;
class PTN_ExceptionVarExpr;
class PTN_ExprArrayEntry;
class PTN_ExprHashEntry;
class PTN_FlushStat;
class PTN_For;
class PTN_ForEach;
class PTN_Function;
class PTN_FunctionBody;
class PTN_FunctionCall;
class PTN_FunctionECall;
class PTN_FunctionECallY;
class PTN_FunctionSignalStatement;
class PTN_HashIniExpr;
class PTN_ValueListExpr;
class PTN_ValueListEntry;
class PTN_IArrayExpr;
class PTN_IfElse;
class PTN_IMethodECall;
class PTN_IMemberExpr;
class PTN_InstanceOfExpr;
class PTN_IndexedVarAssign;
class PTN_DynamicIndexedVarAssign;
class PTN_IndexedVarExpr;
class PTNLongArgs;
class PTN_LoopStatement;
class PTN_NewClassExpr;
class PTN_NewExpr;
class PTN_ObjClampWrapStat;
class PTN_ObjectMemberIncDecExprY;
class PTN_ObjectMemberIncDecStatY;
class PTN_OpIndexedVarAssign;
class PTN_OpObjectMemberAssignY;
class PTN_OpVarAssign;
class PTN_PointerAssign;
class PTN_DynamicVarPointerAssign;
class PTN_PostDecVarExpr;
class PTN_PostDecVarStat;
class PTN_PostIncVarExpr;
class PTN_PostIncVarStat;
class PTN_PreDecVarExpr;
class PTN_PreDecVarStat;
class PTN_PreIncVarExpr;
class PTN_PreIncVarStat;
class PTN_PrepareStat;
class PTN_PrintStat;
class PTN_Return;
class PTN_RGBExpr;
class PTN_SingleArgExpr;
class PTN_Statement;
class PTN_EmptyStatement;
class PTN_Switch;
class PTN_SwitchCase;
class PTN_SwitchDefaultCase;
class PTN_ThisExpr;
class PTN_Throw;
class PTN_TripleArgExpr;
class PTN_TryCatchFinally;
class PTN_UnresolvedModuleMemberExpr;
class PTN_UnresolvedModuleMemberPostIncDecStat;
class PTN_UnresolvedModuleMemberIncDecExpr;
class PTN_UnresolvedModuleMemberPointerAssign;
class PTN_UnresolvedModuleMethodECall;
class PTN_UnresolvedOpModuleMemberAssign;
class PTN_While;
class PTN_VarAssign;
class PTN_DynamicVarAssign;
class PTN_OpDynamicVarAssign;
class PTN_VarDecl;
class PTN_VarExpr; 
class PTN_ConstraintVarExpr;
class VMCore;


typedef union _PTAnyNodePtr {
   void *any;
   PTN_Node                                *node;
   PTN_ARGBExpr                            *argbexpr; 
   PTN_ArgList                             *arglist;
   PTN_ArrayIniExpr                        *arrayiniexpr; 
   PTN_Break                               *breakstat;
   PTN_BreakableStatement                  *breakable_statement;
   PTN_BuiltinFun                          *builtinfun; 
   PTN_Call                                *call; 
   PTN_CallableExpr                        *callableexpr; 
   PTN_ConditionalExpr                     *condexpr; 
   PTN_ClampWrapStat                       *clampwrapstat; 
   PTN_ClassMethodBody                     *classmethodbody; 
   PTN_ClassDecl                           *classdecl; 
   PTN_ClassVarDecl                        *classvardecl; 
   PTN_ClassMemberExpr                     *classmemberexpr; 
   PTN_ClassMemberIncDecExpr               *classmemberincdecexpr; 
   PTN_ClassMemberIncDecStat               *classmemberincdecstat; 
   PTN_ClassMemberOpAssign                 *classmemberopassign; 
   PTN_ClassMemberOpIndexedVarAssign       *classmemberopindexedvarassign; 
   PTN_ClassMemberIndexedVarExpr           *classmemberindexedvarexpr; 
   PTN_ClassMemberIndirectObjectExpr       *classmemberindirectobjectexpr; 
   PTN_ClassMemberIndirectObjectECall      *classmemberindirectobjectecall; 
   PTN_ClassMemberIndirectObjectStat       *classmemberindirectobjectstat; 
   PTN_ClassMemberIndirectClassExpr        *classmemberindirectclassexpr; 
   PTN_ClassMemberIndirectClassMethodECall *classmemberindirectclassmethodecall; 
   PTN_ClassMemberIndirectClassStat        *classmemberindirectclassstat; 
   PTN_ClassMemberPointerAssign            *classmemberpointerassign; 
   PTN_ClassMethodECall                    *classmethodecall; 
   PTN_ClassMethodDelegateAssign           *classmethoddelegateassign; 
   PTN_ClassMethodDelegateCall             *classmethoddelegatecall; 
   PTN_ConstraintVarExpr                   *constraintvarexpr; 
   PTN_ConstVal                            *constval; 
   PTN_ConstValReference                   *constvalreference; 
   PTN_Define                              *definestatement; 
   PTN_DerefExpr                           *derefexpr; 
   PTN_DoubleArgExpr                       *doubleargexpr; 
   PTN_DoWhile                             *dowhilestatement; 
   PTN_DynamicIndexedVarAssign             *dynamicindexedvarassign; 
   PTN_DynamicVarAssign                    *dynamicvarassign; 
   PTN_DynamicVarPointerAssign             *dynamicvarpointerassign; 
   PTN_DynTraceStat                        *dyntracestat; 
   PTN_ECallY                              *ecally; 
   PTN_Expr                                *expr;
   PTN_ExprArrayEntry                      *exprarrayentry; 
   PTN_ExprHashEntry                       *exprhashentry; 
   PTN_ExprStat                            *exprstat; 
   PTN_FlushStat                           *flushstat; 
   PTN_For                                 *forstatement; 
   PTN_ForEach                             *foreachstatement; 
   PTN_Function                            *functiondecl; 
   PTN_FunctionBody                        *functionbody; 
   PTN_FunctionCall                        *functioncall; 
   PTN_FunctionECall                       *functionecall; 
   PTN_FunctionECallY                      *functionecally;
   PTN_FunctionSignalStatement             *functionsignalstatement; 
   PTN_HashIniExpr                         *hashiniexpr; 
   PTN_IArrayExpr                          *iarrayexpr; 
   PTN_IfElse                              *ifelsestatement; 
   PTN_IMemberExpr                         *imemberexpr; 
   PTN_IMethodECall                        *imethodecall; 
   PTN_IndexedVarAssign                    *indexedvarassign; 
   PTN_IndexedVarExpr                      *indexedvarexpr; 
   PTN_InstanceOfExpr                      *instanceofexpr; 
   PTN_LoopStatement                       *loopstatement; 
   PTN_ModuleDef                           *moduledef; 
   PTN_NewClassExpr                        *newclassexpr; 
   PTN_NewExpr                             *newexpr; 
   PTN_ObjectMemberIncDecExprY             *objectmemberincdecexpry; 
   PTN_ObjectMemberIncDecStatY             *objectmemberincdecstaty; 
   PTN_OpDynamicVarAssign                  *opdynamicvarassign; 
   PTN_OpIndexedVarAssign                  *opindexedvarassign; 
   PTN_OpObjectMemberAssignY               *opobjectmemberassigny; 
   PTN_OpVarAssign                         *opvarassign; 
   PTN_PointerAssign                       *pointerassign; 
   PTN_PostDecVarExpr                      *postdecvarexpr; 
   PTN_PostDecVarStat                      *postdecvarstat; 
   PTN_PostIncVarExpr                      *postincvarexpr; 
   PTN_PostIncVarStat                      *postincvarstat; 
   PTN_PreDecVarExpr                       *predecvarexpr; 
   PTN_PreDecVarStat                       *predecvarstat; 
   PTN_PreIncVarExpr                       *preincvarexpr; 
   PTN_PreIncVarStat                       *preincvarstat; 
   PTN_PrepareStat                         *preparestat; 
   PTN_PrintStat                           *printstat; 
   PTN_Return                              *returnstatement; 
   PTN_RGBExpr                             *rgbexpr; 
   PTN_SingleArgExpr                       *singleargexpr; 
   PTN_Statement                           *statement; 
   PTN_Statement                           *emptystatement; 
   PTN_Switch                              *switchstatement; 
   PTN_SwitchCase                          *switchcase; 
   PTN_SwitchDefaultCase                   *switchdefaultcase; 
   PTN_ThisExpr                            *thisexpr; 
   PTN_Throw                               *throwstat;
   PTN_TryCatchFinally                     *trycatchfinallystat;
   PTN_TripleArgExpr                       *tripleargexpr; 
   PTN_UnresolvedModuleMemberExpr          *unresolvedmodulememberexpr; 
   PTN_UnresolvedModuleMemberIncDecExpr    *unresolvedmodulememberincdecexpr; 
   PTN_UnresolvedModuleMemberPointerAssign *unresolvedmodulememberpointerassign; 
   PTN_UnresolvedModuleMemberPostIncDecStat*unresolvedmodulememberpostincdecstat; 
   PTN_UnresolvedModuleMethodECall         *unresolvedmodulemethodecall; 
   PTN_UnresolvedOpModuleMemberAssign      *unresolvedopmodulememberassign; 
   PTN_ValueListEntry                      *valuelistentry; 
   PTN_ValueListExpr                       *valuelistexpr; 
   PTN_VarAssign                           *varassign; 
   PTN_VarDecl                             *vardecl; 
   PTN_VarExpr                             *varexpr; 
   VMCore                                  *vmstat; 
   PTN_While                               *whilestatement; 

} PTAnyNodePtr;


#endif // __PTNANYNODEPTR_H__
