跳转到内容

鹦鹉虚拟机/VTABLE 列表

来自维基教科书,为开放世界提供开放书籍

Vtable 列表

[编辑 | 编辑源代码]
Vtable 名称 描述
absolute 返回 PMC 的绝对值,以 PMC 的形式
add_attribute 向 PMC 对象添加属性。属性通常存储在 pmc->pmc_ext->_metadata 字段中。
add_method 向 PMC 的类添加新方法
add_parent
add_role
add_vtable_override
assign_pmc 将 PMC 值分配给 PMC
assign_string_native 将字符串分配给 PMC
bitwise_not
bitwise_nots
can
clone
clone_pmc
decrement 将 PMC 的整数值减 1
defined 确定 PMC 是否已定义
defined_keyed
defined_keyed_int
defined_keyed_str
delprop 从 PMC 中删除属性
destroy 销毁 PMC
does
does_pmc
elements
exists_keyed
exists_keyed_int
exists_keyed_str
find_method
freeze
get_attr
get_bignum 获取 PMC 的 BigNum 表示形式
get_bool 获取 PMC 的布尔值表示形式
get_class
get_integer 获取 PMC 的整数值表示形式
get_integer_keyed
get_integer_keyed_int
get_integer_keyed_str
get_iter
get_namespace
get_number 获取 PMC 的浮点值表示形式
get_number_keyed
get_number_keyed_int
get_number_keyed_str
get_pmc 获取 PMC 的 PMC 表示形式
get_pmc_keyed
get_pmc_keyed_int
get_pmc_keyed_str
get_pointer
get_pointer_keyed
get_pointer_keyed_int
get_pointer_keyed_str
get_repr
get_string 获取 PMC 的字符串表示形式
get_string_keyed
get_string_keyed_int
get_string_keyed_srt
getprop 获取 PMC 中特定属性的值
getprops
i_absolute
i_bitwise_not
i_bitwise_nots
i_logical_not
i_net
increment 将 PMC 的整数值加 1
init 初始化 PMC。当使用 new 关键字创建新的 PMC 时,会调用此方法。
init_pmc
inspect
inspect_str
instantiate
invoke 当 PMC 像函数一样被调用时,会调用 invoke vtable 方法。在以下代码中
.local pmc mypmc = new 'MyPMCType'
mypmc()

当 PMC 被视为函数调用时,第二行会调用 invoke vtable 方法。例如,对于字符串函数,字符串类会使用字符串的值查找具有相同名称的函数,然后调用该函数。当子例程 PMC 被调用时,它们会调用给定的函数。

is_same
isa
isa_pmc
logical_not
mark 将 PMC 及其所有子项标记为对内存管理器有效。这可以防止 PMC 的子项过早地被垃圾收集器收集。
morph
name
neg
new_from_string
nextkey_keyed
nextkey_keyed_int
nextkey_keyed_str
pop_float 如果 PMC 是数组,则从其顶部弹出浮点值
pop_integer 如果 PMC 是数组,则从其顶部弹出整数值
pop_pmc 如果 PMC 是数组,则从其顶部弹出 PMC 值
pop_string 如果 PMC 是数组,则从其顶部弹出字符串值
push_float 如果 PMC 是数组,则将浮点值压入其顶部
push_integer 如果 PMC 是数组,则将整数压入其顶部
push_pmc 如果 PMC 是数组,则将 PMC 压入其顶部
push_string 如果 PMC 是数组,则将字符串压入其顶部
remove_attribute 从 PMC 中删除属性
remove_method
remove_parent
remove_role
remove_vtable_override
set_attr 为给定的 PMC 设置属性值
set_attr_keyed
set_attr_keyed_str
set_bugnum_int
set_bignum_num
set_bignum_str
set_bool 将 PMC 的值设置为布尔值
set_integer_keyed
set_integer_keyed_int
set_integer_keyed_str
set_integer_native 将 PMC 的值设置为整数
set_number_keyed
set_number_keyed_int
set_number_keyed_str
set_number_native 将 PMC 的值设置为浮点值
set_number_same
set_pmc 将一个 PMC 的值设置为另一个 PMC 的值
set_pmc_keyed
set_pmc_keyed_int
set_pmc_keyed_str
set_pointer
set_pointer_keyed
set_pointer_keyed_int
set_pointer_keyed_str
set_string_keyed
set_string_keyed_int
set_string_keyed_str
set_string_native 将 PMC 的值设置为字符串
set_string_same
setprop
share
share_ro
shift_float 如果 PMC 是数组,则将浮点值移至其底部
shift_int 如果 PMC 是数组,则将整数移至其底部
shift_pmc 如果 PMC 是数组,则将 PMC 移至其底部
shift_string 如果 PMC 是数组,则将字符串移至其底部
slice
splice
substr
substr_str
thaw
thawfinish
type
type_keyed
type_keyed_int
type_keyed_str
unshift_float 如果 PMC 是数组,则从其底部取消移出浮点值
unshift_integer 如果 PMC 是数组,则从其底部取消移出整数
unshift_pmc 如果 PMC 是数组,则从其底部取消移出 PMC
unshift_str 如果 PMC 是数组,则从其底部取消移出字符串
visit
华夏公益教科书