# HG changeset patch # User kono@ie.u-ryukyu.ac.jp # Date 1283053631 -32400 # Node ID 1f46c9d09c1e4f26f8755465b55f71ab1a56680d # Parent 151c7fe6c61aa991b024f263e6f27e920b5d79ab Simple Example worked. diff -r 151c7fe6c61a -r 1f46c9d09c1e src/plparser/ArrayProperty.java --- a/src/plparser/ArrayProperty.java Sun Aug 29 02:36:08 2010 +0900 +++ b/src/plparser/ArrayProperty.java Sun Aug 29 12:47:11 2010 +0900 @@ -8,8 +8,16 @@ public ArrayProperty(LinkedList list1) { list = list1; } - + public String toString() { - return "Array ("+list+")"; + String s = "Array(" ; + for(Property p:list) { + s += p; + s += ","; + } + s = s.substring(0, s.length()-1); + s += ")"; + return s; } + } diff -r 151c7fe6c61a -r 1f46c9d09c1e src/plparser/DictProperty.java --- a/src/plparser/DictProperty.java Sun Aug 29 02:36:08 2010 +0900 +++ b/src/plparser/DictProperty.java Sun Aug 29 12:47:11 2010 +0900 @@ -23,6 +23,7 @@ s += map.get(p); s += ","; } + s = s.substring(0, s.length()-1); s += "}"; return s; } diff -r 151c7fe6c61a -r 1f46c9d09c1e src/plparser/PropertyListParser.java --- a/src/plparser/PropertyListParser.java Sun Aug 29 02:36:08 2010 +0900 +++ b/src/plparser/PropertyListParser.java Sun Aug 29 12:47:11 2010 +0900 @@ -16,6 +16,7 @@ PropertyListNodeFactory lf) { this.lf = lf; initialize(); + scanner.set(string); } @@ -84,34 +85,48 @@ return n; } + /** + * expr1 {} Dictionary + * @return list of node (key,value,key,value) + */ public LinkedList expr1() { LinkedList list = new LinkedList(); expr2(list); while(nextToken.type == TokenID.Semicolon) { nextToken(); + if (nextToken.type==TokenID.CloseCurParen ) return list; expr2(list); } return list; } - + /** + * expr2 + * key = value + */ public void expr2(LinkedListlist) { Node n1 = term(); if (nextToken.type!=TokenID.Assign) { error("needs assignment"); return; } + nextToken(); Node n2 = term(); list.add(n1); list.add(n2); return; } + /** + * expr3 Array + * @return list of node + */ public LinkedList expr3() { LinkedListlist = new LinkedList(); Node n1 = term(); list.add(n1); while (nextToken.type==TokenID.Comma) { Node n2 = term(); + if (nextToken.type==TokenID.CloseParen) return list; list.add(n2); } return list;