命令行参数
我们可以通过文件加载函数添加一些其他编程语言的典型功能。 当文件名作为参数提供给命令行时,我们会去尝试运行这些文件。 例如,要运行python文件,可以编写python filename.py
。
使用赋给main的argc
和argv
变量来访问这些命令行参数。 argc
变量给出了参数个数,argv
则指定每个字符串。 argc
总是设置为至少为1,其中第一个参数始终为所调用的完整命令。
这意味着如果argc
设置为1
,我们调用解释器,否则通过builtin_load
函数运行每个参数。
/* Supplied with list of files */
if (argc >= 2) {
/* loop over each supplied filename (starting from 1) */
for (int i = 1; i < argc; i++) {
/* Argument list with a single argument, the filename */
lval* args = lval_add(lval_sexpr(), lval_str(argv[i]));
/* Pass to builtin load and get the result */
lval* x = builtin_load(e, args);
/* If the result is an error be sure to print it */
if (x->type == LVAL_ERR) { lval_println(x); }
lval_del(x);
}
}
现在写一些基础程序并尝试去以命令行参数的方式去调用。
lispy example.lspy
当前内容版权归 NoahDragon 译 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 NoahDragon 译 .