[xsd-users] Parser Compile errors
John Davis
davis at kapsoft.com
Tue Nov 21 13:47:17 EST 2006
I am new to using the parser and I am getting two compiler errors. They are
both referencing my "codec" parser. Obviously I am not setting it up right
in my code. Please point me in the right direction.
Thank you
John Davis
Compile errors:
c:\SMS\Code\Test0\Test0.cpp(95) : error C2143: syntax error : missing ','
before '&'
c:\SMS\Code\Test0\Test0.cpp(127) : error C2664:
'_xsd_SAL_type::SAL_type<_xsd_Description_,_xsd_codec_>::codec_parser' :
cannot convert parameter 1 from 'codec_parser' to
'xsd::cxx::parser::parser<X,C> &'
with
[
_xsd_Description_=std::string,
_xsd_codec_=codec_parser
]
and
[
X=codec_parser,
C=char
]
A reference that is not to 'const' cannot be bound to a non-lvalue
**********************************************
**********************************************
Header of Test0.cpp code snippet:
struct codec_parser: codec_type<void, cSpec_parser, cccInterface_parser,
initialization_parser, DigitalData_parser, std::string>
{
virtual void nameX(const std::string& name)
{
name_ = name;
std::cout << "codec.name :" << name << std::endl;
}
~codec_parser() { };
private:
std::string name_;
};
struct SAL_parser: SAL_type<void, std::string, codec_parser>
{
virtual void pre ()
{
std::cout << "SAL.pre" << std::endl;
};
virtual void Description (const std::string& Description)
{
Description_ = Description;
std::cout << "SAL.Description: " << Description << std::endl;
};
virtual void codec (const codec_parser& xxx) // THIS IS LINE 95 (see the
compiler errors listed above)
{
std::cout << "SAL.codec" << std::endl;
};
~SAL_parser() { };
private:
std::string Description_;
};
**********************************************
**********************************************
xml_schema::string string_p;
codec_parser codec_p;
codec_p.nameX_parser (string_p);
SAL_parser SAL_p;
SAL_p.Description_parser (string_p);
SAL_p.codec_parser (codec_p); // THIS IS LINE 127 (see compile
errors above
**********************************************
**********************************************
Generated Test0.hxx code snippet:
namespace _xsd_codec_type
{
template < typename x >
struct _xsd_cSpec
{
virtual ~_xsd_cSpec ();
virtual void cSpec (const x&);
void _xsd_call_glue_cSpec (::xsd::cxx::parser::parser< x, char >*);
};
template < typename x >
struct _xsd_cccInterface
{
virtual ~_xsd_cccInterface ();
virtual void cccInterface (const x&);
void _xsd_call_glue_cccInterface (::xsd::cxx::parser::parser< x, char
>*);
};
template < typename x >
struct _xsd_initialization
{
virtual ~_xsd_initialization ();
virtual void initialization (const x&);
void _xsd_call_glue_initialization (::xsd::cxx::parser::parser< x, char
>*);
};
template < typename x >
struct _xsd_DigitalData
{
virtual ~_xsd_DigitalData ();
virtual void DigitalData (const x&);
void _xsd_call_glue_DigitalData (::xsd::cxx::parser::parser< x, char
>*);
};
template < typename x >
struct _xsd_nameX
{
virtual ~_xsd_nameX ();
virtual void nameX (const x&);
void _xsd_call_glue_nameX (::xsd::cxx::parser::parser< x, char >*);
};
template < typename _xsd_cSpec_, typename _xsd_cccInterface_, typename
_xsd_initialization_, typename _xsd_DigitalData_, typename _xsd_nameX_ >
struct codec_type:
virtual ::xsd::cxx::parser::non_validating::complex_content< char >,
_xsd_cSpec< _xsd_cSpec_ >,
_xsd_cccInterface< _xsd_cccInterface_ >,
_xsd_initialization< _xsd_initialization_ >,
_xsd_DigitalData< _xsd_DigitalData_ >,
_xsd_nameX< _xsd_nameX_ >
{
// Parser construction API.
//
void
cSpec_parser (::xsd::cxx::parser::parser< _xsd_cSpec_, char >&);
void
cccInterface_parser (::xsd::cxx::parser::parser< _xsd_cccInterface_,
char >&);
void
initialization_parser (::xsd::cxx::parser::parser< _xsd_initialization_,
char >&);
void
DigitalData_parser (::xsd::cxx::parser::parser< _xsd_DigitalData_, char
>&);
void
nameX_parser (::xsd::cxx::parser::parser< _xsd_nameX_, char >&);
void
parsers (::xsd::cxx::parser::parser< _xsd_cSpec_, char >&,
::xsd::cxx::parser::parser< _xsd_cccInterface_, char >&,
::xsd::cxx::parser::parser< _xsd_initialization_, char >&,
::xsd::cxx::parser::parser< _xsd_DigitalData_, char >&,
::xsd::cxx::parser::parser< _xsd_nameX_, char >&);
codec_type ();
// Implementation.
//
protected:
virtual bool
_start_element_impl (const ::xsd::cxx::parser::ro_string< char >&,
const ::xsd::cxx::parser::ro_string< char >&);
virtual bool
_end_element_impl (const ::xsd::cxx::parser::ro_string< char >&,
const ::xsd::cxx::parser::ro_string< char >&);
virtual bool
_attribute_impl (const ::xsd::cxx::parser::ro_string< char >&,
const ::xsd::cxx::parser::ro_string< char >&,
const ::xsd::cxx::parser::ro_string< char >&);
protected:
::xsd::cxx::parser::parser< _xsd_cSpec_, char >* _xsd_cSpec__;
::xsd::cxx::parser::parser< _xsd_cccInterface_, char >*
_xsd_cccInterface__;
::xsd::cxx::parser::parser< _xsd_initialization_, char >*
_xsd_initialization__;
::xsd::cxx::parser::parser< _xsd_DigitalData_, char >*
_xsd_DigitalData__;
::xsd::cxx::parser::parser< _xsd_nameX_, char >* _xsd_nameX__;
};
}
template < typename _xsd_codec_type_, typename _xsd_cSpec_, typename
_xsd_cccInterface_, typename _xsd_initialization_, typename
_xsd_DigitalData_, typename _xsd_nameX_ >
struct codec_type:
virtual ::xsd::cxx::parser::parser< _xsd_codec_type_, char >,
virtual _xsd_codec_type::codec_type< _xsd_cSpec_, _xsd_cccInterface_,
_xsd_initialization_, _xsd_DigitalData_, _xsd_nameX_ >
{
/*
Parser hooks. Override them in your implementation.
virtual void pre ();
virtual void cSpec (const _xsd_cSpec_&);
virtual void cccInterface (const _xsd_cccInterface_&);
virtual void initialization (const _xsd_initialization_&);
virtual void DigitalData (const _xsd_DigitalData_&);
virtual void nameX (const _xsd_nameX_&);
virtual _xsd_codec_type_ post ();
*/
};
namespace _xsd_SAL_type
{
template < typename x >
struct _xsd_Description
{
virtual ~_xsd_Description ();
virtual void Description (const x&);
void _xsd_call_glue_Description (::xsd::cxx::parser::parser< x, char
>*);
};
template < typename x >
struct _xsd_codec
{
virtual ~_xsd_codec ();
virtual void codec (const x&);
void _xsd_call_glue_codec (::xsd::cxx::parser::parser< x, char >*);
};
template < typename _xsd_Description_, typename _xsd_codec_ >
struct SAL_type:
virtual ::xsd::cxx::parser::non_validating::complex_content< char >,
_xsd_Description< _xsd_Description_ >,
_xsd_codec< _xsd_codec_ >
{
// Parser construction API.
//
void
Description_parser (::xsd::cxx::parser::parser< _xsd_Description_, char
>&);
void
codec_parser (::xsd::cxx::parser::parser< _xsd_codec_, char >&);
void
parsers (::xsd::cxx::parser::parser< _xsd_Description_, char >&,
::xsd::cxx::parser::parser< _xsd_codec_, char >&);
SAL_type ();
// Implementation.
//
protected:
virtual bool
_start_element_impl (const ::xsd::cxx::parser::ro_string< char >&,
const ::xsd::cxx::parser::ro_string< char >&);
virtual bool
_end_element_impl (const ::xsd::cxx::parser::ro_string< char >&,
const ::xsd::cxx::parser::ro_string< char >&);
protected:
::xsd::cxx::parser::parser< _xsd_Description_, char >*
_xsd_Description__;
::xsd::cxx::parser::parser< _xsd_codec_, char >* _xsd_codec__;
};
}
template < typename _xsd_SAL_type_, typename _xsd_Description_, typename
_xsd_codec_ >
struct SAL_type:
virtual ::xsd::cxx::parser::parser< _xsd_SAL_type_, char >,
virtual _xsd_SAL_type::SAL_type< _xsd_Description_, _xsd_codec_ >
{
/*
Parser hooks. Override them in your implementation.
virtual void pre ();
virtual void Description (const _xsd_Description_&);
virtual void codec (const _xsd_codec_&);
virtual _xsd_SAL_type_ post ();
*/
};
*******************************************************************
More information about the xsd-users
mailing list