public boolean parse(String[] args) {
int index=0;
while (index < args.length && args[index].startsWith("-")) {
String arg = args[index];
if (arg.equals("--help")) {
help = true;
return false;
}
else if (arg.equals("--version")) {
version = true;
return false;
}
else if (arg.equals("-")) {
if (!fixInteractive)
interactive = false;
filename = "-";
}
else if (arg.equals("-i")) {
fixInteractive = true;
interactive = true;
}
else if (arg.equals("-jar")) {
jar = true;
if (!fixInteractive)
interactive = false;
}
else if (arg.equals("-X")) {
Options.classBasedExceptions = false;
}
else if (arg.equals("-S")) {
Options.importSite = false;
}
else if (arg.equals("-c")) {
command = args[++index];
if (!fixInteractive) interactive = false;
break;
}
else if (arg.startsWith("-D")) {
String key = null;
String value = null;
int equals = arg.indexOf("=");
if (equals == -1) {
String arg2 = args[++index];
key = arg.substring(2, arg.length());
value = arg2;
}
else {
key = arg.substring(2, equals);
value = arg.substring(equals+1, arg.length());
}
setProperty(key, value);
}
else {
String opt = args[index];
if (opt.startsWith("--"))
opt = opt.substring(2);
else if (opt.startsWith("-"))
opt = opt.substring(1);
System.err.println("jpython: illegal option -- " + opt);
return false;
}
index += 1;
}
notice = interactive;
if (filename == null && index < args.length && command == null) {
filename = args[index++];
if (!fixInteractive)
interactive = false;
notice = false;
}
if (command != null)
notice = false;
int n = args.length-index+1;
argv = new String[n];
//new String[args.length-index+1];
if (filename != null)
argv[0] = filename;
else argv[0] = "";
for(int i=1; i< n; i++, index++) {
argv[i] = args[index];
}
return true;
}
|