[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