this.parentScope = parentScope;
if (sourceCode == null) return;
Parser p = new Parser(sourceCode, sourceName, firstLine);
this.parentScope = parentScope;
if (sourceCode == null) return;
Parser p = new Parser(sourceCode, sourceName, firstLine);
- try {
- while(true) {
- int s = size();
- p.parseStatement(this, null);
- if (s == size()) break;
- }
- add(-1, Tokens.RETURN);
- } catch (Exception e) {
- if (Log.on) Log.log(Parser.class, e);
+ while(true) {
+ int s = size();
+ p.parseStatement(this, null);
+ if (s == size()) break;
}
public Object call(JS.Array args) throws JS.Exn { return call(args, new FunctionScope(sourceName, parentScope)); }
}
public Object call(JS.Array args) throws JS.Exn { return call(args, new FunctionScope(sourceName, parentScope)); }
if (v.equals("length")) return new Integer(((String)o).length());
else if (v.equals("substring")) return new JS.Callable() {
public Object call(JS.Array args) {
if (args.length() == 1) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue());
else if (args.length() == 2) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue(),
JS.toNumber(args.elementAt(1)).intValue());
if (v.equals("length")) return new Integer(((String)o).length());
else if (v.equals("substring")) return new JS.Callable() {
public Object call(JS.Array args) {
if (args.length() == 1) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue());
else if (args.length() == 2) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue(),
JS.toNumber(args.elementAt(1)).intValue());
if (args.length() != 1) return null;
return new Integer(((String)o).indexOf(args.elementAt(0).toString()));
} };
if (args.length() != 1) return null;
return new Integer(((String)o).indexOf(args.elementAt(0).toString()));
} };