windows-nt/Source/XPSP1/NT/com/rpc/midl/inc/control.hxx
2020-09-26 16:20:57 +08:00

150 lines
2.9 KiB
C++

/*****************************************************************************/
/** Microsoft LAN Manager **/
/** Copyright(c) Microsoft Corp., 1987-1999 **/
/*****************************************************************************/
/*****************************************************************************
File : control.hxx
Title : compiler controller object
History :
05-Aug-1991 VibhasC Created
*****************************************************************************/
#ifndef __CONTROL_HXX__
#define __CONTROL_HXX__
#include "listhndl.hxx"
#include "idict.hxx"
#include "nodeskl.hxx"
#define IDL_PASS (1)
#define ACF_PASS (2)
#define SEMANTIC_PASS (3)
#define ILXLAT_PASS (4)
#define CODEGEN_PASS (5)
#define NDR64_ILXLAT_PASS (6)
#define NDR64_CODEGEN_PASS (7)
/***
*** The pass 1 controller.
***/
typedef class _pass1
{
private:
public:
STATUS_T Go();
_pass1();
~_pass1() { };
} PASS_1;
/***
*** The pass 2 controller.
***/
typedef class _pass2
{
private:
node_file * pFileNode;
MEMLIST AcfIncludeList;
public:
STATUS_T Go();
_pass2();
~_pass2() { };
void InsertAcfIncludeFile( node_file *pFile )
{
AcfIncludeList.AddLastMember( pFile );
}
node_file * GetFileNode()
{
return pFileNode;
}
} PASS_2;
/***
*** The pass 3 controller.
***/
typedef class _pass3
{
public:
STATUS_T Go();
_pass3();
~_pass3() { };
} PASS_3;
/***
*** The pass 4 controller.
***/
typedef class _pass4
{
public:
STATUS_T Go();
_pass4() { };
~_pass4() { };
} PASS_4;
/***
*** The compiler controller class
***/
typedef class ccontrol
{
private:
short PassNumber;
class _cmd_arg * pCommandProcessor;
class _nfa_info * pImportController;
PASS_1 * pPass1Controller;
PASS_2 * pPass2Controller;
PASS_3 * pPass3Controller;
PASS_4 * pPass4Controller;
short ErrorCount;
public:
ccontrol( class _cmd_arg* pCommand );
~ccontrol();
class _cmd_arg * GetCommandProcessor()
{
return pCommandProcessor;
}
class _cmd_arg * SetCommandProcessor( class _cmd_arg *p )
{
return pCommandProcessor = p;
}
class _nfa_info * GetImportController()
{
return pImportController;
}
class _nfa_info * SetImportController( class _nfa_info *p )
{
return pImportController = p;
}
STATUS_T Go();
void IncrementErrorCount()
{
ErrorCount++;
}
short GetErrorCount()
{
return ErrorCount;
}
void SetPassNumber( short PN )
{
PassNumber = PN;
}
short GetPassNumber()
{
return PassNumber;
}
} CCONTROL;
#endif // __CONTROL_HXX__