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

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_finite_set () const

pastelstitch::Value クラスの is_finite_set メンバー関数は、この値が有限集合であるかどうかを返す。このメンバー関数を派生クラスで定義しなければ 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 を返す。このメンバー関数を派生クラスで定義するべきではない。

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::set <pastelstitch::CompoundVector> & value) const

pastelstitch::Value クラスの get メンバー関数が set <CompoundVector> 型の引数を持つとき、この値が有限集合であれば、set <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 メンバー関数は、この値がカプセルであれば、カプセル識別子を返す。このメンバー関数を派生クラスで定義するべきではない。

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::set <pastelstitch::CompoundVector> value)

pastelstitch::make_value 関数が set <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 のポインター型の引数を持つとき、カプセル型の値を返す。カプセルの寿命の管理は静的環境が行うので、カプセル型の値を生成するには、静的環境のポインターが必要である。