static string DumpShovelValue(VmApi api, Value obj)
{
if (obj.Kind == Value.Kinds.String) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Array) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Integer) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Double) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Hash) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Callable) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Bool) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.Null) {
return Prim0.ShovelStringRepresentation (api, obj).stringValue;
} else if (obj.Kind == Value.Kinds.ReturnAddress) {
return String.Format ("Return to {0}", obj.ReturnAddressValue.ProgramCounter);
} else if (obj.Kind == Value.Kinds.NamedBlock) {
return String.Format ("Named block {0} to {0}", obj.NamedBlockValue.Name, obj.NamedBlockValue.BlockEnd);
} else {
throw new InvalidOperationException ();
}
}