#define _TRACE_MODEL_HPP_
-#include <cassert>
+#include <assert.h>
#include <string>
#include <map>
virtual bool toBool(void) const = 0;
virtual signed long long toSInt(void) const;
virtual unsigned long long toUInt(void) const;
- virtual double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
virtual void *toPointer(void) const;
virtual unsigned long long toUIntPtr(void) const;
bool toBool(void) const;
signed long long toSInt(void) const;
unsigned long long toUInt(void) const;
- double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
void *toPointer(void) const;
unsigned long long toUIntPtr(void) const;
const char *toString(void) const;
bool toBool(void) const;
signed long long toSInt(void) const;
unsigned long long toUInt(void) const;
- double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
void visit(Visitor &visitor);
bool value;
bool toBool(void) const;
signed long long toSInt(void) const;
unsigned long long toUInt(void) const;
- double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
void visit(Visitor &visitor);
signed long long value;
bool toBool(void) const;
signed long long toSInt(void) const;
unsigned long long toUInt(void) const;
- double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
void visit(Visitor &visitor);
unsigned long long value;
bool toBool(void) const;
signed long long toSInt(void) const;
unsigned long long toUInt(void) const;
- double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
void visit(Visitor &visitor);
double value;
bool toBool(void) const;
signed long long toSInt(void) const;
unsigned long long toUInt(void) const;
- double toFloat(void) const;
+ virtual float toFloat(void) const;
+ virtual double toDouble(void) const;
void visit(Visitor &visitor);
const Signature *sig;
std::ostream & operator <<(std::ostream &os, Value *value);
-signed long long asSInt(const Value &node);
-unsigned long long asUInt(const Value &node);
-double asFloat(const Value &node);
-
-
class Call
{
public:
}
inline Value & arg(unsigned index) {
+ assert(index < args.size());
return *(args[index]);
}
};