diff interps/rail/src/StringVar.h @ 996:859f9b4339e6

<Gregor> tar xf egobot.tar.xz
author HackBot
date Sun, 09 Dec 2012 19:30:08 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/interps/rail/src/StringVar.h	Sun Dec 09 19:30:08 2012 +0000
@@ -0,0 +1,51 @@
+// StringVar.h
+
+#ifndef STRING_VAR_H_RAIL_1
+#define STRING_VAR_H_RAIL_1
+
+#include "Var.h"
+
+class StringVar : public Var
+{
+public:
+  StringVar() {}
+  StringVar(std::string const & newData) : data(newData) {}
+  virtual ~StringVar() {}
+
+  virtual StringVar * getString(void)
+  {
+    return this;
+  }
+
+  virtual ListVar * getList(void)
+  {
+    return NULL;
+  }
+
+  virtual NilVar * getNil(void)
+  {
+    return NULL;
+  }
+
+  virtual Closure * getClosure(void)
+  {
+    return NULL;
+  }
+
+  virtual std::string toString(void) const
+  {
+    return "\"" + data + "\"";
+  }
+
+  std::string const & get(void) const
+  {
+    return data;
+  }
+private:
+  StringVar(StringVar const &) {}
+  StringVar & operator=(StringVar const &) { return *this; }
+private:
+  std::string data;
+};
+
+#endif