8 namespace utf8_string {
14 namespace interpreter {
19 // インタプリタ中でオブジェクトとして扱われる全てのオブジェクトの
21 // 各オブジェクトに固有のevalなどは無く、evalはシステム的に定義
22 // され、Objectはevalに利用されるためのデータ、関数などを保持する
24 // 各オブジェクトの内、リテラルとなっているデータについては、
26 // 各リテラルについては、Objectの一次派生先のLiteralから派生する。
27 // Virtualである関数が二つしか存在しないのは、これ以外に共通させる
28 // ことが出来る関数が存在しないためである。
29 // evalしなければならないシステムは、各自ダウンキャストを行う必要
30 // がある。それ以外でなんかいい方法があるなら教えてください。
36 // 変更可能なオブジェクトであるかどうかを返す。
37 virtual bool enableChange() const = 0;
39 virtual smart_ptr<utf8_string::UTF8String> toValue() = 0;
46 #endif /* _OBJECT_H_ */