class Enum : public Value
{
public:
- Enum(std::string &_name, Value *_value) : name(_name), value(_value) {}
+ typedef std::pair<std::string, Value *> Signature;
+
+ Enum(const Signature *_sig) : sig(_sig) {}
void visit(Visitor &visitor);
- std::string name;
- Value *value;
+ const Signature *sig;
};
};
Struct(Signature *_sig) : sig(_sig), members(_sig->member_names.size()) { }
+ ~Struct();
void visit(Visitor &visitor);
{
public:
Array(size_t len) : values(len) {}
+ ~Array();
void visit(Visitor &visitor);
Value *ret;
Call(Signature *_sig) : sig(_sig), args(_sig->arg_names.size()), ret(0) { }
+ ~Call();
inline const std::string name(void) const {
return sig->name;