|
|
@ -1,6 +1,6 @@ |
|
|
|
# minproto.leg -- minimal prototype langauge for semantic experiments |
|
|
|
# |
|
|
|
# last edited: 2024-05-23 15:37:35 by piumarta on zora-1034.local |
|
|
|
# last edited: 2024-05-26 10:21:16 by piumarta on xubuntu |
|
|
|
|
|
|
|
%{ |
|
|
|
; |
|
|
@ -3791,29 +3791,34 @@ int main(int argc, char **argv) |
|
|
|
|
|
|
|
trace = new(pObject); |
|
|
|
|
|
|
|
oop args = new(pObject); |
|
|
|
_set(intern("__argv__"), Symbol,value, args); |
|
|
|
|
|
|
|
signal(SIGINT, sigint); |
|
|
|
|
|
|
|
int repled = 0; |
|
|
|
int argn = 1; |
|
|
|
|
|
|
|
for (int argn = 1; argn < argc; ++argn) { |
|
|
|
while (argn < argc) { |
|
|
|
char *arg = argv[argn]; |
|
|
|
if ('-' == *arg) { |
|
|
|
while (*++arg) { |
|
|
|
switch (*arg) { |
|
|
|
case 'O': ++opt_O; break; |
|
|
|
case 'd': ++opt_d, ++opt_v; break; |
|
|
|
case 'v': ++opt_v; break; |
|
|
|
default: fatal("unknown command-line option '%c'", *arg); |
|
|
|
} |
|
|
|
if ('-' != *arg) break; |
|
|
|
while (*++arg) { |
|
|
|
switch (*arg) { |
|
|
|
case 'O': ++opt_O; continue; |
|
|
|
case 'd': ++opt_d, ++opt_v; continue; |
|
|
|
case 'v': ++opt_v; continue; |
|
|
|
default: fatal("unknown command-line option '%c'", *arg); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
replPath(arg); |
|
|
|
++repled; |
|
|
|
} |
|
|
|
++argn; |
|
|
|
} |
|
|
|
|
|
|
|
if (!repled) replFile(stdin); |
|
|
|
for (int i = argn; i < argc; ++i) |
|
|
|
Object_push(args, newString(argv[i])); |
|
|
|
|
|
|
|
if (argn == argc) |
|
|
|
replFile(stdin); |
|
|
|
else |
|
|
|
replPath(argv[argn]); |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|