OSDN Git Service

object表現であったobject.cppを削除し、datum.cppとして再定義した。
[simplecms/utakata.git] / src / parser / datum.cpp
index 0080d7c..e515570 100644 (file)
@@ -7,91 +7,103 @@ namespace datum = utakata::datum;
 namespace unicode = utakata::unicode;
 namespace exception = utakata::exception;
 
-// 宣言のコメントを参照して下さい。
-void datum::IDatumBase::SetCar(datum::IDatumBase* car) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetCar`"));
+/// To string datum
+
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::String::ToString() const {
+  return *string_;
+}
+
+// 宣言のコメントを参照してください。
+datum::IDatumBase* datum::String::Eval(interpreter::Environment* env) {
+  return NULL;
+}
+
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::String::GetString() const {
+  return *string_;
 }
 
-// 宣言のコメントを参照して下さい。
-void datum::IDatumBase::SetCdr(datum::IDatumBase* cdr) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetCdr`"));
+// 宣言のコメントを参照してください。
+const lexer::Token& datum::String::GetBaseToken() const {
+  return *token_;
 }
 
-// 宣言のコメントを参照して下さい。
-bool datum::IDatumBase::GetBoolean() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetBoolean`"));
+/// To symbol datum
+
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::Symbol::ToString() const {
+  return *symbol_;
 }
 
-// 宣言のコメントを参照して下さい。
-void datum::IDatumBase::SetBoolean(bool b) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetBoolean`"));
+// 宣言のコメントを参照してください。
+datum::IDatumBase* datum::Symbol::Eval(interpreter::Environment* env) {
+  return NULL;
 }
 
-// 宣言のコメントを参照して下さい。
-const unicode::UniString& datum::IDatumBase::GetSymbolName() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetSymbolName`"));
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::Symbol::GetSymbolName() const {
+  return *symbol_;
 }
 
-// 宣言のコメントを参照して下さい。
-datum::IDatumBase* datum::IDatumBase::GetBindObject() {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetBindObject`"));
+// 宣言のコメントを参照してください。
+const lexer::Token& datum::String::GetBaseToken() const {
+  return *token_;
 }
 
-// 宣言のコメントを参照して下さい。
-void datum::IDatumBase::SetBindObject(const datum::IDatumBase* object) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetBindObject`"));
+// To charactor datum
+
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::Charactor::ToString() const {
+  return *charactor_name_;
 }
 
-// 宣言のコメントを参照して下さい。
-const unicode::UniString& datum::IDatumBase::GetString() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetString`"));
+// 宣言のコメントを参照してください。
+datum::IDatumBase* datum::Charactor::Eval(interpreter::Environment* env) {
+  return NULL;
 }
 
-// 宣言のコメントを参照して下さい。
-int datum::IDatumBase::GetNumber() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetNumber`"));
+// 宣言のコメントを参照してください。
+const unicode::UniChar& datum::Charactor::GetCharactor() const {
+  return *charactor_;
 }
 
-// 宣言のコメントを参照して下さい。
-void datum::IDatumBase::SetNumber(int number) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetNumber`"));
+// 宣言のコメントを参照してください。
+const lexer::Token& datum::String::GetBaseToken() const {
+  return *token_;
+}
+
+// To boolean datum
+
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::Boolean::ToString() const {
+  return *original_string_;
 }
 
-// 宣言のコメントを参照して下さい。
-const unicode::UniChar& datum::IDatumBase::GetCharactor() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetCharactor`"));
+// 宣言のコメントを参照してください。
+datum::IDatumBase* datum::Boolean::Eval(interpreter::Environment* env) {
+  return NULL;
 }
 
-// 宣言のコメントを参照して下さい。
-const std::vector<datum::IDatumBase*>& datum::IDatumBase::GetVector() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetVector`"));
+// 宣言のコメントを参照してください。
+const lexer::Token& datum::String::GetBaseToken() const {
+  return *token_;
 }
 
-void datum::IDatumBase::SetVector(const std::vector<datum::IDatumBase*>& vector) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetVector`"));
+/////////////////////
+// To number datum //
+/////////////////////
+// 宣言のコメントを参照してください。
+const unicode::UniString& datum::Number::ToString() const {
+  return *original_string_;
 }
 
-// 宣言のコメントを参照して下さい。
-const std::vector<datum::IDatumBase*>& datum::IDatumBase::GetBytevector() const {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `GetBytevector`"));
+// 宣言のコメントを参照してください。
+datum::IDatumBase* datum::Number::Eval(interpreter::Environment* env) {
+  return NULL;
 }
 
-// 宣言のコメントを参照して下さい。
-void datum::IDatumBase::SetBytevector(const std::vector<datum::IDatumBase*>& vector) {
-  THROW_EXCEPTION_(exception::NotImplementedException,
-                   unicode::Convert("Not implemented `SetBytevector`"));
+// 宣言のコメントを参照してください。
+const lexer::Token& datum::String::GetBaseToken() const {
+  return *token_;
 }