X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fparser%2Fdatum.cpp;fp=src%2Fparser%2Fdatum.cpp;h=e515570c75b60e81131e7bac55f126976f1afb95;hb=d006548472b26e854e6c675bc73bc1f28a51de15;hp=0080d7ccffd680fefa7d9df1c3be25686d8a5793;hpb=2519983df76062cadc90a176e7521af826258a7d;p=simplecms%2Futakata.git diff --git a/src/parser/datum.cpp b/src/parser/datum.cpp index 0080d7c..e515570 100644 --- a/src/parser/datum.cpp +++ b/src/parser/datum.cpp @@ -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::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& 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::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& vector) { - THROW_EXCEPTION_(exception::NotImplementedException, - unicode::Convert("Not implemented `SetBytevector`")); +// 宣言のコメントを参照してください。 +const lexer::Token& datum::String::GetBaseToken() const { + return *token_; }