}
-void Null::visit(Visitor &visitor) { visitor.visit(this); }
-void Bool::visit(Visitor &visitor) { visitor.visit(this); }
-void SInt::visit(Visitor &visitor) { visitor.visit(this); }
-void UInt::visit(Visitor &visitor) { visitor.visit(this); }
-void Float::visit(Visitor &visitor) { visitor.visit(this); }
-void String::visit(Visitor &visitor) { visitor.visit(this); }
-void Enum::visit(Visitor &visitor) { visitor.visit(this); }
-void Bitmask::visit(Visitor &visitor) { visitor.visit(this); }
-void Struct::visit(Visitor &visitor) { visitor.visit(this); }
-void Array::visit(Visitor &visitor) { visitor.visit(this); }
-void Blob::visit(Visitor &visitor) { visitor.visit(this); }
+// virtual Value::visit()
+void Null ::visit(Visitor &visitor) { visitor.visit(this); }
+void Bool ::visit(Visitor &visitor) { visitor.visit(this); }
+void SInt ::visit(Visitor &visitor) { visitor.visit(this); }
+void UInt ::visit(Visitor &visitor) { visitor.visit(this); }
+void Float ::visit(Visitor &visitor) { visitor.visit(this); }
+void String ::visit(Visitor &visitor) { visitor.visit(this); }
+void Enum ::visit(Visitor &visitor) { visitor.visit(this); }
+void Bitmask::visit(Visitor &visitor) { visitor.visit(this); }
+void Struct ::visit(Visitor &visitor) { visitor.visit(this); }
+void Array ::visit(Visitor &visitor) { visitor.visit(this); }
+void Blob ::visit(Visitor &visitor) { visitor.visit(this); }
void Pointer::visit(Visitor &visitor) { visitor.visit(this); }
+void Visitor::visit(Null *) { assert(0); }
+void Visitor::visit(Bool *) { assert(0); }
+void Visitor::visit(SInt *) { assert(0); }
+void Visitor::visit(UInt *) { assert(0); }
+void Visitor::visit(Float *) { assert(0); }
+void Visitor::visit(String *) { assert(0); }
+void Visitor::visit(Enum *) { assert(0); }
+void Visitor::visit(Bitmask *bitmask) { visit(static_cast<UInt *>(bitmask)); }
+void Visitor::visit(Struct *) { assert(0); }
+void Visitor::visit(Array *) { assert(0); }
+void Visitor::visit(Blob *) { assert(0); }
+void Visitor::visit(Pointer *) { assert(0); }
+
+
class Dumper : public Visitor
{
protected:
class Visitor
{
public:
- virtual void visit(Null *) {assert(0);}
- virtual void visit(Bool *) {assert(0);}
- virtual void visit(SInt *) {assert(0);}
- virtual void visit(UInt *) {assert(0);}
- virtual void visit(Float *) {assert(0);}
- virtual void visit(String *) {assert(0);}
- virtual void visit(Enum *) {assert(0);}
- virtual void visit(Bitmask *bitmask) {visit(static_cast<UInt *>(bitmask));}
- virtual void visit(Struct *) {assert(0);}
- virtual void visit(Array *) {assert(0);}
- virtual void visit(Blob *) {assert(0);}
- virtual void visit(Pointer *) {assert(0);}
+ virtual void visit(Null *);
+ virtual void visit(Bool *);
+ virtual void visit(SInt *);
+ virtual void visit(UInt *);
+ virtual void visit(Float *);
+ virtual void visit(String *);
+ virtual void visit(Enum *);
+ virtual void visit(Bitmask *);
+ virtual void visit(Struct *);
+ virtual void visit(Array *);
+ virtual void visit(Blob *);
+ virtual void visit(Pointer *);
protected:
inline void _visit(Value *value) {