Compile the C++ parser library with Sun CC 5.9.

Things you mustn't do:
1) end an enum with a comma

2) #include <cxxxx> and not use std::

3) use anonymous structures

All three things are invalid C++. Anonymous structures inside
anonymous unions are allowed by GCC, but that doesn't mean it's valid.
This commit is contained in:
Thiago Macieira
2009-07-27 21:47:03 +02:00
parent 88549a4b1d
commit d0457b70e3
24 changed files with 321 additions and 306 deletions

View File

@@ -93,22 +93,22 @@ public:
{ _line = line; }
bool isHidden() const
{ return _hidden; }
{ return f._hidden; }
void setHidden(bool isHidden)
{ _hidden = isHidden; }
{ f._hidden = isHidden; }
bool isFunctionLike() const
{ return _functionLike; }
{ return f._functionLike; }
void setFunctionLike(bool isFunctionLike)
{ _functionLike = isFunctionLike; }
{ f._functionLike = isFunctionLike; }
bool isVariadic() const
{ return _variadic; }
{ return f._variadic; }
void setVariadic(bool isVariadic)
{ _variadic = isVariadic; }
{ f._variadic = isVariadic; }
QString toString() const;
@@ -117,6 +117,13 @@ public:
unsigned _hashcode;
private:
struct Flags
{
unsigned _hidden: 1;
unsigned _functionLike: 1;
unsigned _variadic: 1;
};
QByteArray _name;
QByteArray _definition;
QVector<QByteArray> _formals;
@@ -126,13 +133,7 @@ private:
union
{
unsigned _state;
struct
{
unsigned _hidden: 1;
unsigned _functionLike: 1;
unsigned _variadic: 1;
};
Flags f;
};
};