The Type class now knows the name of the type.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11447 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2005-02-22 12:34:38 +00:00
parent 3f38375acc
commit c9b3d41977
+15 -7
View File
@@ -15,7 +15,10 @@
// Type // Type
class Type { class Type {
public: public:
Type(TypeHandler *handler) : fHandler(handler) {} Type(string typeName, TypeHandler *handler)
: fTypeName(typeName), fHandler(handler) {}
const string &TypeName() const { return fTypeName; }
void SetHandler(TypeHandler *handler) void SetHandler(TypeHandler *handler)
{ {
@@ -26,14 +29,15 @@ public:
TypeHandler *Handler() const { return fHandler; } TypeHandler *Handler() const { return fHandler; }
private: private:
string fTypeName;
TypeHandler *fHandler; TypeHandler *fHandler;
}; };
// Parameter // Parameter
class Parameter : public Type { class Parameter : public Type {
public: public:
Parameter(string name, int32 offset, TypeHandler *handler) Parameter(string name, int32 offset, string typeName, TypeHandler *handler)
: Type(handler), : Type(typeName, handler),
fName(name), fName(name),
fOffset(offset) fOffset(offset)
{ {
@@ -50,8 +54,11 @@ private:
// Syscall // Syscall
class Syscall { class Syscall {
public: public:
Syscall(string name, TypeHandler *returnTypeHandler) Syscall(string name, string returnTypeName, TypeHandler *returnTypeHandler)
: fName(name), fReturnType(new Type(returnTypeHandler)) {} : fName(name),
fReturnType(new Type(returnTypeName, returnTypeHandler))
{
}
const string &Name() const const string &Name() const
{ {
@@ -68,9 +75,10 @@ public:
fParameters.push_back(parameter); fParameters.push_back(parameter);
} }
void AddParameter(string name, int32 offset, TypeHandler *handler) void AddParameter(string name, int32 offset, string typeName,
TypeHandler *handler)
{ {
AddParameter(new Parameter(name, offset, handler)); AddParameter(new Parameter(name, offset, typeName, handler));
} }
int32 CountParameters() const int32 CountParameters() const