- 在 ArgInfo 类中添加 variadic 属性用于标识可变参数 - 实现编译器对可变参数的验证逻辑,确保可变参数位于最后位置 - 修改参数类型处理逻辑,将可变参数转换为数组类型 - 更新函数调用参数解析,支持可变参数的展开和传递 - 在翻译器中实现可变参数的 C++ 代码生成逻辑 - 添加遍历可变参数的循环处理机制 - 新增可变参数功能的测试用例和示例文件 - 完善参数列表生成时对可变参数的特殊处理pull/1/head
parent
9c51551567
commit
aa6d81d2a7
6 changed files with 106 additions and 12 deletions
@ -0,0 +1,24 @@ |
|||||||
|
<?php |
||||||
|
// python: import sys |
||||||
|
use sys; |
||||||
|
// python: import sos |
||||||
|
use os; |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
var_dump(sys::api_version); |
||||||
|
var_dump(os::getpid()); |
||||||
|
var_dump(os::environ->get("PATH")); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
use numpy as np; |
||||||
|
|
||||||
|
function np() |
||||||
|
{ |
||||||
|
var_dump(np::$module); |
||||||
|
var_dump(np::version->full_version); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,10 @@ |
|||||||
|
<?php |
||||||
|
function test($a, $b, int...$args) |
||||||
|
{ |
||||||
|
var_dump($args); |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
test(1, 2, 3, 4, 5); |
||||||
|
} |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
--TEST-- |
||||||
|
variadic args |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
function test($a, $b, int...$args) |
||||||
|
{ |
||||||
|
var_dump($a, $b, $args); |
||||||
|
} |
||||||
|
|
||||||
|
function main() |
||||||
|
{ |
||||||
|
test(1, 2, 3, 4, 5); |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
int(1) |
||||||
|
int(2) |
||||||
|
array(3) { |
||||||
|
[0]=> |
||||||
|
int(3) |
||||||
|
[1]=> |
||||||
|
int(4) |
||||||
|
[2]=> |
||||||
|
int(5) |
||||||
|
} |
||||||
|
|
||||||
Loading…
Reference in new issue