跳到内容

鹦鹉虚拟机/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 的大数表示
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
华夏公益教科书