#include "WfCpp.h"
namespace
{
namespace
{
namespace
{
using
namespace
stream
;
::
(
const
&
)
{
=
L"VCZH_WORKFLOW_COMPILER_GENERATED_"
;
;
=
L"vl_workflow_global"
;
=
+
L"Includes"
;
=
+
L"Reflection"
;
;
}
void
(
& ,
const
& )
{
.
(
L"/***********************************************************************"
);
.
(
L"!!!!!! DO NOT MODIFY !!!!!!"
);
.
(
L""
);
.
(
);
.
(
L""
);
.
(
L"This file is generated by Workflow compiler"
);
.
(
L"https://github.com/vczh-libraries"
);
.
(
L"***********************************************************************/"
);
}
void
(
bool
,
<
>
,
stream
::
&
)
{
if
(
||
.
() >
0
)
{
.
(
L"/* CodePack:BeginIgnore() */"
);
.
(
L"#ifndef VCZH_DEBUG_NO_REFLECTION"
);
if
(
)
{
.
(
L"/* CodePack:ConditionOff(VCZH_DEBUG_NO_REFLECTION, "
+
+
L".h) */"
);
.
(
L"#include \""
+
+
L".h\""
);
}
else
{
FOREACH(WString, include, input->reflectionIncludes)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
include
);)
{
.
(
L"/* CodePack:ConditionOff(VCZH_DEBUG_NO_REFLECTION, "
+
include
+
L") */"
);
.
(
L"#include \""
+
include
+
L"\""
);
}
}
.
(
L"#endif"
);
.
(
L"/* CodePack:EndIgnore() */"
);
}
}
void
(
<
>
,
&
,
,
stream
::
&
)
{
=
.
.
().
(
);
if
(
index
!= -
1
)
{
const
auto
& =
.
.
(
index
);
FOREACH(vint, header, headers)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
headers
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
header
);)
{
if
(
header
==
0
)
{
.
(
L"#include \""
+
+
L".h\""
);
}
else
if
(
header
>
0
)
{
.
(
L"#include \""
+
.
.
()
header
] +
L".h\""
);
}
else
{
.
(
L"#include \""
+
+
(-
header
) +
L".h\""
);
}
}
}
}
void
(
<
> ,
<
> ,
& ,
bool
,
bool
,
stream
::
& )
{
(
,
);
.
(
L""
);
.
(
L"#ifndef "
+
+
(
));
.
(
L"#define "
+
+
(
));
.
(
L""
);
FOREACH(WString, include, input->normalIncludes)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>& = ::
vl
::
collections
::
(
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
include
);)
{
.
(
L"#include \""
+
include
+
L"\""
);
}
.
(
L""
);
.
(
,
);
.
(
L""
);
.
(
L"#endif"
);
}
void
(
<
> ,
<
> ,
& ,
bool
,
bool
,
,
stream
::
& )
{
(
,
);
.
(
L""
);
.
(
L"#ifndef "
+
+
(
) +
L"_DP"
+
(
));
.
(
L"#define "
+
+
(
) +
L"_DP"
+
(
));
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
(
,
, -
,
);
.
(
L""
);
.
(
,
);
.
(
L""
);
.
(
L"#endif"
);
}
void
(
<
>
,
<
>
,
&
,
bool
,
bool
,
stream
::
&
)
{
(
,
);
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
(
,
,
);
.
(
L""
);
.
(
,
);
}
void
(
<
> ,
<
> ,
& ,
bool
,
bool
,
stream
::
& )
{
(
,
);
.
(
L""
);
.
(
L"#ifndef "
+
+
(
));
.
(
L"#define "
+
+
(
));
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
if
(
.
() >
0
)
{
.
(
L"#ifndef VCZH_DEBUG_NO_REFLECTION"
);
FOREACH(WString, include, input->reflectionIncludes)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>& = ::
vl
::
collections
::
(
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
include
);)
{
.
(
L"#include \""
+
include
+
L"\""
);
}
.
(
L"#endif"
);
}
.
(
L""
);
.
(
,
);
.
(
L""
);
.
(
L"#endif"
);
}
void
(
<
>
,
<
>
,
&
,
bool
,
bool
,
stream
::
&
)
{
(
,
);
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
.
(
L""
);
.
(
,
);
}
void
(
<
> ,
<
> ,
& ,
bool
,
bool
,
stream
::
& )
{
(
,
);
.
(
L""
);
.
(
L"#ifndef "
+
+
(
));
.
(
L"#define "
+
+
(
));
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
FOREACH(WString, fileName, config.customFilesClasses.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>& = ::
vl
::
collections
::
(
.
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
fileName
);)
{
if
(
fileName
!=
L""
)
{
.
(
L"#include \""
+
fileName
+
L".h\""
);
}
}
FOREACH(vint, fileIndex, config.headerFilesClasses.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>& = ::
vl
::
collections
::
(
.
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
fileIndex
);)
{
if
(
fileIndex
!=
0
)
{
.
(
L"#include \""
+
+
(
fileIndex
) +
L".h\""
);
}
}
.
(
L""
);
.
(
L"#endif"
);
}
void
(
<
> ,
<
> ,
& ,
bool
,
bool
,
const
& ,
stream
::
& )
{
(
,
);
.
(
L""
);
.
(
L"#ifndef "
+
+
(
));
.
(
L"#define "
+
+
(
));
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
(
,
,
.
.
().
(
),
);
.
(
L""
);
.
(
,
);
.
(
L""
);
.
(
L"#endif"
);
}
void
(
<
>
,
<
>
,
&
,
bool
,
bool
,
const
&
,
stream
::
&
)
{
(
,
);
.
(
L""
);
.
(
L"#include \""
+
+
L".h\""
);
(
,
,
);
.
(
L""
);
.
(
,
);
}
<
>
(
<
>
,
analyzer
::
*
)
{
(
,
,
);
if
(
->
.
() >
0
)
{
return
nullptr
;
}
auto
=
<
>();
if
(
config
.
->
.
() >
0
)
{
output
=
true
;
}
bool
=
false
;
switch
(
)
{
case
::
:
multiFile
=
true
;
break
;
case
::
:
multiFile
=
false
;
break
;
default
:
multiFile
=
config
.
.
() >
1
;
}
bool
=
false
;
switch
(
)
{
case
::
:
reflection
=
true
;
break
;
case
::
:
reflection
=
false
;
break
;
default
:
reflection
=
config
.
->
.
() >
0
;
}
output
=
multiFile
;
output
=
reflection
;
if
(
multiFile
)
{
output
;
}
else
{
output
;
}
output
.
(
+
L".h"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
writer
);
}));
FOREACH(vint, fileIndex, config.headerFilesClasses.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
config
.
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
fileIndex
);)
{
if
(
fileIndex
!=
0
)
{
output
.
(
+
(
fileIndex
) +
L".h"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
fileIndex
,
writer
);
}));
}
}
output
.
(
+
L".cpp"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
writer
);
}));
if
(
reflection
)
{
output
.
(
+
L".h"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
writer
);
}));
output
.
(
+
L".cpp"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
writer
);
}));
}
if
(
multiFile
)
{
output
.
(
+
L".h"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
writer
);
}));
FOREACH(WString, fileName, config.customFilesClasses.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
config
.
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
fileName
);)
{
if
(
fileName
!=
L""
)
{
output
.
(
fileName
+
L".h"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
fileName
,
writer
);
}));
output
.
(
fileName
+
L".cpp"
,
([&](
&
)
{
(
,
output
,
config
,
multiFile
,
reflection
,
fileName
,
writer
);
}));
}
}
}
return
output
;
}
}
}
}