#ifndef VCZH_PARSING_PARSINGDEFINITIONS
#define VCZH_PARSING_PARSINGDEFINITIONS
#include "ParsingTree.h"
namespace
{
namespace
{
namespace
{
class
ParsingDefinitionAttribute
:
public
{
public
:
;
collections
::
<
>
;
};
class
:
public
{
typedef
collections
::
<
<
ParsingDefinitionAttribute
>>
;
public
:
;
};
class
ParsingDefinitionPrimitiveType
;
class
ParsingDefinitionTokenType
;
class
;
class
ParsingDefinitionArrayType
;
class
:
public
{
public
:
class
:
public
{
public
:
virtual
void
(
ParsingDefinitionPrimitiveType
*
)=
0
;
virtual
void
(
ParsingDefinitionTokenType
*
)=
0
;
virtual
void
(
*
)=
0
;
virtual
void
(
ParsingDefinitionArrayType
*
)=
0
;
};
virtual
void
(
*
)=
0
;
};
class
ParsingDefinitionPrimitiveType
:
public
{
public
:
;
void
(
*
)
override
;
};
class
ParsingDefinitionTokenType
:
public
{
public
:
void
(
*
)
override
;
};
class
:
public
{
public
:
<
>
;
;
void
(
*
)
override
;
};
class
ParsingDefinitionArrayType
:
public
{
public
:
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionClassMemberDefinition
;
class
ParsingDefinitionClassDefinition
;
class
ParsingDefinitionEnumMemberDefinition
;
class
ParsingDefinitionEnumDefinition
;
class
ParsingDefinitionTypeDefinition
:
public
{
public
:
class
:
public
{
public
:
virtual
void
(
ParsingDefinitionClassMemberDefinition
*
)=
0
;
virtual
void
(
ParsingDefinitionClassDefinition
*
)=
0
;
virtual
void
(
ParsingDefinitionEnumMemberDefinition
*
)=
0
;
virtual
void
(
ParsingDefinitionEnumDefinition
*
)=
0
;
};
virtual
void
(
*
)=
0
;
public
:
;
};
class
ParsingDefinitionClassMemberDefinition
:
public
ParsingDefinitionTypeDefinition
{
public
:
<
>
;
;
void
(
*
)
override
;
};
class
ParsingDefinitionClassDefinition
:
public
ParsingDefinitionTypeDefinition
{
public
:
typedef
collections
::
<
<
ParsingDefinitionClassMemberDefinition
>>
;
typedef
collections
::
<
<
ParsingDefinitionTypeDefinition
>>
;
<
>
;
<
>
;
;
;
void
(
*
)
override
;
};
class
ParsingDefinitionEnumMemberDefinition
:
public
ParsingDefinitionTypeDefinition
{
public
:
void
(
*
)
override
;
};
class
ParsingDefinitionEnumDefinition
:
public
ParsingDefinitionTypeDefinition
{
public
:
typedef
collections
::
<
<
ParsingDefinitionEnumMemberDefinition
>>
;
;
void
(
*
)
override
;
};
class
ParsingDefinitionPrimitiveGrammar
;
class
ParsingDefinitionTextGrammar
;
class
ParsingDefinitionSequenceGrammar
;
class
ParsingDefinitionAlternativeGrammar
;
class
ParsingDefinitionLoopGrammar
;
class
ParsingDefinitionOptionalGrammar
;
class
ParsingDefinitionCreateGrammar
;
class
ParsingDefinitionAssignGrammar
;
class
ParsingDefinitionUseGrammar
;
class
ParsingDefinitionSetterGrammar
;
class
:
public
{
public
:
class
:
public
{
public
:
virtual
void
(
ParsingDefinitionPrimitiveGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionTextGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionSequenceGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionAlternativeGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionLoopGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionOptionalGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionCreateGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionAssignGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionUseGrammar
*
)=
0
;
virtual
void
(
ParsingDefinitionSetterGrammar
*
)=
0
;
};
virtual
void
(
*
)=
0
;
};
class
ParsingDefinitionPrimitiveGrammar
:
public
{
public
:
;
void
(
*
)
override
;
};
class
ParsingDefinitionTextGrammar
:
public
{
public
:
;
void
(
*
)
override
;
};
class
ParsingDefinitionSequenceGrammar
:
public
{
public
:
<
>
;
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionAlternativeGrammar
:
public
{
public
:
<
>
;
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionLoopGrammar
:
public
{
public
:
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionOptionalGrammar
:
public
{
public
:
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionCreateGrammar
:
public
{
public
:
<
>
;
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionAssignGrammar
:
public
{
public
:
<
>
;
;
void
(
*
)
override
;
};
class
ParsingDefinitionUseGrammar
:
public
{
public
:
<
>
;
void
(
*
)
override
;
};
class
ParsingDefinitionSetterGrammar
:
public
{
public
:
<
>
;
;
;
void
(
*
)
override
;
};
class
ParsingDefinitionTokenDefinition
:
public
{
public
:
;
;
bool
;
};
class
ParsingDefinitionRuleDefinition
:
public
{
public
:
;
<
>
;
collections
::
<
<
>>
;
};
class
:
public
{
public
:
collections
::
<
<
ParsingDefinitionTypeDefinition
>>
;
collections
::
<
<
ParsingDefinitionTokenDefinition
>>
;
collections
::
<
<
ParsingDefinitionRuleDefinition
>>
;
};
class
ParsingDefinitionAttributeWriter
:
public
{
friend
ParsingDefinitionAttributeWriter
(
const
&
);
protected
:
<
ParsingDefinitionAttribute
>
;
ParsingDefinitionAttributeWriter
(
const
&
);
public
:
ParsingDefinitionAttributeWriter
(
const
ParsingDefinitionAttributeWriter
&
);
ParsingDefinitionAttributeWriter
&
(
const
&
);
<
ParsingDefinitionAttribute
>
()
const
;
};
extern
ParsingDefinitionAttributeWriter
(
const
&
);
class
ParsingDefinitionTypeWriter
:
public
{
friend
ParsingDefinitionTypeWriter
(
const
&
);
friend
ParsingDefinitionTypeWriter
();
protected
:
<
>
;
ParsingDefinitionTypeWriter
(
<
>
);
ParsingDefinitionTypeWriter
(
const
&
);
public
:
ParsingDefinitionTypeWriter
(
const
ParsingDefinitionTypeWriter
&
);
ParsingDefinitionTypeWriter
(
const
&
)
const
;
ParsingDefinitionTypeWriter
()
const
;
<
>
()
const
;
};
extern
ParsingDefinitionTypeWriter
(
const
&
);
extern
ParsingDefinitionTypeWriter
();
class
ParsingDefinitionTypeDefinitionWriter
:
public
{
public
:
virtual
<
ParsingDefinitionTypeDefinition
>
()
const
=
0
;
};
class
ParsingDefinitionClassDefinitionWriter
:
public
ParsingDefinitionTypeDefinitionWriter
{
protected
:
<
>
;
<
ParsingDefinitionClassDefinition
>
;
public
:
ParsingDefinitionClassDefinitionWriter
(
const
&
);
ParsingDefinitionClassDefinitionWriter
(
const
&
,
const
ParsingDefinitionTypeWriter
&
);
ParsingDefinitionClassDefinitionWriter
&
(
const
ParsingDefinitionTypeWriter
&
);
ParsingDefinitionClassDefinitionWriter
&
(
const
&
,
const
ParsingDefinitionTypeWriter
&
,
const
&
=
L""
);
ParsingDefinitionClassDefinitionWriter
&
(
const
ParsingDefinitionTypeDefinitionWriter
&
);
ParsingDefinitionClassDefinitionWriter
&
(
const
ParsingDefinitionAttributeWriter
&
);
<
ParsingDefinitionTypeDefinition
>
()
const
override
;
};
extern
ParsingDefinitionClassDefinitionWriter
(
const
&
);
extern
ParsingDefinitionClassDefinitionWriter
(
const
&
,
const
ParsingDefinitionTypeWriter
&
);
class
ParsingDefinitionEnumDefinitionWriter
:
public
ParsingDefinitionTypeDefinitionWriter
{
protected
:
<
>
;
<
ParsingDefinitionEnumDefinition
>
;
public
:
ParsingDefinitionEnumDefinitionWriter
(
const
&
);
ParsingDefinitionEnumDefinitionWriter
&
(
const
&
);
ParsingDefinitionEnumDefinitionWriter
&
(
const
ParsingDefinitionAttributeWriter
&
);
<
ParsingDefinitionTypeDefinition
>
()
const
override
;
};
extern
ParsingDefinitionEnumDefinitionWriter
(
const
&
);
class
ParsingDefinitionGrammarWriter
:
public
{
friend
ParsingDefinitionGrammarWriter
(
const
&
);
friend
ParsingDefinitionGrammarWriter
(
const
&
);
friend
ParsingDefinitionGrammarWriter
(
const
ParsingDefinitionGrammarWriter
&
);
protected
:
<
>
;
ParsingDefinitionGrammarWriter
(
<
>
);
public
:
ParsingDefinitionGrammarWriter
(
const
ParsingDefinitionGrammarWriter
&
);
ParsingDefinitionGrammarWriter
(
const
ParsingDefinitionGrammarWriter
&
)
const
;
ParsingDefinitionGrammarWriter
(
const
ParsingDefinitionGrammarWriter
&
)
const
;
ParsingDefinitionGrammarWriter
()
const
;
ParsingDefinitionGrammarWriter
(
const
ParsingDefinitionTypeWriter
&
)
const
;
ParsingDefinitionGrammarWriter
(
const
&
)
const
;
ParsingDefinitionGrammarWriter
()
const
;
ParsingDefinitionGrammarWriter
(
const
&
,
const
&
)
const
;
<
>
()
const
;
};
extern
ParsingDefinitionGrammarWriter
(
const
&
);
extern
ParsingDefinitionGrammarWriter
(
const
&
);
extern
ParsingDefinitionGrammarWriter
(
const
ParsingDefinitionGrammarWriter
&
);
class
;
class
ParsingDefinitionTokenDefinitionWriter
:
public
{
protected
:
<
ParsingDefinitionTokenDefinition
>
;
&
;
public
:
ParsingDefinitionTokenDefinitionWriter
(
&
,
<
ParsingDefinitionTokenDefinition
>
);
ParsingDefinitionTokenDefinitionWriter
&
(
const
ParsingDefinitionAttributeWriter
&
);
&
();
};
class
ParsingDefinitionRuleDefinitionWriter
:
public
{
protected
:
<
ParsingDefinitionRuleDefinition
>
;
&
;
public
:
ParsingDefinitionRuleDefinitionWriter
(
&
,
<
ParsingDefinitionRuleDefinition
>
);
ParsingDefinitionRuleDefinitionWriter
&
(
const
ParsingDefinitionGrammarWriter
&
);
ParsingDefinitionRuleDefinitionWriter
&
(
const
ParsingDefinitionAttributeWriter
&
);
&
();
};
class
:
public
{
protected
:
<
>
;
public
:
();
&
(
const
ParsingDefinitionTypeDefinitionWriter
&
);
&
(
const
&
,
const
&
);
ParsingDefinitionTokenDefinitionWriter
(
const
&
,
const
&
);
&
(
const
&
,
const
&
);
ParsingDefinitionRuleDefinitionWriter
(
const
&
,
const
ParsingDefinitionTypeWriter
&
);
<
>
()
const
;
};
extern
(
*
);
extern
(
*
);
extern
(
*
,
*
,
bool
);
extern
*
FindAppropriateGrammarState
(
*
,
*
,
bool
);
extern
void
(
<
>
,
stream
::
&
);
extern
(
const
&
);
extern
(
const
&
);
extern
<
>
();
extern
<
>
(
<
>
);
}
}
}
#endif