fix(argparse): 修复参数解析错误处理逻辑
当解析过程中出现错误时,应该继续循环而不是直接跳出, 确保完整的错误处理流程能够执行。 fix(ast2ir): 修复函数调用表达式中的类型检查 在每次迭代中重新获取指针以避免向量重分配问题, 并添加类型引用断言确保参数类型有效性。 fix(lexer): 添加词法分析器资源释放 在main函数中正确释放tok_ring资源,防止内存泄漏。 test: 更新测试用例输出字符串格式 将测试用例中的输出字符串从全小写更新为首字母大写, 保持代码风格一致性。
This commit is contained in:
@@ -280,7 +280,7 @@ int scc_argparse_parse(scc_argparse_t *parser, int argc, const char **argv) {
|
||||
init_context(&ctx, parser, argc, argv); // 初始化上下文
|
||||
int errcode = SCC_ARGPARSE_ERR_NONE;
|
||||
|
||||
while (!ctx.parsing_done &&
|
||||
while (!ctx.parsing_done && errcode == SCC_ARGPARSE_ERR_NONE &&
|
||||
scc_optparse_parse(&ctx.optparse, &ctx.result)) {
|
||||
if (parser->need_debug) {
|
||||
scc_printf("debug:[%c:%s:%d] %s\n",
|
||||
@@ -292,7 +292,7 @@ int scc_argparse_parse(scc_argparse_t *parser, int argc, const char **argv) {
|
||||
|
||||
if (ctx.result.error) {
|
||||
errcode = transite_error(&ctx);
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ctx.result.opt != nullptr) {
|
||||
|
||||
Reference in New Issue
Block a user