Author: thomasm Date: Thu Mar 24 06:26:40 2011 New Revision: 1084853 URL: http://svn.apache.org/viewvc?rev=1084853&view=rev Log: Json/Jsop Tokenizer Modified: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/JsopTokenizer.java jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/NodeImpl.java jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/json/TestNode.java jackrabbit/sandbox/jackrabbit-j3/src/test/java/org/apache/jackrabbit/j3/json/TestTokenizer.java Modified: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/JsopTokenizer.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/JsopTokenizer.java?rev=1084853&r1=1084852&r2=1084853&view=diff ============================================================================== --- jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/JsopTokenizer.java (original) +++ jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/JsopTokenizer.java Thu Mar 24 06:26:40 2011 @@ -25,7 +25,7 @@ public class JsopTokenizer { // please note .0 and -.1 are not valid numbers final static int STRING = 0, NUMBER = 1, TRUE = 2, FALSE = 3, NULL = 4; - final static int ERROR = 5, END = 6; + final static int COMMENT = 5, ERROR = 6, END = 7; private static final String[] TYPE = { "string", "number", "true", "false", "null", "error", "end" @@ -44,6 +44,11 @@ public class JsopTokenizer { } public String toString() { + int todo; +// version as comment +// newlines in strings -> error +// project source code format + return jsop; } @@ -167,6 +172,22 @@ public class JsopTokenizer { case '>': case '^': return ch; + case '/': { + ch = jsop.charAt(pos); + if (ch != '*') { + return '/'; + } + pos++; + while (true) { + ch = jsop.charAt(pos++); + if (ch == '*' && jsop.charAt(pos) == '/') { + break; + } + } + currentToken = jsop.substring(start + 2, pos - 1); + pos += 2; + return COMMENT; + } case '-': ch = jsop.charAt(pos); if (ch < '0' || ch > '9') { Modified: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/NodeImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/NodeImpl.java?rev=1084853&r1=1084852&r2=1084853&view=diff ============================================================================== --- jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/NodeImpl.java (original) +++ jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/json/NodeImpl.java Thu Mar 24 06:26:40 2011 @@ -134,6 +134,10 @@ public class NodeImpl { return Val.TRUE; } else if (t.matches(JsopTokenizer.FALSE)) { return Val.FALSE; + } else if (t.matches(JsopTokenizer.COMMENT)) { + String typeName = t.getToken().trim(); + int type = PropertyType.valueFromName(typeName); + return Val.get(type, t.readString()); } return Val.get(t.readString()); } Modified: jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java?rev=1084853&r1=1084852&r2=1084853&view=diff ============================================================================== --- jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java (original) +++ jackrabbit/sandbox/jackrabbit-j3/src/main/java/org/apache/jackrabbit/j3/mc/Val.java Thu Mar 24 06:26:40 2011 @@ -242,6 +242,8 @@ public class Val implements Comparable