From: Scott D. F. <sd...@ms...> - 2005-10-14 18:26:26
|
If you do produce a new release, *please* see that the problem described below is corrected in it. I believe it affects enough users to justify making it a priority. Many thanks, Scott There is a mistake in the grammar that OpenC++'s parser expects. Prior to GCC 3.4, this was never a problem, but since GCC 3.4, the STL library uses the syntax that the broken grammar doesn't accept. In particular OpenC++ expects template declarations to look like this: template<typename T>... With an identifier like "T" following typename, but in fact the following is legal C++: template<typename>... This causes occ to issue errors whenever it parses the GCC library files that include the latter syntax (e.g., bits/cpp_type_traits.h). I fixed the problem by changing the Parser::rTempArgDeclaration member function definition in parser/Parser.cc. I changed this line (roughly the third line in the function): if(t0 =3D=3D CLASS && lex->LookAhead(1) =3D=3D Identifier){ To this: if(t0 =3D=3D CLASS && !(lex->LookAhead(1) =3D=3D Identifier)){ lex->GetToken(tk1); decl =3D PtreeUtil::List(new Leaf(tk1)); } else if(t0 =3D=3D CLASS && lex->LookAhead(1) =3D=3D Identifier){ I am not positive that my Ptree representation for the template argument declaration (temp.arg.declaration) is exactly what the OpenC++ maintainers would want, but it seemed to make sense to me. On 10/14/05, Gilles J. Seguin <se...@in...> wrote: > > Grzegorz can i have the go ahead for a new release. > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: > Power Architecture Resource Center: Free content, downloads, discussions, > and more. http://solutions.newsforge.com/ibmarch.tmpl > _______________________________________________ > Opencxx-users mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opencxx-users > |