#ifndef VCZH_PARSING_XML_PARSINGXML_PARSER_AST
#define VCZH_PARSING_XML_PARSINGXML_PARSER_AST
#include "../Parsing.h"
#include "../ParsingDefinitions.h"
#include "../ParsingAutomaton.h"
namespace
{
namespace
{
namespace
{
enum
class
{
=
0
,
=
1
,
=
2
,
=
3
,
=
4
,
=
5
,
=
6
,
=
7
,
=
8
,
=
9
,
=
10
,
=
11
,
=
12
,
};
class
;
class
;
class
;
class
;
class
;
class
;
class
;
class
;
class
abstract
:
public
vl
::
parsing
::
,
vl
::
reflection
::
<
>
{
public
:
class
:
public
vl
::
reflection
::
,
vl
::
reflection
::
<
>
{
public
:
virtual
void
(
*
)=
0
;
virtual
void
(
*
)=
0
;
virtual
void
(
*
)=
0
;
virtual
void
(
* )=
0
;
virtual
void
(
*
)=
0
;
virtual
void
(
*
)=
0
;
virtual
void
(
*
)=
0
;
};
virtual
void
(
::
*
)=
0
;
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
parsing
::
;
void
(
::
*
)
override
;
static
vl
::
<
>
(
vl
::
<
vl
::
parsing
::
>
,
const
vl
::
collections
::
<
vl
::
regex
::
>&
);
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
parsing
::
;
void
(
::
*
)
override
;
static
vl
::
<
>
(
vl
::
<
vl
::
parsing
::
>
,
const
vl
::
collections
::
<
vl
::
regex
::
>&
);
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
parsing
::
;
vl
::
parsing
::
;
void
(
::
*
)
override
;
static
vl
::
<
>
(
vl
::
<
vl
::
parsing
::
>
,
const
vl
::
collections
::
<
vl
::
regex
::
>&
);
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
parsing
::
;
void
(
::
* )
override
;
static
vl
::
<
> (
vl
::
<
vl
::
parsing
::
> ,
const
vl
::
collections
::
<
vl
::
regex
::
>& );
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
parsing
::
;
vl
::
parsing
::
;
vl
::
collections
::
<
vl
::
<
>>
;
vl
::
collections
::
<
vl
::
<
>>
;
void
(
::
*
)
override
;
static
vl
::
<
>
(
vl
::
<
vl
::
parsing
::
>
,
const
vl
::
collections
::
<
vl
::
regex
::
>&
);
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
parsing
::
;
vl
::
collections
::
<
vl
::
<
>>
;
void
(
::
*
)
override
;
static
vl
::
<
>
(
vl
::
<
vl
::
parsing
::
>
,
const
vl
::
collections
::
<
vl
::
regex
::
>&
);
};
class
:
public
,
vl
::
reflection
::
<
>
{
public
:
vl
::
collections
::
<
vl
::
<
>>
;
vl
::
<
>
;
void
(
::
*
)
override
;
static
vl
::
<
>
(
vl
::
<
vl
::
parsing
::
>
,
const
vl
::
collections
::
<
vl
::
regex
::
>&
);
};
}
}
}
namespace
{
namespace
{
namespace
{
#ifndef VCZH_DEBUG_NO_REFLECTION
DECL_TYPE_INFO(vl::parsing::xml::XmlNode)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlText)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlCData)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlAttribute)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlComment)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlElement)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlInstruction)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlDocument)
template
<>
struct
<
vl
::
parsing
::
xml
::
>{
static
const
; };
DECL_TYPE_INFO(vl::parsing::xml::XmlNode::IVisitor)
template
<>
struct
<
vl
::
parsing
::
xml
::
::
>{
static
const
; };
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(vl::parsing::xml::XmlNode::IVisitor)
template
<>
class
<
vl
::
parsing
::
xml
::
::
> :
public
<
vl
::
parsing
::
xml
::
::
> {
typedef
vl
::
parsing
::
xml
::
::
_interface_proxy_InterfaceType
;
public
:
static
<
vl
::
parsing
::
xml
::
::
>
(
<
>
) {
auto
=
new
<
vl
::
parsing
::
xml
::
::
>();
obj
->
(
);
return
obj
; }
void
(
vl
::
parsing
::
xml
::
*
)
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
void
(
vl
::
parsing
::
xml
::
*
)
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
void
(
vl
::
parsing
::
xml
::
*
)
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
void
(
vl
::
parsing
::
xml
::
* )
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
* =
nullptr
;
static
* =
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)> (
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
void
(
vl
::
parsing
::
xml
::
*
)
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
void
(
vl
::
parsing
::
xml
::
*
)
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
void
(
vl
::
parsing
::
xml
::
*
)
override
{
INVOKE_INTERFACE_PROXY(Visit, node);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
))>(
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
END_INTERFACE_PROXY(vl::parsing::xml::XmlNode::IVisitor)
};
#endif
#endif
extern
bool
();
}
}
}
#endif