1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#ifndef Id_INCLUDED
#define Id_INCLUDED 1
#ifdef __GNUG__
#pragma interface
#endif
#include "Named.h"
#include "Location.h"
#include "Vector.h"
#ifdef SP_NAMESPACE
namespace SP_NAMESPACE {
#endif
class Id : public Named {
public:
Id(const StringC &);
void define(const Location &);
void addPendingRef(const Location &);
Boolean defined() const;
const Location &defLocation() const;
const Vector<Location> &pendingRefs() const;
private:
Location defLocation_;
Vector<Location> pendingRefs_;
};
inline
Boolean Id::defined() const
{
return !defLocation_.origin().isNull();
}
inline
const Location &Id::defLocation() const
{
return defLocation_;
}
inline
const Vector<Location> &Id::pendingRefs() const
{
return pendingRefs_;
}
inline
void Id::addPendingRef(const Location &loc)
{
pendingRefs_.push_back(loc);
}
#ifdef SP_NAMESPACE
}
#endif
#endif /* not Id_INCLUDED */
|