#ifndef _CFAST_2_HPP_
#define _CFAST_2_HPP_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

typedef struct tdstTypeOfParam_ 
{
	enum tdeTypeInterpret_		eTypeNode;
	enum tdeVariableType_		eTypeVar;
	enum tdeOperatorId_		    eOperatorId;
//	HIE_tdxHandleToSuperObject	hPersoRef;

	CFast_tdstNode				*p_stCFastNode;	
//	unsigned char				ucVarId;
	unsigned char				ucIndexOfEvalParam;
	unsigned char				ucNumberOfParamNeeded;
	char						*d_cOptimisedNode;
//	char						cXYZ; 
	/*
	1	x value of vector
	2	y value of vector
	3	z value of vector
	*/
//	char						cArrayIndice;
}tdstTypeOfParam;


void CFast_fn_vPassTwo(CFast_tdstComportTree*, tdstEngineObject	*, unsigned short);

void CFast_fn_vVariablesDeclaration(CFast_tdstComportTree *);

void CFast_fn_vSelectSetVar(enum tdeVariableType_,char *);

void CFast_fn_vSelectGetVar(enum tdeVariableType_, char *);

void CFast_fn_vSelectGetFuncResult(enum tdeVariableType_, char *);

enum tdeVariableType_ CFast_fn_eGetFunctionTypeOutParam(CFast_tdstNode *, tdeFuncId_);

enum tdeVariableType_ CFast_fn_eGetDsgVarRefType(tdstNodeInterpret *,tdstEngineObject	*,unsigned char);


#endif //_CFAST_2_HPP_
