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_;
}