- 在 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