# HG changeset patch # User one # Date 1283074118 -32400 # Node ID 29c0866e3a8413d790ec0ea9afff918d67727b3d # Parent 1f46c9d09c1e4f26f8755465b55f71ab1a56680d text diff -r 1f46c9d09c1e -r 29c0866e3a84 src/plparser/Dictionary.java --- a/src/plparser/Dictionary.java Sun Aug 29 12:47:11 2010 +0900 +++ b/src/plparser/Dictionary.java Sun Aug 29 18:28:38 2010 +0900 @@ -11,8 +11,6 @@ this.put(name, t); return t; } - - public Token reserve(String string) { return reserve(string,TokenID.Any); diff -r 1f46c9d09c1e -r 29c0866e3a84 src/plparser/PropertyListParser.java --- a/src/plparser/PropertyListParser.java Sun Aug 29 12:47:11 2010 +0900 +++ b/src/plparser/PropertyListParser.java Sun Aug 29 18:28:38 2010 +0900 @@ -10,8 +10,9 @@ Token nextToken; public PropertyListScanner scanner; private Dictionary dict; + // scope is necessary if you have to parse nested name scope // private PropertyListScope scope; - + public PropertyListParser(String string, PropertyListNodeFactory lf) { this.lf = lf; @@ -19,6 +20,11 @@ scanner.set(string); } + public PropertyListParser(PropertyListNodeFactory lf) { + this.lf = lf; + initialize(); + } + public void initReservedWord() { dict.reserve("=",TokenID.Assign); @@ -40,7 +46,8 @@ } public Node parse() { - if (scanner==null) return null; + if (scanner==null) return null; // internal error + if (scanner.cb==null) return null; // nothing to do nextToken(); return term(); } @@ -55,24 +62,24 @@ } - public void parseFile(String file) { + public Node parseFile(String file) { try { scanner = scanner.pushScannerFile(file); } catch (FileNotFoundException e) { error("Can't open "+file); - return; + return null; } - doParse(); + return doParse(); } - public void parse(InputStream file) { + public Node parse(InputStream file) { scanner = scanner.pushScannerFile(file,null); - doParse(); + return doParse(); } - public void parse(InputStream in, String prompt) { + public Node parse(InputStream in, String prompt) { scanner = scanner.pushScannerFile(in,prompt); - doParse(); + return doParse(); } public Node doParse() { diff -r 1f46c9d09c1e -r 29c0866e3a84 src/plparser/PropertyListScanner.java --- a/src/plparser/PropertyListScanner.java Sun Aug 29 12:47:11 2010 +0900 +++ b/src/plparser/PropertyListScanner.java Sun Aug 29 18:28:38 2010 +0900 @@ -108,7 +108,8 @@ String s1; cb.get(); scan.reset(); while((s1=next(stringPatEnd))==null) { - s += next(anyPat); cb.get(); scan.reset(); + s += cb.toString(); + cb.get(); scan.reset(); } s += s1; Token t; @@ -121,7 +122,8 @@ String s1; cb.get(); scan.reset(); while((s1=next(stringPat1End))==null) { - s += next(anyPat); cb.get(); scan.reset(); + s += cb.toString(); + cb.get(); scan.reset(); } s += s1; Token t;