値のホスト言語インターフェース

pastelstitch::Value クラスのメンバー関数

pastelstitch::Value クラスはパステルステッチの値である。パステルステッチの値に新たなプリミティブな型を追加するには、pastelstitch::Value クラスの派生クラスを定義する。pastelstitch::Value クラスは以下のメンバー関数を持つ。

これらのメンバー関数のうち、type は純粋バーチャルメンバー関数なので、派生クラスでこのメンバー関数を定義する必要がある。他のメンバー関数は、pastelstitch::Value クラスで定義されている動作が不適であるときのみ、派生クラスで定義すればよい。また、これらのメンバー関数と名前が同じで意味が異なるメンバー関数を、派生クラスで定義してはいけない。

bool type (pastelstitch::CompoundVector vector) const

pastelstitch::Value クラスの type メンバー関数は、型の名前であるベクトルを引数に取り、その型に合致するかどうかを返す。このメンバー関数は ^type 演算子で使用される。このメンバー関数は純粋バーチャルメンバー関数なので、派生クラスで必ず定義する必要がある。

std::string format () const

pastelstitch::Value クラスの format メンバー関数は、値を文字列に変換したものを返す。print プリミティブ演算では、この文字列が表示される。また、値を文字列型に変換したとき、この文字列が使われる。この文字列から元の値が復元できるようにする必要はない。このメンバー関数を派生クラスで定義しなければ、空文字列を返す。

bool is_true () const

pastelstitch::Value クラスの is_true メンバー関数は、この値が真偽値の「真」と解釈されるかどうかを返す。このメンバー関数を派生クラスで定義しなければ true を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_boolean () const

pastelstitch::Value クラスの is_boolean メンバー関数は、この値がブーリアンであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_natural_number () const

pastelstitch::Value クラスの is_natural_number メンバー関数は、この値が自然数であるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_identifier () const

pastelstitch::Value クラスの is_identifier メンバー関数は、この値が無名ベクトルであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_vector () const

pastelstitch::Value クラスの is_vector メンバー関数は、この値がベクトルであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_string () const

pastelstitch::Value クラスの is_string メンバー関数は、この値が文字列であるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_floating_point_number () const

pastelstitch::Value クラスの is_floating_point_number メンバー関数は、この値が浮動小数点数であるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_continuation () const

pastelstitch::Value クラスの is_continuation メンバー関数は、この値がコンティニュエーションであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_genuine_continuation () const

pastelstitch::Value クラスの is_genuine_continuation メンバー関数は、この値が真性のコンティニュエーションであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_terminal_continuation () const

pastelstitch::Value クラスの is_terminal_continuation メンバー関数は、この値が終端コンティニュエーションであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_capsule () const

pastelstitch::Value クラスの is_capsule メンバー関数は、この値がカプセルであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_explicit_extent_capsule () const

pastelstitch::Value クラスの is_explicit_extent_capsule メンバー関数は、この値が明示寿命カプセルであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_container () const

pastelstitch::Value クラスの is_container メンバー関数は、この値がイミュータブルベクターコンテナ、ベクターコンテナ、イミュータブルセットコンテナ、セットコンテナ、イミュータブルマップコンテナ、マップコンテナのいずれかであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_mutable_container () const

pastelstitch::Value クラスの is_container メンバー関数は、この値がベクターコンテナ、セットコンテナ、マップコンテナのいずれかであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_vector_container () const

pastelstitch::Value クラスの is_vector_container メンバー関数は、この値がイミュータブルベクターコンテナまたはベクターコンテナであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_set_container () const

pastelstitch::Value クラスの is_set_container メンバー関数は、この値がイミュータブルセットコンテナまたはセットコンテナであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

bool is_map_container () const

pastelstitch::Value クラスの is_map_container メンバー関数は、この値がイミュータブルマップコンテナまたはマップコンテナであるかどうかを返す。このメンバー関数を派生クラスで定義しなければ false を返す。このメンバー関数を派生クラスで定義するべきではない。

void get (bool & value) const

pastelstitch::Value クラスの get メンバー関数が bool への参照型の引数を持つとき、この値を bool 型に変換して返す。このメンバー関数を派生クラスで定義しなければ true を返す。このメンバー関数を派生クラスで定義するべきではない。

void get (unsigned int & value) const

pastelstitch::Value クラスの get メンバー関数が unsigned int への参照型の引数を持つとき、この値が自然数であれば、unsigned int 型に変換して返す。このメンバー関数を派生クラスで定義するべきではない。

void get (pastelstitch::Identifier & value) const

pastelstitch::Value クラスの get メンバー関数が Identifier への参照型の引数を持つとき、この値が無名ベクトルであれば、Identifier 型に変換して返す。このメンバー関数を派生クラスで定義するべきではない。

void get (pastelstitch::CompoundVector & value) const

pastelstitch::Value クラスの get メンバー関数が CompoundVector への参照型の引数を持つとき、この値がベクトルであれば、CompoundVector 型に変換して返す。このメンバー関数を派生クラスで定義するべきではない。

void get (std::string & value) const

pastelstitch::Value クラスの get メンバー関数が string への参照型の引数を持つとき、この値が文字列であれば、string 型に変換して返す。このメンバー関数を派生クラスで定義するべきではない。

void get (double & value) const

pastelstitch::Value クラスの get メンバー関数が double への参照型の引数を持つとき、この値が浮動小数点数であれば、double 型に変換して返す。このメンバー関数を派生クラスで定義するべきではない。

void run (pastelstitch::Arguments continuation_arguments, pastelstitch::Arguments & terminal_arguments, bool resumable = false) const

pastelstitch::Value クラスの run メンバー関数は、この値が真性のコンティニュエーションであれば、そのコンティニュエーションを実行する。continuation_arguments 引数は引数の名前と値のマップである。これらの引数はゲスト言語からコンティニュエーション変数で参照できる。terminal_arguments 引数はゲスト言語の引数解決の終端要因が終端コンティニュエーションであるときの引数の名前と値のマップである。このメンバー関数を派生クラスで定義するべきではない。

pastelstitch::Identifier get_continuation_identifier () const

pastelstitch::Value クラスの get_continuation_identifier メンバー関数は、この値が真性のコンティニュエーションであれば、そのコンティニュエーションの動的環境識別子を返す。このメンバー関数を派生クラスで定義するべきではない。

void get (std::shared_ptr <pastelstitch::Capsule> & value) const

pastelstitch::Value クラスの get メンバー関数が Capsule のスマートポインターへの参照型の引数を持つとき、この値がカプセルであれば、 Capsule のスマートポインター型に変換して返す。このメンバー関数を派生クラスで定義するべきではない。

pastelstitch::Identifier get_capsule_identifier () const

pastelstitch::Value クラスの get_capsule_identifier メンバー関数は、この値が明示寿命カプセルであれば、カプセル識別子を返す。このメンバー関数を派生クラスで定義するべきではない。

std::vector <pastelstitch::ValuePtr> & vector_container ()

pastelstitch::Value クラスの get_vector_container メンバー関数は、この値がイミュータブルベクターコンテナまたはベクターコンテナであれば、コンテナへの参照を返す。このメンバー関数を派生クラスで定義するべきではない。

std::set <pastelstitch::ValuePtr> & set_container ()

pastelstitch::Value クラスの get_set_container メンバー関数は、この値がイミュータブルセットコンテナまたはセットコンテナであれば、コンテナへの参照を返す。このメンバー関数を派生クラスで定義するべきではない。

std::map <pastelstitch::ValuePtr> & map_container ()

pastelstitch::Value クラスの map_container メンバー関数は、この値がイミュータブルマップコンテナまたはマップコンテナであれば、コンテナへの参照を返す。このメンバー関数を派生クラスで定義するべきではない。

pastelstitch::Value クラスを引数または戻り値とする関数

pastelstitch::ValuePtr make_value (bool value)

pastelstitch::make_value 関数が bool 型の引数を持つとき、ブーリアン型の値を返す。

pastelstitch::ValuePtr make_value (unsigned int value)

pastelstitch::make_value 関数が unsigned int 型の引数を持つとき、自然数型の値を返す。

pastelstitch::ValuePtr make_value (pastelstitch::Identifier value)

pastelstitch::make_value 関数が Identifier 型の引数を持つとき、無名ベクトルを返す。

pastelstitch::ValuePtr make_value (pastelstitch::CompoundVector value)

pastelstitch::make_value 関数が CompoundVector 型の引数を持つとき、ベクトル型の値を返す。

pastelstitch::ValuePtr make_value (std::string personal, std::string family)

pastelstitch::make_value 関数が 2 個の string 型の引数を持つとき、これらの文字列をそれぞれ固有名と姓とする有名ベクトルを作り、ベクトル型の値を返す。

pastelstitch::ValuePtr make_value (std::string value)

pastelstitch::make_value 関数が 1 個の string 型の引数を持つとき、文字列型の値を返す。

pastelstitch::ValuePtr make_value (double value)

pastelstitch::make_value 関数が double 型の引数を持つとき、浮動小数点数型の値を返す。

pastelstitch::ValuePtr make_value (std::shared_ptr <pastelstitch::Capsule> capsule, pastelstitch::StaticEnvironment * senv)

pastelstitch::make_value 関数が Capsule のスマートポインター型と StaticEnvironment のポインター型の引数を持つとき、明示寿命なカプセル型の値を返す。

pastelstitch::ValuePtr make_value (std::shared_ptr <pastelstitch::Capsule> capsule)

pastelstitch::make_value 関数が Capsule のスマートポインター型の引数を持つとき、暗黙寿命なカプセル型の値を返す。

pastelstitch::ValuePtr make_value (std::vector <pastelstitch::ValuePtr> & container)

pastelstitch::make_value 関数が vector <ValuePtr> 型の引数を持つとき、イミュータブルベクターコンテナ型の値を返す。

pastelstitch::ValuePtr make_value (std::vector <pastelstitch::ValuePtr> & container, pastelstitch::StaticEnvironment * senv)

pastelstitch::make_value 関数が vector <ValuePtr> 型と StaticEnvironment のポインター型の引数を持つとき、ベクターコンテナ型の値を返す。

pastelstitch::ValuePtr make_value (std::set <pastelstitch::ValuePtr> & container)

pastelstitch::make_value 関数が set <ValuePtr> 型の引数を持つとき、イミュータブルセットコンテナ型の値を返す。

pastelstitch::ValuePtr make_value (std::set <pastelstitch::ValuePtr> & container, pastelstitch::StaticEnvironment * senv)

pastelstitch::make_value 関数が set <ValuePtr> 型と StaticEnvironment のポインター型の引数を持つとき、セットコンテナ型の値を返す。

pastelstitch::ValuePtr make_value (std::map <pastelstitch::ValuePtr> & container)

pastelstitch::make_value 関数が map <ValuePtr> 型の引数を持つとき、イミュータブルマップコンテナ型の値を返す。

pastelstitch::ValuePtr make_value (std::map <pastelstitch::ValuePtr> & container, pastelstitch::StaticEnvironment * senv)

pastelstitch::make_value 関数が map <ValuePtr> 型と StaticEnvironment のポインター型の引数を持つとき、マップコンテナ型の値を返す。