#ifndef VCZH_WORKFLOW_EXPRESSION_WFEXPRESSIONPARSER_TRAVERSE
#define VCZH_WORKFLOW_EXPRESSION_WFEXPRESSIONPARSER_TRAVERSE
#include <VlppParser.h>
#include "WfExpression_Ast.h"
namespace
{
namespace
{
namespace
{
class
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
WfOrderedLambdaExpression
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
WfTypeOfExpressionExpression
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
WfOrderedLambdaExpression
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
WfTypeOfExpressionExpression
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
WfRaiseExceptionStatement
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
WfRaiseExceptionStatement
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
VirtualCfeDeclarationVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
WfAutoPropertyDeclaration
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
WfCastResultInterfaceDeclaration
*
);
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
WfAutoPropertyDeclaration
*
)
override
;
void
(
WfCastResultInterfaceDeclaration
*
)
override
;
};
class
VirtualCseDeclarationVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
WfStateMachineDeclaration
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
WfStateMachineDeclaration
*
)
override
;
};
class
VirtualCseStatementVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
CoroutineStatementVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
StateMachineStatementVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
};
class
VirtualCfeExpressionVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
};
class
VirtualCseExpressionVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
WfExpectedTypeCastExpression
*
);
virtual
void
(
*
);
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
*
)
override
;
void
(
WfExpectedTypeCastExpression
*
)
override
;
void
(
*
)
override
;
};
class
ModuleUsingFragmentVisitor
:
public
,
public
::
{
public
:
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
WfModuleUsingNameFragment
*
);
virtual
void
(
*
);
virtual
void
(
WfModuleUsingWildCardFragment
*
);
void
(
WfModuleUsingNameFragment
*
)
override
;
void
(
WfModuleUsingWildCardFragment
*
)
override
;
};
class
:
public
,
public
,
public
,
public
,
public
VirtualCfeDeclarationVisitor
,
public
VirtualCseDeclarationVisitor
,
public
VirtualCseStatementVisitor
,
public
CoroutineStatementVisitor
,
public
StateMachineStatementVisitor
,
public
VirtualCfeExpressionVisitor
,
public
VirtualCseExpressionVisitor
,
public
ModuleUsingFragmentVisitor
{
public
:
void
(
*
);
virtual
void
(
vl
::
parsing
::
&
);
virtual
void
(
vl
::
parsing
::
*
);
virtual
void
(
*
);
virtual
void
(
*
);
virtual
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
void
(
*
);
};
}
}
}
#endif