You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(128) |
Dec
(65) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(48) |
Feb
(132) |
Mar
(95) |
Apr
(47) |
May
(54) |
Jun
(2) |
Jul
(57) |
Aug
(109) |
Sep
(131) |
Oct
(186) |
Nov
(105) |
Dec
(78) |
2007 |
Jan
(125) |
Feb
(105) |
Mar
(52) |
Apr
(104) |
May
(63) |
Jun
(116) |
Jul
(76) |
Aug
|
Sep
(18) |
Oct
(93) |
Nov
(110) |
Dec
(169) |
2008 |
Jan
(90) |
Feb
(64) |
Mar
(41) |
Apr
(23) |
May
(6) |
Jun
(18) |
Jul
(10) |
Aug
(61) |
Sep
(139) |
Oct
(50) |
Nov
(55) |
Dec
(2) |
2009 |
Jan
|
Feb
(1) |
Mar
(62) |
Apr
(22) |
May
(17) |
Jun
(19) |
Jul
(40) |
Aug
(21) |
Sep
|
Oct
(40) |
Nov
(23) |
Dec
|
2010 |
Jan
(14) |
Feb
(40) |
Mar
(9) |
Apr
(11) |
May
(19) |
Jun
(4) |
Jul
(10) |
Aug
(22) |
Sep
(15) |
Oct
|
Nov
(2) |
Dec
|
2011 |
Jan
(13) |
Feb
(10) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
(2) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(33) |
May
(20) |
Jun
|
Jul
(8) |
Aug
(7) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Braden M. <br...@us...> - 2006-03-06 03:46:44
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10159/src/libopenvrml/openvrml Modified Files: field_value.cpp field_value.h Log Message: Moved definitions of FieldValue::field_value_type_id to field_value.h. Index: field_value.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/field_value.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** field_value.cpp 25 Feb 2006 08:37:27 -0000 1.24 --- field_value.cpp 6 Mar 2006 03:46:41 -0000 1.25 *************** *** 764,771 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfbool::field_value_type_id(sfbool_id); /** --- 764,771 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfbool::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 944,951 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfcolor::field_value_type_id(sfcolor_id); /** --- 944,951 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfcolor::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 1124,1131 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfcolorrgba::field_value_type_id(sfcolorrgba_id); /** --- 1124,1131 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfcolorrgba::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 1306,1313 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sffloat::field_value_type_id(sffloat_id); /** --- 1306,1313 ---- /** + * @var const openvrml::field_value::type_id openvrml::sffloat::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 1485,1492 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfdouble::field_value_type_id(sfdouble_id); /** --- 1485,1492 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfdouble::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 1665,1672 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfimage::field_value_type_id(sfimage_id); /** --- 1665,1672 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfimage::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 1849,1856 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfint32::field_value_type_id(sfint32_id); /** --- 1849,1856 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfint32::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 2029,2036 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfnode::field_value_type_id(sfnode_id); /** --- 2029,2036 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfnode::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 2227,2234 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfrotation::field_value_type_id(sfrotation_id); /** --- 2227,2234 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfrotation::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 2408,2415 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfstring::field_value_type_id(sfstring_id); /** --- 2408,2415 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfstring::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 2586,2593 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sftime::field_value_type_id(sftime_id); /** --- 2586,2593 ---- /** + * @var const openvrml::field_value::type_id openvrml::sftime::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 2773,2780 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfvec2f::field_value_type_id(sfvec2f_id); /** --- 2773,2780 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfvec2f::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 2952,2959 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfvec2d::field_value_type_id(sfvec2d_id); /** --- 2952,2959 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfvec2d::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 3134,3141 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfvec3f::field_value_type_id(sfvec3f_id); /** --- 3134,3141 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfvec3f::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 3313,3320 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::sfvec3d::field_value_type_id(sfvec3d_id); /** --- 3313,3320 ---- /** + * @var const openvrml::field_value::type_id openvrml::sfvec3d::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 3499,3506 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfbool::field_value_type_id(mfbool_id); /** --- 3499,3506 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfbool::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 3712,3719 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfcolor::field_value_type_id(mfcolor_id); /** --- 3712,3719 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfcolor::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 3924,3931 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfcolorrgba::field_value_type_id(mfcolorrgba_id); /** --- 3924,3931 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfcolorrgba::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 4140,4147 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mffloat::field_value_type_id(mffloat_id); /** --- 4140,4147 ---- /** + * @var const openvrml::field_value::type_id openvrml::mffloat::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 4352,4359 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfdouble::field_value_type_id(mfdouble_id); /** --- 4352,4359 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfdouble::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 4564,4571 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfimage::field_value_type_id(mfimage_id); /** --- 4564,4571 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfimage::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 4776,4783 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfint32::field_value_type_id(mfint32_id); /** --- 4776,4783 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfint32::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 4989,4996 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfnode::field_value_type_id(mfnode_id); /** --- 4989,4996 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfnode::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 5205,5212 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfrotation::field_value_type_id(mfrotation_id); /** --- 5205,5212 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfrotation::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 5419,5426 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfstring::field_value_type_id(mfstring_id); /** --- 5419,5426 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfstring::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 5634,5641 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mftime::field_value_type_id(mftime_id); /** --- 5634,5641 ---- /** + * @var const openvrml::field_value::type_id openvrml::mftime::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 5849,5856 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfvec2f::field_value_type_id(mfvec2f_id); /** --- 5849,5856 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfvec2f::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 6062,6069 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfvec2d::field_value_type_id(mfvec2d_id); /** --- 6062,6069 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfvec2d::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 6276,6283 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfvec3f::field_value_type_id(mfvec3f_id); /** --- 6276,6283 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfvec3f::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** *************** *** 6490,6497 **** /** * @brief <code>field_value::type_id</code> for this class. */ - const openvrml::field_value::type_id - openvrml::mfvec3d::field_value_type_id(mfvec3d_id); /** --- 6490,6497 ---- /** + * @var const openvrml::field_value::type_id openvrml::mfvec3d::field_value_type_id + * * @brief <code>field_value::type_id</code> for this class. */ /** Index: field_value.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/field_value.h,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** field_value.h 20 Feb 2006 04:42:27 -0000 1.20 --- field_value.h 6 Mar 2006 03:46:41 -0000 1.21 *************** *** 308,312 **** typedef bool value_type; ! static const type_id field_value_type_id; explicit sfbool(value_type value = false) OPENVRML_NOTHROW; --- 308,312 ---- typedef bool value_type; ! static const type_id field_value_type_id = sfbool_id; explicit sfbool(value_type value = false) OPENVRML_NOTHROW; *************** *** 339,343 **** typedef color value_type; ! static const type_id field_value_type_id; explicit sfcolor(const value_type & value = color()) OPENVRML_NOTHROW; --- 339,343 ---- typedef color value_type; ! static const type_id field_value_type_id = sfcolor_id; explicit sfcolor(const value_type & value = color()) OPENVRML_NOTHROW; *************** *** 371,375 **** typedef color_rgba value_type; ! static const type_id field_value_type_id; explicit sfcolorrgba(const value_type & value = color_rgba()) --- 371,375 ---- typedef color_rgba value_type; ! static const type_id field_value_type_id = sfcolorrgba_id; explicit sfcolorrgba(const value_type & value = color_rgba()) *************** *** 406,410 **** typedef float value_type; ! static const type_id field_value_type_id; explicit sffloat(float value = 0.0) OPENVRML_NOTHROW; --- 406,410 ---- typedef float value_type; ! static const type_id field_value_type_id = sffloat_id; explicit sffloat(float value = 0.0) OPENVRML_NOTHROW; *************** *** 437,441 **** typedef double value_type; ! static const type_id field_value_type_id; explicit sfdouble(double value = 0.0) OPENVRML_NOTHROW; --- 437,441 ---- typedef double value_type; ! static const type_id field_value_type_id = sfdouble_id; explicit sfdouble(double value = 0.0) OPENVRML_NOTHROW; *************** *** 468,472 **** typedef image value_type; ! static const type_id field_value_type_id; explicit sfimage(const image & value = image()) --- 468,472 ---- typedef image value_type; ! static const type_id field_value_type_id = sfimage_id; explicit sfimage(const image & value = image()) *************** *** 501,505 **** typedef int32 value_type; ! static const type_id field_value_type_id; explicit sfint32(int32 value = 0) OPENVRML_NOTHROW; --- 501,505 ---- typedef int32 value_type; ! static const type_id field_value_type_id = sfint32_id; explicit sfint32(int32 value = 0) OPENVRML_NOTHROW; *************** *** 537,541 **** typedef boost::intrusive_ptr<node> value_type; ! static const type_id field_value_type_id; explicit sfnode(const value_type & node = value_type(0)) --- 537,541 ---- typedef boost::intrusive_ptr<node> value_type; ! static const type_id field_value_type_id = sfnode_id; explicit sfnode(const value_type & node = value_type(0)) *************** *** 569,573 **** typedef rotation value_type; ! static const type_id field_value_type_id; explicit sfrotation(const rotation & rot = rotation()) --- 569,573 ---- typedef rotation value_type; ! static const type_id field_value_type_id = sfrotation_id; explicit sfrotation(const rotation & rot = rotation()) *************** *** 604,608 **** typedef std::string value_type; ! static const type_id field_value_type_id; explicit sfstring(const std::string & value = std::string()) --- 604,608 ---- typedef std::string value_type; ! static const type_id field_value_type_id = sfstring_id; explicit sfstring(const std::string & value = std::string()) *************** *** 637,641 **** typedef double value_type; ! static const type_id field_value_type_id; explicit sftime(double value = 0.0) OPENVRML_NOTHROW; --- 637,641 ---- typedef double value_type; ! static const type_id field_value_type_id = sftime_id; explicit sftime(double value = 0.0) OPENVRML_NOTHROW; *************** *** 668,672 **** typedef vec2f value_type; ! static const type_id field_value_type_id; explicit sfvec2f(const vec2f & vec = vec2f()) OPENVRML_NOTHROW; --- 668,672 ---- typedef vec2f value_type; ! static const type_id field_value_type_id = sfvec2f_id; explicit sfvec2f(const vec2f & vec = vec2f()) OPENVRML_NOTHROW; *************** *** 699,703 **** typedef vec2d value_type; ! static const type_id field_value_type_id; explicit sfvec2d(const vec2d & vec = vec2d()) OPENVRML_NOTHROW; --- 699,703 ---- typedef vec2d value_type; ! static const type_id field_value_type_id = sfvec2d_id; explicit sfvec2d(const vec2d & vec = vec2d()) OPENVRML_NOTHROW; *************** *** 731,735 **** typedef vec3f value_type; ! static const type_id field_value_type_id; explicit sfvec3f(const vec3f & vec = vec3f()) OPENVRML_NOTHROW; --- 731,735 ---- typedef vec3f value_type; ! static const type_id field_value_type_id = sfvec3f_id; explicit sfvec3f(const vec3f & vec = vec3f()) OPENVRML_NOTHROW; *************** *** 758,766 **** OPENVRML_NOTHROW; class OPENVRML_API sfvec3d : public field_value { public: typedef vec3d value_type; ! static const type_id field_value_type_id; explicit sfvec3d(const vec3d & vec = vec3d()) OPENVRML_NOTHROW; --- 758,767 ---- OPENVRML_NOTHROW; + class OPENVRML_API sfvec3d : public field_value { public: typedef vec3d value_type; ! static const type_id field_value_type_id = sfvec3d_id; explicit sfvec3d(const vec3d & vec = vec3d()) OPENVRML_NOTHROW; *************** *** 789,797 **** OPENVRML_NOTHROW; class OPENVRML_API mfbool : public field_value { public: typedef std::vector<bool> value_type; ! static const type_id field_value_type_id; explicit mfbool(value_type::size_type n = 0, bool value = false) --- 790,799 ---- OPENVRML_NOTHROW; + class OPENVRML_API mfbool : public field_value { public: typedef std::vector<bool> value_type; ! static const type_id field_value_type_id = mfbool_id; explicit mfbool(value_type::size_type n = 0, bool value = false) *************** *** 822,830 **** OPENVRML_NOTHROW; class OPENVRML_API mfcolor : public field_value { public: typedef std::vector<color> value_type; ! static const type_id field_value_type_id; explicit mfcolor(std::vector<color>::size_type n = 0, --- 824,833 ---- OPENVRML_NOTHROW; + class OPENVRML_API mfcolor : public field_value { public: typedef std::vector<color> value_type; ! static const type_id field_value_type_id = mfcolor_id; explicit mfcolor(std::vector<color>::size_type n = 0, *************** *** 857,865 **** OPENVRML_NOTHROW; class OPENVRML_API mfcolorrgba : public field_value { public: typedef std::vector<color_rgba> value_type; ! static const type_id field_value_type_id; explicit mfcolorrgba(value_type::size_type n = 0, --- 860,869 ---- OPENVRML_NOTHROW; + class OPENVRML_API mfcolorrgba : public field_value { public: typedef std::vector<color_rgba> value_type; ! static const type_id field_value_type_id = mfcolorrgba_id; explicit mfcolorrgba(value_type::size_type n = 0, *************** *** 894,902 **** OPENVRML_NOTHROW; class OPENVRML_API mffloat : public field_value { public: typedef std::vector<float> value_type; ! static const type_id field_value_type_id; explicit mffloat(std::vector<float>::size_type n = 0, --- 898,907 ---- OPENVRML_NOTHROW; + class OPENVRML_API mffloat : public field_value { public: typedef std::vector<float> value_type; ! static const type_id field_value_type_id = mffloat_id; explicit mffloat(std::vector<float>::size_type n = 0, *************** *** 929,937 **** OPENVRML_NOTHROW; class OPENVRML_API mfdouble : public field_value { public: typedef std::vector<double> value_type; ! static const type_id field_value_type_id; explicit mfdouble(std::vector<double>::size_type n = 0, --- 934,943 ---- OPENVRML_NOTHROW; + class OPENVRML_API mfdouble : public field_value { public: typedef std::vector<double> value_type; ! static const type_id field_value_type_id = mfdouble_id; explicit mfdouble(std::vector<double>::size_type n = 0, *************** *** 964,972 **** OPENVRML_NOTHROW; class OPENVRML_API mfimage : public field_value { public: typedef std::vector<image> value_type; ! static const type_id field_value_type_id; explicit mfimage(value_type::size_type n = 0, --- 970,979 ---- OPENVRML_NOTHROW; + class OPENVRML_API mfimage : public field_value { public: typedef std::vector<image> value_type; ! static const type_id field_value_type_id = mfimage_id; explicit mfimage(value_type::size_type n = 0, *************** *** 999,1007 **** OPENVRML_NOTHROW; class OPENVRML_API mfint32 : public field_value { public: typedef std::vector<int32> value_type; ! static const type_id field_value_type_id; explicit mfint32(std::vector<int32>::size_type n = 0, int32 value = 0) --- 1006,1015 ---- OPENVRML_NOTHROW; + class OPENVRML_API mfint32 : public field_value { public: typedef std::vector<int32> value_type; ! static const type_id field_value_type_id = mfint32_id; explicit mfint32(std::vector<int32>::size_type n = 0, int32 value = 0) *************** *** 1037,1041 **** typedef std::vector<boost::intrusive_ptr<node> > value_type; ! static const type_id field_value_type_id; explicit mfnode(value_type::size_type n = 0, --- 1045,1049 ---- typedef std::vector<boost::intrusive_ptr<node> > value_type; ! static const type_id field_value_type_id = mfnode_id; explicit mfnode(value_type::size_type n = 0, *************** *** 1073,1077 **** typedef std::vector<rotation> value_type; ! static const type_id field_value_type_id; explicit mfrotation(std::vector<rotation>::size_type n = 0, --- 1081,1085 ---- typedef std::vector<rotation> value_type; ! static const type_id field_value_type_id = mfrotation_id; explicit mfrotation(std::vector<rotation>::size_type n = 0, *************** *** 1111,1115 **** typedef std::vector<std::string> value_type; ! static const type_id field_value_type_id; explicit mfstring(std::vector<std::string>::size_type n = 0, --- 1119,1123 ---- typedef std::vector<std::string> value_type; ! static const type_id field_value_type_id = mfstring_id; explicit mfstring(std::vector<std::string>::size_type n = 0, *************** *** 1147,1151 **** typedef std::vector<double> value_type; ! static const type_id field_value_type_id; explicit mftime(std::vector<double>::size_type n = 0, --- 1155,1159 ---- typedef std::vector<double> value_type; ! static const type_id field_value_type_id = mftime_id; explicit mftime(std::vector<double>::size_type n = 0, *************** *** 1182,1186 **** typedef std::vector<vec2f> value_type; ! static const type_id field_value_type_id; explicit mfvec2f(std::vector<vec2f>::size_type n = 0, --- 1190,1194 ---- typedef std::vector<vec2f> value_type; ! static const type_id field_value_type_id = mfvec2f_id; explicit mfvec2f(std::vector<vec2f>::size_type n = 0, *************** *** 1218,1222 **** typedef std::vector<vec2d> value_type; ! static const type_id field_value_type_id; explicit mfvec2d(std::vector<vec2d>::size_type n = 0, --- 1226,1230 ---- typedef std::vector<vec2d> value_type; ! static const type_id field_value_type_id = mfvec2d_id; explicit mfvec2d(std::vector<vec2d>::size_type n = 0, *************** *** 1254,1258 **** typedef std::vector<vec3f> value_type; ! static const type_id field_value_type_id; explicit mfvec3f(std::vector<vec3f>::size_type n = 0, --- 1262,1266 ---- typedef std::vector<vec3f> value_type; ! static const type_id field_value_type_id = mfvec3f_id; explicit mfvec3f(std::vector<vec3f>::size_type n = 0, *************** *** 1289,1293 **** typedef std::vector<vec3d> value_type; ! static const type_id field_value_type_id; explicit mfvec3d(std::vector<vec3d>::size_type n = 0, --- 1297,1301 ---- typedef std::vector<vec3d> value_type; ! static const type_id field_value_type_id = mfvec3d_id; explicit mfvec3d(std::vector<vec3d>::size_type n = 0, |
From: Braden M. <br...@us...> - 2006-03-06 03:46:44
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10159 Modified Files: ChangeLog Log Message: Moved definitions of FieldValue::field_value_type_id to field_value.h. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1174 retrieving revision 1.1175 diff -C2 -d -r1.1174 -r1.1175 *** ChangeLog 5 Mar 2006 06:25:12 -0000 1.1174 --- ChangeLog 6 Mar 2006 03:46:40 -0000 1.1175 *************** *** 1,4 **** --- 1,12 ---- 2006-03-05 Braden McDaniel <br...@en...> + Moved definitions of FieldValue::field_value_type_id to + field_value.h. + + * src/libopenvrml/openvrml/field_value.cpp + * src/libopenvrml/openvrml/field_value.h + + 2006-03-05 Braden McDaniel <br...@en...> + Fixed to avoid scanner assertion when parsing X3D VRML. |
From: Braden M. <br...@us...> - 2006-03-05 06:25:16
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7087/tests Modified Files: Makefile.am testsuite.at Added Files: parse_vrml97.cpp parse_x3dvrml.cpp Removed Files: parse.cpp Log Message: Fixed to avoid scanner assertion when parsing X3D VRML. Index: testsuite.at =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/testsuite.at,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** testsuite.at 2 Jan 2006 02:57:34 -0000 1.6 --- testsuite.at 5 Mar 2006 06:25:12 -0000 1.7 *************** *** 1,5 **** AT_INIT ! AT_BANNER([Parse tests: code that should be accepted]) AT_SETUP([Trivial PROTO containment]) --- 1,5 ---- AT_INIT ! AT_BANNER([VRML97 parse tests: code that should be accepted]) AT_SETUP([Trivial PROTO containment]) *************** *** 9,13 **** Outer0 {} ]]) ! AT_CHECK([parse < proto-containment-trivial.wrl]) AT_CLEANUP --- 9,13 ---- Outer0 {} ]]) ! AT_CHECK([parse-vrml97 < proto-containment-trivial.wrl]) AT_CLEANUP *************** *** 26,30 **** Outer {} ]]) ! AT_CHECK([parse < proto-containment-2-deep.wrl]) AT_CLEANUP --- 26,30 ---- Outer {} ]]) ! AT_CHECK([parse-vrml97 < proto-containment-2-deep.wrl]) AT_CLEANUP *************** *** 42,46 **** Node1 {} ]]) ! AT_CHECK([parse < proto-field-is-proto.wrl]) AT_CLEANUP --- 42,46 ---- Node1 {} ]]) ! AT_CHECK([parse-vrml97 < proto-field-is-proto.wrl]) AT_CLEANUP *************** *** 59,63 **** Node {} ]]) ! AT_CHECK([parse < proto-impl-exposedfield-event-is.wrl]) AT_CLEANUP --- 59,63 ---- Node {} ]]) ! AT_CHECK([parse-vrml97 < proto-impl-exposedfield-event-is.wrl]) AT_CLEANUP *************** *** 71,75 **** } ]]) ! AT_CHECK([parse < route-referencing-current-node.wrl]) AT_CLEANUP --- 71,75 ---- } ]]) ! AT_CHECK([parse-vrml97 < route-referencing-current-node.wrl]) AT_CLEANUP *************** *** 82,86 **** } ]]) ! AT_CHECK([parse < self-referential-script.wrl]) AT_CLEANUP --- 82,86 ---- } ]]) ! AT_CHECK([parse-vrml97 < self-referential-script.wrl]) AT_CLEANUP *************** *** 96,100 **** Node {} ]]) ! AT_CHECK([parse < self-referential-script-in-proto.wrl]) AT_CLEANUP --- 96,100 ---- Node {} ]]) ! AT_CHECK([parse-vrml97 < self-referential-script-in-proto.wrl]) AT_CLEANUP *************** *** 106,110 **** UnrecognizedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse < unrecognized-externproto.wrl], [0], [ignore], --- 106,110 ---- UnrecognizedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse-vrml97 < unrecognized-externproto.wrl], [0], [ignore], *************** *** 118,122 **** UnimplementedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse < unimplemented-externproto.wrl], [0], [ignore], --- 118,122 ---- UnimplementedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse-vrml97 < unimplemented-externproto.wrl], [0], [ignore], *************** *** 124,128 **** AT_CLEANUP ! AT_BANNER([Parse tests: code that should be rejected]) AT_SETUP([Unrecognized node type]) --- 124,128 ---- AT_CLEANUP ! AT_BANNER([VRML97 parse tests: code that should be rejected]) AT_SETUP([Unrecognized node type]) *************** *** 131,135 **** UnrecognizedNode {} ]]) ! AT_CHECK([parse < unrecognized-node.wrl], [1], [], [urn:X-openvrml:stream:1:2:17: error: unknown node type "UnrecognizedNode" ]) --- 131,135 ---- UnrecognizedNode {} ]]) ! AT_CHECK([parse-vrml97 < unrecognized-node.wrl], [1], [], [urn:X-openvrml:stream:1:2:17: error: unknown node type "UnrecognizedNode" ]) *************** *** 147,151 **** Node {} ]]) ! AT_CHECK([parse < proto-eventin-conflict.wrl], [1], [], [urn:X-openvrml:stream:1:4:26: error: Interface "exposedField MFNode foo" conflicts with previous declaration ]) --- 147,151 ---- Node {} ]]) ! AT_CHECK([parse-vrml97 < proto-eventin-conflict.wrl], [1], [], [urn:X-openvrml:stream:1:4:26: error: Interface "exposedField MFNode foo" conflicts with previous declaration ]) *************** *** 163,168 **** Node {} ]]) ! AT_CHECK([parse < proto-eventout-conflict.wrl], [1], [], [urn:X-openvrml:stream:1:5:0: error: Interface "eventOut SFColor foo_changed" conflicts with previous declaration ]) AT_CLEANUP --- 163,178 ---- Node {} ]]) ! AT_CHECK([parse-vrml97 < proto-eventout-conflict.wrl], [1], [], [urn:X-openvrml:stream:1:5:0: error: Interface "eventOut SFColor foo_changed" conflicts with previous declaration ]) AT_CLEANUP + + AT_BANNER([X3D VRML parse tests: code that should be accepted]) + + AT_SETUP([Minimal world]) + AT_DATA([minimal.x3dv], + [[#X3D V3.0 utf8 + PROFILE Core + ]]) + AT_CHECK([parse-x3dvrml < minimal.x3dv]) + AT_CLEANUP --- NEW FILE: parse_vrml97.cpp --- // -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4; -*- // // Copyright 2004, 2005 Braden McDaniel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // # include <iostream> # include "test_browser.h" using namespace std; using namespace openvrml; int main() { try { test_browser b; b.create_vrml_from_stream(cin, "model/vrml"); } catch (invalid_vrml & ex) { cerr << ex.url << ':' << ex.line << ':' << ex.column << ": error: " << ex.what() << endl; return EXIT_FAILURE; } return EXIT_SUCCESS; } Index: Makefile.am =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/Makefile.am,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Makefile.am 30 Dec 2005 05:13:08 -0000 1.9 --- Makefile.am 5 Mar 2006 06:25:12 -0000 1.10 *************** *** 14,18 **** check_LTLIBRARIES = libtest-openvrml.la ! check_PROGRAMS = $(TESTS) parse noinst_HEADERS = test_browser.h --- 14,18 ---- check_LTLIBRARIES = libtest-openvrml.la ! check_PROGRAMS = $(TESTS) parse-vrml97 parse-x3dvrml noinst_HEADERS = test_browser.h *************** *** 33,38 **** node_class_id_LDFLAGS = -lboost_unit_test_framework ! parse_SOURCES = parse.cpp ! parse_LDADD = libtest-openvrml.la EXTRA_DIST = \ --- 33,41 ---- node_class_id_LDFLAGS = -lboost_unit_test_framework ! parse_vrml97_SOURCES = parse_vrml97.cpp ! parse_vrml97_LDADD = libtest-openvrml.la ! ! parse_x3dvrml_SOURCES = parse_x3dvrml.cpp ! parse_x3dvrml_LDADD = libtest-openvrml.la EXTRA_DIST = \ --- NEW FILE: parse_x3dvrml.cpp --- // -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4; -*- // // Copyright 2004, 2005 Braden McDaniel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // # include <iostream> # include "test_browser.h" using namespace std; using namespace openvrml; int main() { try { test_browser b; b.create_vrml_from_stream(cin, "model/x3d+vrml"); } catch (invalid_vrml & ex) { cerr << ex.url << ':' << ex.line << ':' << ex.column << ": error: " << ex.what() << endl; return EXIT_FAILURE; } return EXIT_SUCCESS; } --- parse.cpp DELETED --- |
From: Braden M. <br...@us...> - 2006-03-05 06:25:15
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7087/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g Log Message: Fixed to avoid scanner assertion when parsing X3D VRML. Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** Vrml97Parser.g 28 Feb 2006 21:52:28 -0000 1.55 --- Vrml97Parser.g 5 Mar 2006 06:25:12 -0000 1.56 *************** *** 3,7 **** // OpenVRML // ! // Copyright 2000, 2001, 2003, 2004 Braden N. McDaniel // // This library is free software; you can redistribute it and/or --- 3,7 ---- // OpenVRML // ! // Copyright 2000, 2001, 2003, 2004, 2005, 2006 Braden N. McDaniel // // This library is free software; you can redistribute it and/or *************** *** 233,237 **** // in an identifier or a keyword // - token->setType(ID); while (this->isValidIdRestChars(this->c_)) { --- 233,236 ---- *************** *** 244,253 **** token->setText(token_string); ! if (expecting_field_type_) { ! this->identifyFieldType(*token); ! expecting_field_type_ = false; } - this->identifyKeyword(*token); - } else if (this->c_ == '.' || this->c_ == '+' --- 243,251 ---- token->setText(token_string); ! if (expecting_field_type_ && this->identifyFieldType(*token)) { ! this->expecting_field_type_ = false; ! } else if (!this->identifyKeyword(*token)) { ! token->setType(ID); } } else if (this->c_ == '.' || this->c_ == '+' |
From: Braden M. <br...@us...> - 2006-03-05 06:25:15
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7087 Modified Files: ChangeLog Log Message: Fixed to avoid scanner assertion when parsing X3D VRML. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1173 retrieving revision 1.1174 diff -C2 -d -r1.1173 -r1.1174 *** ChangeLog 5 Mar 2006 04:00:28 -0000 1.1173 --- ChangeLog 5 Mar 2006 06:25:12 -0000 1.1174 *************** *** 1,2 **** --- 1,26 ---- + 2006-03-05 Braden McDaniel <br...@en...> + + Fixed to avoid scanner assertion when parsing X3D VRML. + + * src/libopenvrml/openvrml/Vrml97Parser.g + (Vrml97Scanner::nextToken()): Only set the token type to ID after + other alternatives have been exhausted. + * tests/Makefile.am + (check_PROGRAMS): Removed "parse"; added "parse-vrml97" and + "parse-x3dvrml". + (parse_SOURCES): Removed. + (parse_LDADD): Removed. + (parse_vrml97_SOURCES): Added. + (parse_vrml97_LDADD): Added. + (parse_x3dvrml_SOURCES): Added. + (parse_x3dvrml_LDADD): Added. + * tests/parse.cpp: Removed file. Replaced by parse_vrml97.cpp. + * tests/parse_vrml97.cpp: Added file. VRML97 parser driver for + the test suite. + * tests/parse_x3dvrml.cpp: Added file. X3D VRML parser driver for + the test suite. + * tests/testsuite.at: Changed references to "parse" executable to + "parse-vrml97". Added minimal X3D VRML world test. + 2006-03-04 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-03-05 04:00:46
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18041/src/libopenvrml/openvrml Modified Files: browser.cpp browser.h node.cpp node.h Log Message: Fixed deadlock when externproto_node_class::clear_externproto_node_types is called during a call to externproto_node_type::do_create_node. Index: node.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node.h,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** node.h 20 Feb 2006 02:23:43 -0000 1.49 --- node.h 5 Mar 2006 04:00:32 -0000 1.50 *************** *** 201,204 **** --- 201,205 ---- const node_interface_set & interfaces) OPENVRML_THROW2(unsupported_interface, std::bad_alloc); + void shutdown(double time) OPENVRML_NOTHROW; protected: *************** *** 214,217 **** --- 215,219 ---- const node_interface_set & interfaces) const OPENVRML_THROW2(unsupported_interface, std::bad_alloc) = 0; + virtual void do_shutdown(double time) OPENVRML_NOTHROW; }; Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.134 retrieving revision 1.135 diff -C2 -d -r1.134 -r1.135 *** browser.cpp 25 Feb 2006 20:30:33 -0000 1.134 --- browser.cpp 5 Mar 2006 04:00:31 -0000 1.135 *************** *** 2263,2266 **** --- 2263,2268 ---- public openvrml::node_class { + friend class externproto_node_type; + struct load_proto; *************** *** 2282,2287 **** virtual ~externproto_node_class() OPENVRML_NOTHROW; - bool externproto_node_types_cleared() const OPENVRML_NOTHROW; - private: virtual const boost::shared_ptr<openvrml::node_type> --- 2284,2287 ---- *************** *** 2290,2293 **** --- 2290,2295 ---- OPENVRML_THROW2(openvrml::unsupported_interface, std::bad_alloc); + virtual void do_shutdown(double time) OPENVRML_NOTHROW; + void set_proto_node_class( const boost::weak_ptr<openvrml::proto_node_class> & proto_node_class = boost::weak_ptr<openvrml::proto_node_class>()) *************** *** 2301,2307 **** const boost::shared_ptr<const externproto_node_class> node_class_; - mutable boost::mutex mutex_; openvrml::node_interface_set interfaces_; typedef std::vector<boost::intrusive_ptr<openvrml::externproto_node> > externproto_nodes; --- 2303,2311 ---- const boost::shared_ptr<const externproto_node_class> node_class_; openvrml::node_interface_set interfaces_; + mutable boost::mutex mutex_; + boost::shared_ptr<openvrml::proto_node_type> proto_node_type_; + typedef std::vector<boost::intrusive_ptr<openvrml::externproto_node> > externproto_nodes; *************** *** 2309,2314 **** mutable externproto_nodes externproto_nodes_; - boost::shared_ptr<openvrml::proto_node_type> proto_node_type_; - public: externproto_node_type( --- 2313,2316 ---- *************** *** 2334,2338 **** const openvrml::initial_value_map & initial_values) const OPENVRML_THROW3(openvrml::unsupported_interface, std::bad_cast, ! std::bad_alloc); }; } --- 2336,2340 ---- const openvrml::initial_value_map & initial_values) const OPENVRML_THROW3(openvrml::unsupported_interface, std::bad_cast, ! std::bad_alloc); }; } *************** *** 5684,5697 **** */ externproto_node_class::~externproto_node_class() OPENVRML_NOTHROW ! { ! this->load_proto_thread_->join(); ! } ! ! bool externproto_node_class::externproto_node_types_cleared() const ! OPENVRML_NOTHROW ! { ! boost::mutex::scoped_lock lock(this->mutex_); ! return this->externproto_node_types_cleared_; ! } const boost::shared_ptr<openvrml::node_type> --- 5686,5690 ---- */ externproto_node_class::~externproto_node_class() OPENVRML_NOTHROW ! {} const boost::shared_ptr<openvrml::node_type> *************** *** 5720,5732 **** } void externproto_node_class::set_proto_node_class( const boost::weak_ptr<openvrml::proto_node_class> & proto_node_class) OPENVRML_THROW1(std::bad_alloc) { using boost::shared_ptr; using boost::static_pointer_cast; - boost::mutex::scoped_lock lock(this->mutex_); - this->proto_node_class_ = proto_node_class; --- 5713,5730 ---- } + void externproto_node_class::do_shutdown(double) OPENVRML_NOTHROW + { + this->load_proto_thread_->join(); + } + void externproto_node_class::set_proto_node_class( const boost::weak_ptr<openvrml::proto_node_class> & proto_node_class) OPENVRML_THROW1(std::bad_alloc) { + boost::mutex::scoped_lock lock(this->mutex_); + using boost::shared_ptr; using boost::static_pointer_cast; this->proto_node_class_ = proto_node_class; *************** *** 5762,5765 **** --- 5760,5764 ---- node_type->lock()->clear_externproto_nodes(); } + this->externproto_node_types_.clear(); this->externproto_node_types_cleared_ = true; *************** *** 5822,5826 **** std::bad_alloc) { ! boost::mutex::scoped_lock lock(this->mutex_); if (this->proto_node_type_) { --- 5821,5838 ---- std::bad_alloc) { ! // ! // externproto_node_class::mutex_ must be locked first. ! // externproto_node_class::clear_externproto_node_types must not be ! // initiated while we're doing this. ! // externproto_node_class::externproto_node_types_cleared_ is checked ! // later in this function and attempting to lock ! // externproto_node_class::mutex_ at that point creates a race ! // condition. ! // ! boost::mutex::scoped_lock ! lock_externproto_node_class( ! static_cast<const externproto_node_class &>(this->node_class()) ! .mutex_), ! lock(this->mutex_); if (this->proto_node_type_) { *************** *** 5834,5842 **** const externproto_node_class & node_class = static_cast<const externproto_node_class &>(this->node_class()); ! if (!node_class.externproto_node_types_cleared()) { this->externproto_nodes_.push_back(result); } else { assert(this->externproto_nodes_.empty()); } return result; } --- 5846,5855 ---- const externproto_node_class & node_class = static_cast<const externproto_node_class &>(this->node_class()); ! if (!node_class.externproto_node_types_cleared_) { this->externproto_nodes_.push_back(result); } else { assert(this->externproto_nodes_.empty()); } + return result; } *************** *** 7211,7214 **** --- 7224,7259 ---- } + namespace { + + struct OPENVRML_LOCAL shutdown_node_class : + std::unary_function<void, node_class_map_t::value_type> { + explicit shutdown_node_class(const double timestamp): + timestamp_(timestamp) + {} + + void operator()(const node_class_map_t::value_type & value) const + { + value.second->shutdown(this->timestamp_); + } + + private: + double timestamp_; + }; + } + + /** + * @brief Shut down the <code>node_class</code>es. + * + * @param[in] timestamp the current time. + */ + void + openvrml::browser::node_class_map::shutdown(const double timestamp) + OPENVRML_NOTHROW + { + boost::mutex::scoped_lock lock(this->mutex_); + for_each(this->map_.begin(), this->map_.end(), + shutdown_node_class(timestamp)); + } + /** * @internal *************** *** 7459,7462 **** --- 7504,7509 ---- if (this->scene_) { this->scene_->shutdown(now); } + + this->node_class_map_.shutdown(now); assert(this->viewpoint_list.empty()); assert(this->scoped_lights.empty()); *************** *** 7950,7953 **** --- 7997,8001 ---- double now = browser::current_time(); if (this->scene_) { this->scene_->shutdown(now); } + this->node_class_map_.shutdown(now); for_each(this->listeners_.begin(), this->listeners_.end(), boost::bind2nd(boost::mem_fun(&browser_listener::browser_changed), Index: browser.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.h,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** browser.h 25 Feb 2006 21:02:05 -0000 1.46 --- browser.h 5 Mar 2006 04:00:31 -0000 1.47 *************** *** 209,212 **** --- 209,214 ---- void render(viewer & v); + void shutdown(double timestamp) OPENVRML_NOTHROW; + private: // Index: node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/node.cpp,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** node.cpp 25 Feb 2006 08:37:27 -0000 1.75 --- node.cpp 5 Mar 2006 04:00:32 -0000 1.76 *************** *** 742,745 **** --- 742,769 ---- */ + /** + * @brief Shut down. + * + * This function is called during destruction of the @c browser, after + * the root scene has been shut down. This function delegates to + * @c node_class::do_shutdown. + * + * @param[in] time the current time. + */ + void openvrml::node_class::shutdown(const double time) OPENVRML_NOTHROW + { + this->do_shutdown(time); + } + + /** + * @brief Shut down. + * + * This function is called by @c node_class::shutdown. + * + * @param[in] time the current time. + */ + void openvrml::node_class::do_shutdown(double) OPENVRML_NOTHROW + {} + /** |
From: Braden M. <br...@us...> - 2006-03-05 04:00:38
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18041 Modified Files: ChangeLog Log Message: Fixed deadlock when externproto_node_class::clear_externproto_node_types is called during a call to externproto_node_type::do_create_node. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1172 retrieving revision 1.1173 diff -C2 -d -r1.1172 -r1.1173 *** ChangeLog 28 Feb 2006 21:52:28 -0000 1.1172 --- ChangeLog 5 Mar 2006 04:00:28 -0000 1.1173 *************** *** 1,2 **** --- 1,43 ---- + 2006-03-04 Braden McDaniel <br...@en...> + + Fixed deadlock when + externproto_node_class::clear_externproto_node_types is called + during a call to externproto_node_type::do_create_node. + + * src/libopenvrml/openvrml/browser.cpp + (externproto_node_class): Granted friendship to + externproto_node_type; removed externproto_node_types_cleared + accessor; override node_class::do_shutdown. + (externproto_node_class::~externproto_node_class()): Moved join to + load_proto_thread to externproto_node_class::do_shutdown. + (externproto_node_class::externproto_node_types_cleared() const): + Lock externproto_node_types_cleared_mutex_. + (externproto_node_class::do_shutdown(double)): Join + load_proto_thread_. + (externproto_node_type::do_create_node(const + boost::shared_ptr<openvrml::scope> &, const + openvrml::initial_value_map &) const): Lock + externproto_node_class::mutex_ to avoid a race condition when + externproto_node_class::clear_externproto_node_types is called. + (shutdown_node_class): Added function object; used by + openvrml::browser::node_class_map::shutdown. + (openvrml::browser::node_class_map::shutdown(double)): Added + function; shut down the node classes. + (openvrml::browser::~browser()): Call node_class_map::shutdown. + (openvrml::browser::set_world(resource_istream &)): Call + node_class_map::shutdown. + * src/libopenvrml/openvrml/browser.h + (openvrml::browser::node_class_map): Added shutdown member + function to call node_class::shutdown on the contained + node_classes. + * src/libopenvrml/openvrml/node.cpp + (openvrml::node_class::shutdown(double)): Added function; call + node_class::do_shutdown. + (openvrml::node_class::do_shutdown(double)): Added function; + default implementation does nothing. + * src/libopenvrml/openvrml/node.h + (openvrml::node_class): Added member function shutdown and virtual + member function do_shutdown. + 2006-02-28 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-02-28 21:52:31
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18704/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g Log Message: Backed out 2-27 change to defer setting the token type to ID. It's not clear that this change is correct, and it's complicating debugging other issues. Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** Vrml97Parser.g 27 Feb 2006 09:31:36 -0000 1.54 --- Vrml97Parser.g 28 Feb 2006 21:52:28 -0000 1.55 *************** *** 233,236 **** --- 233,237 ---- // in an identifier or a keyword // + token->setType(ID); while (this->isValidIdRestChars(this->c_)) { *************** *** 247,252 **** expecting_field_type_ = false; } ! ! if (!this->identifyKeyword(*token)) { token->setType(ID); } } else if (this->c_ == '.' --- 248,252 ---- expecting_field_type_ = false; } ! this->identifyKeyword(*token); } else if (this->c_ == '.' |
From: Braden M. <br...@us...> - 2006-02-28 21:52:31
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18704 Modified Files: ChangeLog Log Message: Backed out 2-27 change to defer setting the token type to ID. It's not clear that this change is correct, and it's complicating debugging other issues. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1171 retrieving revision 1.1172 diff -C2 -d -r1.1171 -r1.1172 *** ChangeLog 27 Feb 2006 21:14:07 -0000 1.1171 --- ChangeLog 28 Feb 2006 21:52:28 -0000 1.1172 *************** *** 1,2 **** --- 1,9 ---- + 2006-02-28 Braden McDaniel <br...@en...> + + * src/libopenvrml/openvrml/Vrml97Parser.g + (Vrml97Scanner::nextToken()): Backed out 2-27 change to defer + setting the token type to ID. It's not clear that this change is + correct, and it's complicating debugging other issues. + 2006-02-27 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-02-27 21:14:19
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26355 Modified Files: ChangeLog Log Message: Updated test programs to account for removal of openvrml::profile_id. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1170 retrieving revision 1.1171 diff -C2 -d -r1.1170 -r1.1171 *** ChangeLog 27 Feb 2006 08:25:14 -0000 1.1170 --- ChangeLog 27 Feb 2006 21:14:07 -0000 1.1171 *************** *** 1,4 **** --- 1,15 ---- 2006-02-27 Braden McDaniel <br...@en...> + Updated test programs to account for removal of + openvrml::profile_id. + + * tests/browser.cpp + * tests/parse.cpp + * tests/parse_anchor.cpp + * tests/test_browser.cpp + * tests/test_browser.h + + 2006-02-27 Braden McDaniel <br...@en...> + * src/libopenvrml/openvrml/Vrml97Parser.g (Vrml97Scanner::nextToken()): Defer setting the token type to ID |
From: Braden M. <br...@us...> - 2006-02-27 21:14:13
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26355/tests Modified Files: browser.cpp parse.cpp parse_anchor.cpp test_browser.cpp test_browser.h Log Message: Updated test programs to account for removal of openvrml::profile_id. Index: test_browser.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/test_browser.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_browser.h 28 Oct 2005 04:17:02 -0000 1.2 --- test_browser.h 27 Feb 2006 21:14:08 -0000 1.3 *************** *** 25,29 **** class test_browser : public openvrml::browser { public: ! explicit test_browser(openvrml::profile_id profile); private: --- 25,29 ---- class test_browser : public openvrml::browser { public: ! test_browser(); private: Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/browser.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** browser.cpp 5 Nov 2005 00:45:07 -0000 1.4 --- browser.cpp 27 Feb 2006 21:14:08 -0000 1.5 *************** *** 29,33 **** void create_vrml_from_stream() { ! test_browser b(vrml97_profile_id); const char vrmlstring[] = "Group {}"; --- 29,33 ---- void create_vrml_from_stream() { ! test_browser b; const char vrmlstring[] = "Group {}"; *************** *** 76,80 **** << "Shape {}" << endl; } ! test_browser b(vrml97_profile_id); const char vrmlstring[] = "Group {}"; stringstream vrmlstream(vrmlstring); --- 76,80 ---- << "Shape {}" << endl; } ! test_browser b; const char vrmlstring[] = "Group {}"; stringstream vrmlstream(vrmlstring); Index: test_browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/test_browser.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_browser.cpp 30 Dec 2005 05:11:01 -0000 1.3 --- test_browser.cpp 27 Feb 2006 21:14:08 -0000 1.4 *************** *** 22,27 **** # include "test_browser.h" ! test_browser::test_browser(const openvrml::profile_id profile): ! openvrml::browser(profile, std::cout, std::cerr) {} --- 22,27 ---- # include "test_browser.h" ! test_browser::test_browser(): ! openvrml::browser(std::cout, std::cerr) {} Index: parse_anchor.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/parse_anchor.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** parse_anchor.cpp 30 Oct 2005 03:20:18 -0000 1.4 --- parse_anchor.cpp 27 Feb 2006 21:14:08 -0000 1.5 *************** *** 29,33 **** try { ! test_browser b(vrml97_profile_id); const char vrmlstring[] = --- 29,33 ---- try { ! test_browser b; const char vrmlstring[] = Index: parse.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/parse.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** parse.cpp 28 Oct 2005 04:17:02 -0000 1.3 --- parse.cpp 27 Feb 2006 21:14:08 -0000 1.4 *************** *** 27,31 **** { try { ! test_browser b(vrml97_profile_id); b.create_vrml_from_stream(cin); } catch (invalid_vrml & ex) { --- 27,31 ---- { try { ! test_browser b; b.create_vrml_from_stream(cin); } catch (invalid_vrml & ex) { |
From: Braden M. <br...@us...> - 2006-02-27 09:31:40
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7113/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g Log Message: Defer setting the token type to ID until there are no other possibilities. Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** Vrml97Parser.g 27 Feb 2006 08:25:22 -0000 1.53 --- Vrml97Parser.g 27 Feb 2006 09:31:36 -0000 1.54 *************** *** 204,214 **** antlr::RefToken Vrml97Scanner::nextToken() { ! using std::ostringstream; using antlr::RefToken; using antlr::CommonToken; RefToken token(new CommonToken); ! ostringstream token_string; ! token_string.unsetf(ostringstream::skipws); if (this->read_too_much_) { --- 204,213 ---- antlr::RefToken Vrml97Scanner::nextToken() { ! using std::string; using antlr::RefToken; using antlr::CommonToken; RefToken token(new CommonToken); ! string token_string; if (this->read_too_much_) { *************** *** 236,240 **** while (this->isValidIdRestChars(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 235,239 ---- while (this->isValidIdRestChars(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 242,246 **** read_too_much_ = true; ! token->setText(token_string.str()); if (expecting_field_type_) { --- 241,245 ---- read_too_much_ = true; ! token->setText(token_string); if (expecting_field_type_) { *************** *** 260,264 **** if (this->c_ == '+' || this->c_ == '-') { ! token_string << this->c_; this->getNextChar(); read_too_much_ = true; --- 259,263 ---- if (this->c_ == '+' || this->c_ == '-') { ! token_string += this->c_; this->getNextChar(); read_too_much_ = true; *************** *** 271,275 **** token->setType(INTEGER); ! token_string << this->c_; getNextChar(); --- 270,274 ---- token->setType(INTEGER); ! token_string += this->c_; getNextChar(); *************** *** 282,294 **** token->setType(HEX_INTEGER); ! token_string << this->c_; getNextChar(); while (isxdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } } else { while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 281,293 ---- token->setType(HEX_INTEGER); ! token_string += this->c_; getNextChar(); while (isxdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } } else { while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 301,309 **** token->setType(REAL); ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 300,308 ---- token->setType(REAL); ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 313,317 **** // in an exponent // ! token_string << this->c_; getNextChar(); --- 312,316 ---- // in an exponent // ! token_string += this->c_; getNextChar(); *************** *** 320,328 **** // exponent may be signed // ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 319,327 ---- // exponent may be signed // ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 335,339 **** token->setType(REAL); ! token_string << this->c_; getNextChar(); --- 334,338 ---- token->setType(REAL); ! token_string += this->c_; getNextChar(); *************** *** 342,350 **** // exponent may be signed // ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 341,349 ---- // exponent may be signed // ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 359,363 **** // ! token_string << this->c_; getNextChar(); --- 358,362 ---- // ! token_string += this->c_; getNextChar(); *************** *** 367,371 **** while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 366,370 ---- while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 375,379 **** // in an exponent // ! token_string << this->c_; getNextChar(); --- 374,378 ---- // in an exponent // ! token_string += this->c_; getNextChar(); *************** *** 382,390 **** // exponent may be signed // ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } --- 381,389 ---- // exponent may be signed // ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } *************** *** 398,402 **** } ! token->setText(token_string.str()); } else if (this->c_ == '"') { --- 397,401 ---- } ! token->setText(token_string); } else if (this->c_ == '"') { *************** *** 406,421 **** token->setType(STRING); ! token_string << this->c_; this->getNextChar(); char prev_char('\0'); while (this->c_ != '"' || prev_char == '\\') { ! token_string << this->c_; prev_char = this->c_; this->getNextChar(); } ! token_string << this->c_; // add the closing quote ! token->setText(token_string.str()); } else { --- 405,420 ---- token->setType(STRING); ! token_string += this->c_; this->getNextChar(); char prev_char('\0'); while (this->c_ != '"' || prev_char == '\\') { ! token_string += this->c_; prev_char = this->c_; this->getNextChar(); } ! token_string += this->c_; // add the closing quote ! token->setText(token_string); } else { *************** *** 423,429 **** // terminal symbol or unidentified character // ! token_string << this->c_; ! token->setText(token_string.str()); this->identifyTerminalSymbol(*token); --- 422,428 ---- // terminal symbol or unidentified character // ! token_string += this->c_; ! token->setText(token_string); this->identifyTerminalSymbol(*token); |
From: Braden M. <br...@us...> - 2006-02-27 08:25:25
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1978/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g Log Message: Defer setting the token type to ID until there are no other possibilities. Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** Vrml97Parser.g 27 Feb 2006 02:59:41 -0000 1.52 --- Vrml97Parser.g 27 Feb 2006 08:25:22 -0000 1.53 *************** *** 204,213 **** antlr::RefToken Vrml97Scanner::nextToken() { ! using std::string; using antlr::RefToken; using antlr::CommonToken; RefToken token(new CommonToken); ! string token_string; if (this->read_too_much_) { --- 204,214 ---- antlr::RefToken Vrml97Scanner::nextToken() { ! using std::ostringstream; using antlr::RefToken; using antlr::CommonToken; RefToken token(new CommonToken); ! ostringstream token_string; ! token_string.unsetf(ostringstream::skipws); if (this->read_too_much_) { *************** *** 233,240 **** // in an identifier or a keyword // - token->setType(ID); while (this->isValidIdRestChars(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 234,240 ---- // in an identifier or a keyword // while (this->isValidIdRestChars(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 242,246 **** read_too_much_ = true; ! token->setText(token_string); if (expecting_field_type_) { --- 242,246 ---- read_too_much_ = true; ! token->setText(token_string.str()); if (expecting_field_type_) { *************** *** 248,252 **** expecting_field_type_ = false; } ! this->identifyKeyword(*token); } else if (this->c_ == '.' --- 248,253 ---- expecting_field_type_ = false; } ! ! if (!this->identifyKeyword(*token)) { token->setType(ID); } } else if (this->c_ == '.' *************** *** 259,263 **** if (this->c_ == '+' || this->c_ == '-') { ! token_string += this->c_; this->getNextChar(); read_too_much_ = true; --- 260,264 ---- if (this->c_ == '+' || this->c_ == '-') { ! token_string << this->c_; this->getNextChar(); read_too_much_ = true; *************** *** 270,274 **** token->setType(INTEGER); ! token_string += this->c_; getNextChar(); --- 271,275 ---- token->setType(INTEGER); ! token_string << this->c_; getNextChar(); *************** *** 281,293 **** token->setType(HEX_INTEGER); ! token_string += this->c_; getNextChar(); while (isxdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } } else { while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 282,294 ---- token->setType(HEX_INTEGER); ! token_string << this->c_; getNextChar(); while (isxdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } } else { while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 300,308 **** token->setType(REAL); ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 301,309 ---- token->setType(REAL); ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 312,316 **** // in an exponent // ! token_string += this->c_; getNextChar(); --- 313,317 ---- // in an exponent // ! token_string << this->c_; getNextChar(); *************** *** 319,327 **** // exponent may be signed // ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 320,328 ---- // exponent may be signed // ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 334,338 **** token->setType(REAL); ! token_string += this->c_; getNextChar(); --- 335,339 ---- token->setType(REAL); ! token_string << this->c_; getNextChar(); *************** *** 341,349 **** // exponent may be signed // ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 342,350 ---- // exponent may be signed // ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 358,362 **** // ! token_string += this->c_; getNextChar(); --- 359,363 ---- // ! token_string << this->c_; getNextChar(); *************** *** 366,370 **** while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 367,371 ---- while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 374,378 **** // in an exponent // ! token_string += this->c_; getNextChar(); --- 375,379 ---- // in an exponent // ! token_string << this->c_; getNextChar(); *************** *** 381,389 **** // exponent may be signed // ! token_string += this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string += this->c_; getNextChar(); } --- 382,390 ---- // exponent may be signed // ! token_string << this->c_; getNextChar(); while (isdigit(this->c_)) { ! token_string << this->c_; getNextChar(); } *************** *** 397,401 **** } ! token->setText(token_string); } else if (this->c_ == '"') { --- 398,402 ---- } ! token->setText(token_string.str()); } else if (this->c_ == '"') { *************** *** 405,420 **** token->setType(STRING); ! token_string += this->c_; this->getNextChar(); char prev_char('\0'); while (this->c_ != '"' || prev_char == '\\') { ! token_string += this->c_; prev_char = this->c_; this->getNextChar(); } ! token_string += this->c_; // add the closing quote ! token->setText(token_string); } else { --- 406,421 ---- token->setType(STRING); ! token_string << this->c_; this->getNextChar(); char prev_char('\0'); while (this->c_ != '"' || prev_char == '\\') { ! token_string << this->c_; prev_char = this->c_; this->getNextChar(); } ! token_string << this->c_; // add the closing quote ! token->setText(token_string.str()); } else { *************** *** 422,428 **** // terminal symbol or unidentified character // ! token_string += this->c_; ! token->setText(token_string); this->identifyTerminalSymbol(*token); --- 423,429 ---- // terminal symbol or unidentified character // ! token_string << this->c_; ! token->setText(token_string.str()); this->identifyTerminalSymbol(*token); |
From: Braden M. <br...@us...> - 2006-02-27 08:25:25
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1978 Modified Files: ChangeLog Log Message: Defer setting the token type to ID until there are no other possibilities. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1169 retrieving revision 1.1170 diff -C2 -d -r1.1169 -r1.1170 *** ChangeLog 27 Feb 2006 02:59:41 -0000 1.1169 --- ChangeLog 27 Feb 2006 08:25:14 -0000 1.1170 *************** *** 1,2 **** --- 1,8 ---- + 2006-02-27 Braden McDaniel <br...@en...> + + * src/libopenvrml/openvrml/Vrml97Parser.g + (Vrml97Scanner::nextToken()): Defer setting the token type to ID + until there are no other possibilities. + 2006-02-26 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-02-27 02:59:47
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5109/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g scope.cpp scope.h Log Message: Changed openvrml::scope's parent pointer to point to a const scope. Index: scope.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/scope.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** scope.h 12 Feb 2006 09:40:17 -0000 1.12 --- scope.h 27 Feb 2006 02:59:41 -0000 1.13 *************** *** 42,55 **** std::map<std::string, node *> named_node_map; const std::string id_; ! const boost::shared_ptr<scope> parent_; public: explicit scope(const std::string & id, ! const boost::shared_ptr<scope> & parent = boost::shared_ptr<scope>()); const std::string & id() const OPENVRML_NOTHROW; ! const boost::shared_ptr<scope> & parent() const OPENVRML_NOTHROW; bool add_type(const boost::shared_ptr<node_type> & type) --- 42,55 ---- std::map<std::string, node *> named_node_map; const std::string id_; ! const boost::shared_ptr<const scope> parent_; public: explicit scope(const std::string & id, ! const boost::shared_ptr<const scope> & parent = boost::shared_ptr<scope>()); const std::string & id() const OPENVRML_NOTHROW; ! const boost::shared_ptr<const scope> & parent() const OPENVRML_NOTHROW; bool add_type(const boost::shared_ptr<node_type> & type) Index: scope.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/scope.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** scope.cpp 25 Feb 2006 08:37:27 -0000 1.17 --- scope.cpp 27 Feb 2006 02:59:41 -0000 1.18 *************** *** 71,75 **** * @internal * ! * @var const boost::shared_ptr<openvrml::scope> openvrml::scope::parent_ * * @brief The parent scope; null if the scope is a root scope. --- 71,75 ---- * @internal * ! * @var const boost::shared_ptr<const openvrml::scope> openvrml::scope::parent_ * * @brief The parent scope; null if the scope is a root scope. *************** *** 86,90 **** */ openvrml::scope::scope(const std::string & id, ! const boost::shared_ptr<scope> & parent): id_(id), parent_(parent) --- 86,90 ---- */ openvrml::scope::scope(const std::string & id, ! const boost::shared_ptr<const scope> & parent): id_(id), parent_(parent) *************** *** 107,112 **** * a root <code>scope</code>. */ ! const boost::shared_ptr<openvrml::scope> & openvrml::scope::parent() const ! OPENVRML_NOTHROW { return this->parent_; --- 107,112 ---- * a root <code>scope</code>. */ ! const boost::shared_ptr<const openvrml::scope> & ! openvrml::scope::parent() const OPENVRML_NOTHROW { return this->parent_; Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** Vrml97Parser.g 27 Feb 2006 00:21:42 -0000 1.51 --- Vrml97Parser.g 27 Feb 2006 02:59:41 -0000 1.52 *************** *** 727,734 **** // string impl_id; do { ! impl_id = '#' + proto_scope->id() + impl_id; ! } while ((proto_scope = proto_scope->parent())->parent()); ! impl_id = proto_scope->id() + impl_id; scene.browser().add_node_class(impl_id, node_class); --- 727,735 ---- // string impl_id; + shared_ptr<const openvrml::scope> s = proto_scope; do { ! impl_id = '#' + s->id() + impl_id; ! } while ((s = s->parent())->parent()); ! impl_id = s->id() + impl_id; scene.browser().add_node_class(impl_id, node_class); *************** *** 759,763 **** protoInterfaceDeclaration[ openvrml::scene & scene, ! const boost::shared_ptr<openvrml::scope> & outer_scope, const std::string & proto_id, node_interface_set & interfaces, --- 760,764 ---- protoInterfaceDeclaration[ openvrml::scene & scene, ! const boost::shared_ptr<const openvrml::scope> & outer_scope, const std::string & proto_id, node_interface_set & interfaces, |
From: Braden M. <br...@us...> - 2006-02-27 02:59:46
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5109 Modified Files: ChangeLog Log Message: Changed openvrml::scope's parent pointer to point to a const scope. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1168 retrieving revision 1.1169 diff -C2 -d -r1.1168 -r1.1169 *** ChangeLog 27 Feb 2006 01:26:04 -0000 1.1168 --- ChangeLog 27 Feb 2006 02:59:41 -0000 1.1169 *************** *** 1,4 **** --- 1,24 ---- 2006-02-26 Braden McDaniel <br...@en...> + Changed openvrml::scope's parent pointer to point to a const + scope. + + * src/libopenvrml/openvrml/Vrml97Parser.g + (proto): Changed impl_id creation code to use a + boost::shared_ptr<const openvrml::scope>. + (protoInterfaceDeclaration): Changed to take a + boost::shared_ptr<const openvrml::scope>. + * src/libopenvrml/openvrml/scope.cpp + (openvrml::scope::scope(const std::string &, const + boost::shared_ptr<const scope> &)): Changed to take a + boost::shared_ptr<const openvrml::scope> as the parent pointer. + (openvrml::scope::parent() const): Changed to return a + boost::shared_ptr<const openvrml::scope> &. + * src/libopenvrml/openvrml/scope.h + (openvrml::scope): Changed parent_ member to be a + boost::shared_ptr<const openvrml::scope>. + + 2006-02-26 Braden McDaniel <br...@en...> + Parse X3D IMPORT and EXPORT statements. We don't actually do anything with them yet. |
From: Braden M. <br...@us...> - 2006-02-27 01:26:10
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25658 Modified Files: ChangeLog Log Message: Parse X3D IMPORT and EXPORT statements. We don't actually do anything with them yet. From Andrew Grieve <sg...@us...> Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1167 retrieving revision 1.1168 diff -C2 -d -r1.1167 -r1.1168 *** ChangeLog 27 Feb 2006 00:42:02 -0000 1.1167 --- ChangeLog 27 Feb 2006 01:26:04 -0000 1.1168 *************** *** 1,4 **** --- 1,16 ---- 2006-02-26 Braden McDaniel <br...@en...> + Parse X3D IMPORT and EXPORT statements. We don't actually do + anything with them yet. + From Andrew Grieve <sg...@us...> + + * src/libopenvrml/openvrml/X3DVrmlParser.g + (statement): Override statement production from Vrml97Parser to + parse importStatement and exportStatement alternatives. + (importStatement): Added production to parse IMPORT statements. + (exportStatement): Added production to parse EXPORT statements. + + 2006-02-26 Braden McDaniel <br...@en...> + Treat colon (':') as an invalid identifier character in the X3D VRML format. The X3D Classic VRML encoding specification doesn't |
From: Braden M. <br...@us...> - 2006-02-27 01:26:09
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25658/src/libopenvrml/openvrml Modified Files: X3DVrmlParser.g Log Message: Parse X3D IMPORT and EXPORT statements. We don't actually do anything with them yet. From Andrew Grieve <sg...@us...> Index: X3DVrmlParser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/X3DVrmlParser.g,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** X3DVrmlParser.g 27 Feb 2006 00:42:02 -0000 1.14 --- X3DVrmlParser.g 27 Feb 2006 01:26:04 -0000 1.15 *************** *** 257,260 **** --- 257,289 ---- ; + statement[openvrml::scene & scene, + std::vector<boost::intrusive_ptr<openvrml::node> > & nodes, + const boost::shared_ptr<openvrml::scope> & scope] + options { defaultErrorHandler=false; } + { + boost::intrusive_ptr<openvrml::node> node; + } + : node=nodeStatement[scene, scope, std::string()] { + // + // If we are unable to parse a node, node will be null. + // + if (node) { nodes.push_back(node); } + } + | protoStatement[scene, scope] + | routeStatement[*scope] + | importStatement + | exportStatement + ; + + importStatement + options { defaultErrorHandler=false; } + : KEYWORD_IMPORT ID PERIOD ID KEYWORD_AS ID + ; + + exportStatement + options { defaultErrorHandler=false; } + : KEYWORD_EXPORT ID KEYWORD_AS ID + ; + fieldType returns [openvrml::field_value::type_id ft = |
From: Braden M. <br...@us...> - 2006-02-27 00:42:08
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv906/src/libopenvrml/openvrml Modified Files: X3DVrmlParser.g Log Message: Treat colon (':') as an invalid identifier character in the X3D VRML format. The X3D Classic VRML encoding specification doesn't list colon as an invalid character in an identifier; however, in light of the fact that colon is used as a terminal symbol following an identifier in this format, this must be an error in the specification. Index: X3DVrmlParser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/X3DVrmlParser.g,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** X3DVrmlParser.g 26 Feb 2006 18:00:29 -0000 1.13 --- X3DVrmlParser.g 27 Feb 2006 00:42:02 -0000 1.14 *************** *** 55,58 **** --- 55,60 ---- protected: + virtual bool isValidIdRestChars(char); + virtual bool identifyKeyword(antlr::Token &); virtual bool identifyFieldType(antlr::Token &); *************** *** 104,107 **** --- 106,120 ---- {} + // + // The X3D Classic VRML encoding specification doesn't list colon (':') as + // an invalid character in an identifier; however, in light of the fact that + // colon is used as a terminal symbol following an identifier in this format, + // this must be an error. + // + inline bool X3DVrmlScanner::isValidIdRestChars(const char c) + { + return this->Vrml97Scanner::isValidIdRestChars(c) && (c != 0x3a); + } + inline bool X3DVrmlScanner::identifyKeyword(antlr::Token & token) { |
From: Braden M. <br...@us...> - 2006-02-27 00:42:07
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv906 Modified Files: ChangeLog Log Message: Treat colon (':') as an invalid identifier character in the X3D VRML format. The X3D Classic VRML encoding specification doesn't list colon as an invalid character in an identifier; however, in light of the fact that colon is used as a terminal symbol following an identifier in this format, this must be an error in the specification. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1166 retrieving revision 1.1167 diff -C2 -d -r1.1166 -r1.1167 *** ChangeLog 27 Feb 2006 00:21:41 -0000 1.1166 --- ChangeLog 27 Feb 2006 00:42:02 -0000 1.1167 *************** *** 1,4 **** --- 1,17 ---- 2006-02-26 Braden McDaniel <br...@en...> + Treat colon (':') as an invalid identifier character in the X3D + VRML format. The X3D Classic VRML encoding specification doesn't + list colon as an invalid character in an identifier; however, in + light of the fact that colon is used as a terminal symbol + following an identifier in this format, this must be an error in + the specification. + + * src/libopenvrml/openvrml/X3DVrmlParser.g + (X3DVrmlScanner): Override isValidIdRestChars to identify colon + (':') as an invalid character in an identifier. + + 2006-02-26 Braden McDaniel <br...@en...> + Made character identification functions used by the scanner protected virtual member functions of Vrml97Scanner so that they |
From: Braden M. <br...@us...> - 2006-02-27 00:21:46
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23075/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g Log Message: Made character identification functions used by the scanner protected virtual member functions of Vrml97Scanner so that they can be overridden by subclasses (specifically X3DVrmlScanner). Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** Vrml97Parser.g 27 Feb 2006 00:01:18 -0000 1.50 --- Vrml97Parser.g 27 Feb 2006 00:21:42 -0000 1.51 *************** *** 92,95 **** --- 92,101 ---- protected: void expectFieldType(); + + virtual bool isValidIdFirstChar(char); + virtual bool isValidIdRestChars(char); + virtual bool isWhitespaceChar(char); + virtual bool isNewlineChar(char); + virtual bool identifyKeyword(antlr::Token &); virtual bool identifyFieldType(antlr::Token &); *************** *** 134,142 **** namespace { - bool isValidIdFirstChar(char); - bool isValidIdRestChars(char); - bool isWhitespaceChar(char); - bool isNewlineChar(char); - const int Vrml97Scanner::EOF_ (antlr::Token::EOF_TYPE); --- 140,143 ---- *************** *** 216,222 **** } ! while (isWhitespaceChar(this->c_) || this->c_ == '#') { if (this->c_ == '#') { ! while (!(isNewlineChar(this->c_) || this->c_ == EOF)) { this->getNextChar(); } --- 217,223 ---- } ! while (this->isWhitespaceChar(this->c_) || this->c_ == '#') { if (this->c_ == '#') { ! while (!(this->isNewlineChar(this->c_) || this->c_ == EOF)) { this->getNextChar(); } *************** *** 228,232 **** if (this->c_ == EOF) { token->setType(EOF_); ! } else if (isValidIdFirstChar(this->c_)) { // // in an identifier or a keyword --- 229,233 ---- if (this->c_ == EOF) { token->setType(EOF_); ! } else if (this->isValidIdFirstChar(this->c_)) { // // in an identifier or a keyword *************** *** 234,238 **** token->setType(ID); ! while (isValidIdRestChars(this->c_)) { token_string += this->c_; getNextChar(); --- 235,239 ---- token->setType(ID); ! while (this->isValidIdRestChars(this->c_)) { token_string += this->c_; getNextChar(); *************** *** 446,450 **** // is a linefeed AND the previous character is a carriage return. // ! if (isNewlineChar(this->c_)) { if (!((this->c_ == 0x0a) && (this->prev_char_ == 0x0d))) { ++this->line_; --- 447,451 ---- // is a linefeed AND the previous character is a carriage return. // ! if (this->isNewlineChar(this->c_)) { if (!((this->c_ == 0x0a) && (this->prev_char_ == 0x0d))) { ++this->line_; *************** *** 459,462 **** --- 460,510 ---- } + inline bool Vrml97Scanner::isValidIdFirstChar(const char c) + { + if (((c >= 0x30) && (c <= 0x39)) + || (c == 0x2b) + || (c == 0x2d) + || !this->isValidIdRestChars(c)) { + return false; + } + return true; + } + + inline bool Vrml97Scanner::isValidIdRestChars(const char c) + { + if ( c <= 0x20 + || c == 0x22 + || c == 0x23 + || c == 0x27 + || c == 0x2c + || c == 0x2e + || c == 0x5b + || c == 0x5c + || c == 0x5d + || c == 0x7b + || c == 0x7d + || c == 0x7f) { + return false; + } + return true; + } + + inline bool Vrml97Scanner::isWhitespaceChar(const char c) + { + if ( c == 0x0d // carriage return + || c == 0x0a // linefeed + || c == 0x20 // space + || c == 0x09 // tab + || c == 0x2c) { // comma + return true; + } + return false; + } + + inline bool Vrml97Scanner::isNewlineChar(const char c) + { + return ((c == 0x0a) || (c == 0x0d)); + } + inline bool Vrml97Scanner::identifyKeyword(antlr::Token & token) { *************** *** 523,573 **** } - inline bool isValidIdFirstChar(const char c) - { - if (((c >= 0x30) && (c <= 0x39)) - || (c == 0x2b) - || (c == 0x2d) - || !isValidIdRestChars(c)) { - return false; - } - return true; - } - - inline bool isValidIdRestChars(const char c) - { - if ( c <= 0x20 - || c == 0x22 - || c == 0x23 - || c == 0x27 - || c == 0x2c - || c == 0x2e - || c == 0x5b - || c == 0x5c - || c == 0x5d - || c == 0x7b - || c == 0x7d - || c == 0x7f) { - return false; - } - return true; - } - - inline bool isWhitespaceChar(const char c) - { - if ( c == 0x0d // carriage return - || c == 0x0a // linefeed - || c == 0x20 // space - || c == 0x09 // tab - || c == 0x2c) { // comma - return true; - } - return false; - } - - inline bool isNewlineChar(const char c) - { - return ((c == 0x0a) || (c == 0x0d)); - } - const openvrml::node_interface script_node_interfaces[] = { openvrml::node_interface(openvrml::node_interface::exposedfield_id, --- 571,574 ---- |
From: Braden M. <br...@us...> - 2006-02-27 00:21:46
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23075 Modified Files: ChangeLog Log Message: Made character identification functions used by the scanner protected virtual member functions of Vrml97Scanner so that they can be overridden by subclasses (specifically X3DVrmlScanner). Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1165 retrieving revision 1.1166 diff -C2 -d -r1.1165 -r1.1166 *** ChangeLog 27 Feb 2006 00:01:18 -0000 1.1165 --- ChangeLog 27 Feb 2006 00:21:41 -0000 1.1166 *************** *** 1,4 **** --- 1,26 ---- 2006-02-26 Braden McDaniel <br...@en...> + Made character identification functions used by the scanner + protected virtual member functions of Vrml97Scanner so that they + can be overridden by subclasses (specifically X3DVrmlScanner). + + * src/libopenvrml/openvrml/Vrml97Parser.g + (Vrml97Scanner): Added protected virtual member functions + isValidIdFirstChar, isValidIdRestChars, isWhitespaceChar, and + isNewlineChar. + (Vrml97Scanner::nextToken()): Decorate calls to + isValidIdFirstChar, isValidIdRestChars, isWhitespaceChar, and + isNewlineChar with "this->" now that they are member functions. + (isValidIdFirstChar(char)): Removed function. (Moved to + Vrml97Scanner::isValidIdFirstChar.) + (isValidIdRestChars(char)): Removed function. (Moved to + Vrml97Scanner::isValidIdRestChars.) + (isWhitespaceChar(char)): Removed function. (Moved to + Vrml97Scanner::isWhitespaceChar.) + (isNewlineChar(char)): Removed function. (Moved to + Vrml97Scanner::isNewlineChar.) + + 2006-02-26 Braden McDaniel <br...@en...> + Removed isHexDigit function; isxdigit works fine. |
From: Braden M. <br...@us...> - 2006-02-27 00:01:21
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9029 Modified Files: ChangeLog Log Message: Removed isHexDigit function; isxdigit works fine. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1164 retrieving revision 1.1165 diff -C2 -d -r1.1164 -r1.1165 *** ChangeLog 26 Feb 2006 18:00:29 -0000 1.1164 --- ChangeLog 27 Feb 2006 00:01:18 -0000 1.1165 *************** *** 1,4 **** --- 1,13 ---- 2006-02-26 Braden McDaniel <br...@en...> + Removed isHexDigit function; isxdigit works fine. + + * src/libopenvrml/openvrml/Vrml97Parser.g: + (isHexDigit(char)): Removed. + (Vrml97Scanner::nextToken()): Replaced use of isHexDigit with + isxdigit. + + 2006-02-26 Braden McDaniel <br...@en...> + Override identifyTerminalSymbol in X3DVrmlScanner to identify ':'. From Andrew Grieve <sg...@us...> |
From: Braden M. <br...@us...> - 2006-02-27 00:01:21
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9029/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g Log Message: Removed isHexDigit function; isxdigit works fine. Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** Vrml97Parser.g 26 Feb 2006 18:00:29 -0000 1.49 --- Vrml97Parser.g 27 Feb 2006 00:01:18 -0000 1.50 *************** *** 138,142 **** bool isWhitespaceChar(char); bool isNewlineChar(char); - bool isHexDigit(char); const int Vrml97Scanner::EOF_ (antlr::Token::EOF_TYPE); --- 138,141 ---- *************** *** 283,287 **** token_string += this->c_; getNextChar(); ! while (isHexDigit(this->c_)) { token_string += this->c_; getNextChar(); --- 282,286 ---- token_string += this->c_; getNextChar(); ! while (isxdigit(this->c_)) { token_string += this->c_; getNextChar(); *************** *** 571,588 **** } - inline bool isHexDigit(const char c) - { - if ( isdigit(c) - || c == 'A' || c == 'a' - || c == 'B' || c == 'b' - || c == 'C' || c == 'c' - || c == 'D' || c == 'd' - || c == 'E' || c == 'e' - || c == 'F' || c == 'f') { - return true; - } - return false; - } - const openvrml::node_interface script_node_interfaces[] = { openvrml::node_interface(openvrml::node_interface::exposedfield_id, --- 570,573 ---- |
From: Braden M. <br...@us...> - 2006-02-26 18:00:35
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5407/src/libopenvrml/openvrml Modified Files: Vrml97Parser.g X3DVrmlParser.g Log Message: Override identifyTerminalSymbol in X3DVrmlScanner to identify ':'. Index: X3DVrmlParser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/X3DVrmlParser.g,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** X3DVrmlParser.g 26 Feb 2006 17:48:17 -0000 1.12 --- X3DVrmlParser.g 26 Feb 2006 18:00:29 -0000 1.13 *************** *** 57,60 **** --- 57,61 ---- virtual bool identifyKeyword(antlr::Token &); virtual bool identifyFieldType(antlr::Token &); + virtual bool identifyTerminalSymbol(antlr::Token & token); }; } *************** *** 171,174 **** --- 172,189 ---- } + inline bool X3DVrmlScanner::identifyTerminalSymbol(antlr::Token & token) + { + if (!this->Vrml97Scanner::identifyTerminalSymbol(token)) { + assert(token.getType() == antlr::Token::INVALID_TYPE); + const std::string token_text(token.getText()); + if (token_text == ":") { + token.setType(COLON); + } else { + return false; + } + } + return true; + } + } // namespace Index: Vrml97Parser.g =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/Vrml97Parser.g,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** Vrml97Parser.g 26 Feb 2006 09:57:35 -0000 1.48 --- Vrml97Parser.g 26 Feb 2006 18:00:29 -0000 1.49 *************** *** 94,101 **** virtual bool identifyKeyword(antlr::Token &); virtual bool identifyFieldType(antlr::Token &); private: void getNextChar(); - bool identifyTerminalSymbol(antlr::Token &); std::istream & in_; --- 94,101 ---- virtual bool identifyKeyword(antlr::Token &); virtual bool identifyFieldType(antlr::Token &); + virtual bool identifyTerminalSymbol(antlr::Token &); private: void getNextChar(); std::istream & in_; *************** *** 1915,1919 **** intValue returns [int32 val] options { defaultErrorHandler=false; } ! : i0:INTEGER { val = atol(i0->getText().c_str()); } --- 1915,1919 ---- intValue returns [int32 val] options { defaultErrorHandler=false; } ! : i0:INTEGER { val = atol(i0->getText().c_str()); } |