You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/08/07 12:02:20 UTC

[08/16] jena git commit: JENA-1584: A Javacc Turtle parser for reference.

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/javacc/TurtleJavaccTokenManager.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/javacc/TurtleJavaccTokenManager.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/javacc/TurtleJavaccTokenManager.java
new file mode 100644
index 0000000..c73e7a7
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/extra/javacc/TurtleJavaccTokenManager.java
@@ -0,0 +1,1707 @@
+/* TurtleJavaccTokenManager.java */
+/* Generated By:JavaCC: Do not edit this line. TurtleJavaccTokenManager.java */
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.lang.extra.javacc;
+
+
+
+/** Token Manager. */
+public class TurtleJavaccTokenManager implements TurtleJavaccConstants {
+
+  /** Debug output. */
+  public  java.io.PrintStream debugStream = System.out;
+  /** Set debug output. */
+  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private int jjStopAtPos(int pos, int kind)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0(){
+   switch(curChar)
+   {
+      case 9:
+         jjmatchedKind = 2;
+         return jjMoveNfa_0(0, 0);
+      case 10:
+         jjmatchedKind = 3;
+         return jjMoveNfa_0(0, 0);
+      case 12:
+         jjmatchedKind = 5;
+         return jjMoveNfa_0(0, 0);
+      case 13:
+         jjmatchedKind = 4;
+         return jjMoveNfa_0(0, 0);
+      case 32:
+         jjmatchedKind = 1;
+         return jjMoveNfa_0(0, 0);
+      case 40:
+         jjmatchedKind = 37;
+         return jjMoveNfa_0(0, 0);
+      case 41:
+         jjmatchedKind = 38;
+         return jjMoveNfa_0(0, 0);
+      case 43:
+         jjmatchedKind = 17;
+         return jjMoveNfa_0(0, 0);
+      case 44:
+         jjmatchedKind = 46;
+         return jjMoveNfa_0(0, 0);
+      case 45:
+         jjmatchedKind = 18;
+         return jjMoveNfa_0(0, 0);
+      case 46:
+         jjmatchedKind = 47;
+         return jjMoveNfa_0(0, 0);
+      case 59:
+         jjmatchedKind = 45;
+         return jjMoveNfa_0(0, 0);
+      case 64:
+         jjmatchedKind = 49;
+         return jjMoveStringLiteralDfa1_0(0x600L);
+      case 66:
+         return jjMoveStringLiteralDfa1_0(0x800L);
+      case 70:
+         return jjMoveStringLiteralDfa1_0(0x4000L);
+      case 80:
+         return jjMoveStringLiteralDfa1_0(0x1000L);
+      case 84:
+         return jjMoveStringLiteralDfa1_0(0x2000L);
+      case 91:
+         jjmatchedKind = 42;
+         return jjMoveNfa_0(0, 0);
+      case 93:
+         jjmatchedKind = 43;
+         return jjMoveNfa_0(0, 0);
+      case 94:
+         return jjMoveStringLiteralDfa1_0(0x1000000000000L);
+      case 97:
+         jjmatchedKind = 8;
+         return jjMoveNfa_0(0, 0);
+      case 98:
+         return jjMoveStringLiteralDfa1_0(0x800L);
+      case 102:
+         return jjMoveStringLiteralDfa1_0(0x4000L);
+      case 112:
+         return jjMoveStringLiteralDfa1_0(0x1000L);
+      case 116:
+         return jjMoveStringLiteralDfa1_0(0x2000L);
+      case 123:
+         jjmatchedKind = 40;
+         return jjMoveNfa_0(0, 0);
+      case 125:
+         jjmatchedKind = 41;
+         return jjMoveNfa_0(0, 0);
+      case 65279:
+         jjmatchedKind = 16;
+         return jjMoveNfa_0(0, 0);
+      default :
+         return jjMoveNfa_0(0, 0);
+   }
+}
+private int jjMoveStringLiteralDfa1_0(long active0){
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(0, 0);
+   }
+   switch(curChar)
+   {
+      case 65:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4800L);
+      case 82:
+         return jjMoveStringLiteralDfa2_0(active0, 0x3000L);
+      case 94:
+         if ((active0 & 0x1000000000000L) != 0L)
+         {
+            jjmatchedKind = 48;
+            jjmatchedPos = 1;
+         }
+         break;
+      case 97:
+         return jjMoveStringLiteralDfa2_0(active0, 0x4800L);
+      case 98:
+         return jjMoveStringLiteralDfa2_0(active0, 0x400L);
+      case 112:
+         return jjMoveStringLiteralDfa2_0(active0, 0x200L);
+      case 114:
+         return jjMoveStringLiteralDfa2_0(active0, 0x3000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(0, 1);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0){
+   if (((active0 &= old0)) == 0L)
+      return jjMoveNfa_0(0, 1);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(0, 1);
+   }
+   switch(curChar)
+   {
+      case 69:
+         return jjMoveStringLiteralDfa3_0(active0, 0x1000L);
+      case 76:
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000L);
+      case 83:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800L);
+      case 85:
+         return jjMoveStringLiteralDfa3_0(active0, 0x2000L);
+      case 97:
+         return jjMoveStringLiteralDfa3_0(active0, 0x400L);
+      case 101:
+         return jjMoveStringLiteralDfa3_0(active0, 0x1000L);
+      case 108:
+         return jjMoveStringLiteralDfa3_0(active0, 0x4000L);
+      case 114:
+         return jjMoveStringLiteralDfa3_0(active0, 0x200L);
+      case 115:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800L);
+      case 117:
+         return jjMoveStringLiteralDfa3_0(active0, 0x2000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(0, 2);
+}
+private int jjMoveStringLiteralDfa3_0(long old0, long active0){
+   if (((active0 &= old0)) == 0L)
+      return jjMoveNfa_0(0, 2);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(0, 2);
+   }
+   switch(curChar)
+   {
+      case 69:
+         if ((active0 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 11;
+            jjmatchedPos = 3;
+         }
+         else if ((active0 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 13;
+            jjmatchedPos = 3;
+         }
+         break;
+      case 70:
+         return jjMoveStringLiteralDfa4_0(active0, 0x1000L);
+      case 83:
+         return jjMoveStringLiteralDfa4_0(active0, 0x4000L);
+      case 101:
+         if ((active0 & 0x800L) != 0L)
+         {
+            jjmatchedKind = 11;
+            jjmatchedPos = 3;
+         }
+         else if ((active0 & 0x2000L) != 0L)
+         {
+            jjmatchedKind = 13;
+            jjmatchedPos = 3;
+         }
+         return jjMoveStringLiteralDfa4_0(active0, 0x200L);
+      case 102:
+         return jjMoveStringLiteralDfa4_0(active0, 0x1000L);
+      case 115:
+         return jjMoveStringLiteralDfa4_0(active0, 0x4400L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(0, 3);
+}
+private int jjMoveStringLiteralDfa4_0(long old0, long active0){
+   if (((active0 &= old0)) == 0L)
+      return jjMoveNfa_0(0, 3);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(0, 3);
+   }
+   switch(curChar)
+   {
+      case 69:
+         if ((active0 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 14;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 73:
+         return jjMoveStringLiteralDfa5_0(active0, 0x1000L);
+      case 101:
+         if ((active0 & 0x400L) != 0L)
+         {
+            jjmatchedKind = 10;
+            jjmatchedPos = 4;
+         }
+         else if ((active0 & 0x4000L) != 0L)
+         {
+            jjmatchedKind = 14;
+            jjmatchedPos = 4;
+         }
+         break;
+      case 102:
+         return jjMoveStringLiteralDfa5_0(active0, 0x200L);
+      case 105:
+         return jjMoveStringLiteralDfa5_0(active0, 0x1000L);
+      default :
+         break;
+   }
+   return jjMoveNfa_0(0, 4);
+}
+private int jjMoveStringLiteralDfa5_0(long old0, long active0){
+   if (((active0 &= old0)) == 0L)
+      return jjMoveNfa_0(0, 4);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(0, 4);
+   }
+   switch(curChar)
+   {
+      case 88:
+         if ((active0 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 12;
+            jjmatchedPos = 5;
+         }
+         break;
+      case 105:
+         return jjMoveStringLiteralDfa6_0(active0, 0x200L);
+      case 120:
+         if ((active0 & 0x1000L) != 0L)
+         {
+            jjmatchedKind = 12;
+            jjmatchedPos = 5;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(0, 5);
+}
+private int jjMoveStringLiteralDfa6_0(long old0, long active0){
+   if (((active0 &= old0)) == 0L)
+      return jjMoveNfa_0(0, 5);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+   return jjMoveNfa_0(0, 5);
+   }
+   switch(curChar)
+   {
+      case 120:
+         if ((active0 & 0x200L) != 0L)
+         {
+            jjmatchedKind = 9;
+            jjmatchedPos = 6;
+         }
+         break;
+      default :
+         break;
+   }
+   return jjMoveNfa_0(0, 6);
+}
+static final long[] jjbitVec0 = {
+   0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec2 = {
+   0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec3 = {
+   0xfffe7000fffffff6L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x7e00000000ffffffL
+};
+static final long[] jjbitVec4 = {
+   0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec5 = {
+   0x0L, 0xbfff000000000000L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec6 = {
+   0x3000L, 0xffff000000000000L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec7 = {
+   0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
+};
+static final long[] jjbitVec8 = {
+   0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffL
+};
+static final long[] jjbitVec9 = {
+   0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffffffffL
+};
+static final long[] jjbitVec10 = {
+   0x0L, 0x0L, 0x80000000000000L, 0xff7fffffff7fffffL
+};
+static final long[] jjbitVec11 = {
+   0xffffffffffffffffL, 0xbfffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+static final long[] jjbitVec12 = {
+   0x8000000000003000L, 0xffff000000000001L, 0xffffffffffffffffL, 0xffffffffffffffffL
+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+   int strKind = jjmatchedKind;
+   int strPos = jjmatchedPos;
+   int seenUpto;
+   input_stream.backup(seenUpto = curPos + 1);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) { throw new Error("Internal Error"); }
+   curPos = 0;
+   int startsAt = 0;
+   jjnewStateCnt = 160;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x3ff000000000000L & l) != 0L)
+                  {
+                     if (kind > 20)
+                        kind = 20;
+                     { jjCheckNAddStates(0, 6); }
+                  }
+                  else if (curChar == 58)
+                  {
+                     if (kind > 52)
+                        kind = 52;
+                     { jjCheckNAddStates(7, 9); }
+                  }
+                  else if (curChar == 45)
+                     { jjCheckNAddStates(10, 14); }
+                  else if (curChar == 43)
+                     { jjCheckNAddStates(15, 19); }
+                  else if (curChar == 46)
+                     { jjCheckNAddTwoStates(78, 90); }
+                  else if (curChar == 60)
+                     { jjCheckNAddStates(20, 22); }
+                  else if (curChar == 40)
+                     { jjCheckNAddStates(23, 25); }
+                  else if (curChar == 34)
+                     jjstateSet[jjnewStateCnt++] = 39;
+                  else if (curChar == 39)
+                     jjstateSet[jjnewStateCnt++] = 27;
+                  else if (curChar == 35)
+                  {
+                     if (kind > 7)
+                        kind = 7;
+                     { jjCheckNAddStates(26, 28); }
+                  }
+                  if (curChar == 34)
+                     { jjCheckNAddStates(29, 31); }
+                  else if (curChar == 39)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 1:
+                  if ((0xffffffffffffdbffL & l) == 0L)
+                     break;
+                  if (kind > 7)
+                     kind = 7;
+                  { jjCheckNAddStates(26, 28); }
+                  break;
+               case 2:
+                  if ((0x2400L & l) != 0L && kind > 7)
+                     kind = 7;
+                  break;
+               case 3:
+                  if (curChar == 10 && kind > 7)
+                     kind = 7;
+                  break;
+               case 4:
+                  if (curChar == 13)
+                     jjstateSet[jjnewStateCnt++] = 3;
+                  break;
+               case 5:
+                  if (curChar == 39)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 6:
+                  if ((0xffffff7fffffdbffL & l) != 0L)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 7:
+                  if (curChar == 39 && kind > 33)
+                     kind = 33;
+                  break;
+               case 9:
+                  if ((0x8400000000L & l) != 0L)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 11:
+                  if (curChar == 34)
+                     { jjCheckNAddStates(29, 31); }
+                  break;
+               case 12:
+                  if ((0xfffffffbffffdbffL & l) != 0L)
+                     { jjCheckNAddStates(29, 31); }
+                  break;
+               case 13:
+                  if (curChar == 34 && kind > 34)
+                     kind = 34;
+                  break;
+               case 15:
+                  if ((0x8400000000L & l) != 0L)
+                     { jjCheckNAddStates(29, 31); }
+                  break;
+               case 17:
+                  if (curChar == 39)
+                     { jjCheckNAddStates(35, 38); }
+                  break;
+               case 18:
+               case 21:
+                  if (curChar == 39)
+                     { jjCheckNAddTwoStates(19, 22); }
+                  break;
+               case 19:
+                  if ((0xffffff7fffffffffL & l) != 0L)
+                     { jjCheckNAddStates(35, 38); }
+                  break;
+               case 20:
+                  if (curChar == 39)
+                     { jjAddStates(39, 40); }
+                  break;
+               case 23:
+                  if ((0x8400000000L & l) != 0L)
+                     { jjCheckNAddStates(35, 38); }
+                  break;
+               case 25:
+                  if (curChar == 39 && kind > 35)
+                     kind = 35;
+                  break;
+               case 26:
+                  if (curChar == 39)
+                     jjstateSet[jjnewStateCnt++] = 25;
+                  break;
+               case 27:
+                  if (curChar == 39)
+                     jjstateSet[jjnewStateCnt++] = 17;
+                  break;
+               case 28:
+                  if (curChar == 39)
+                     jjstateSet[jjnewStateCnt++] = 27;
+                  break;
+               case 29:
+                  if (curChar == 34)
+                     { jjCheckNAddStates(41, 44); }
+                  break;
+               case 30:
+               case 33:
+                  if (curChar == 34)
+                     { jjCheckNAddTwoStates(31, 34); }
+                  break;
+               case 31:
+                  if ((0xfffffffbffffffffL & l) != 0L)
+                     { jjCheckNAddStates(41, 44); }
+                  break;
+               case 32:
+                  if (curChar == 34)
+                     { jjAddStates(45, 46); }
+                  break;
+               case 35:
+                  if ((0x8400000000L & l) != 0L)
+                     { jjCheckNAddStates(41, 44); }
+                  break;
+               case 37:
+                  if (curChar == 34 && kind > 36)
+                     kind = 36;
+                  break;
+               case 38:
+                  if (curChar == 34)
+                     jjstateSet[jjnewStateCnt++] = 37;
+                  break;
+               case 39:
+                  if (curChar == 34)
+                     jjstateSet[jjnewStateCnt++] = 29;
+                  break;
+               case 40:
+                  if (curChar == 34)
+                     jjstateSet[jjnewStateCnt++] = 39;
+                  break;
+               case 41:
+                  if (curChar == 40)
+                     { jjCheckNAddStates(23, 25); }
+                  break;
+               case 42:
+                  if (curChar == 35)
+                     { jjCheckNAddStates(47, 52); }
+                  break;
+               case 43:
+                  if ((0xffffffffffffdbffL & l) != 0L)
+                     { jjCheckNAddStates(47, 52); }
+                  break;
+               case 44:
+                  if ((0x2400L & l) != 0L)
+                     { jjCheckNAddStates(23, 25); }
+                  break;
+               case 45:
+                  if ((0x100003600L & l) != 0L)
+                     { jjCheckNAddStates(23, 25); }
+                  break;
+               case 46:
+                  if (curChar == 41 && kind > 39)
+                     kind = 39;
+                  break;
+               case 47:
+                  if (curChar == 10)
+                     { jjCheckNAddStates(23, 25); }
+                  break;
+               case 48:
+                  if (curChar == 13)
+                     jjstateSet[jjnewStateCnt++] = 47;
+                  break;
+               case 50:
+                  if (curChar == 35)
+                     { jjCheckNAddStates(53, 58); }
+                  break;
+               case 51:
+                  if ((0xffffffffffffdbffL & l) != 0L)
+                     { jjCheckNAddStates(53, 58); }
+                  break;
+               case 52:
+                  if ((0x2400L & l) != 0L)
+                     { jjCheckNAddStates(59, 61); }
+                  break;
+               case 53:
+                  if ((0x100003600L & l) != 0L)
+                     { jjCheckNAddStates(59, 61); }
+                  break;
+               case 55:
+                  if (curChar == 10)
+                     { jjCheckNAddStates(59, 61); }
+                  break;
+               case 56:
+                  if (curChar == 13)
+                     jjstateSet[jjnewStateCnt++] = 55;
+                  break;
+               case 57:
+                  if (curChar == 60)
+                     { jjCheckNAddStates(20, 22); }
+                  break;
+               case 58:
+                  if ((0xaffffffa00000000L & l) != 0L)
+                     { jjCheckNAddStates(20, 22); }
+                  break;
+               case 61:
+                  if (curChar == 62 && kind > 51)
+                     kind = 51;
+                  break;
+               case 62:
+                  if (curChar == 58)
+                     jjstateSet[jjnewStateCnt++] = 63;
+                  break;
+               case 63:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 54)
+                     kind = 54;
+                  { jjCheckNAddTwoStates(64, 65); }
+                  break;
+               case 64:
+                  if ((0x3ff600000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(64, 65); }
+                  break;
+               case 65:
+                  if ((0x3ff200000000000L & l) != 0L && kind > 54)
+                     kind = 54;
+                  break;
+               case 69:
+                  if (curChar == 45)
+                     { jjCheckNAdd(70); }
+                  break;
+               case 70:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 55)
+                     kind = 55;
+                  { jjCheckNAddTwoStates(69, 70); }
+                  break;
+               case 73:
+                  if ((0x8400000000L & l) != 0L && kind > 32)
+                     kind = 32;
+                  break;
+               case 74:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 20)
+                     kind = 20;
+                  { jjCheckNAddStates(0, 6); }
+                  break;
+               case 75:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 20)
+                     kind = 20;
+                  { jjCheckNAdd(75); }
+                  break;
+               case 76:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(76, 77); }
+                  break;
+               case 77:
+                  if (curChar == 46)
+                     { jjCheckNAdd(78); }
+                  break;
+               case 78:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 21)
+                     kind = 21;
+                  { jjCheckNAdd(78); }
+                  break;
+               case 79:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(79, 80); }
+                  break;
+               case 80:
+                  if (curChar == 46)
+                     { jjCheckNAddTwoStates(81, 82); }
+                  break;
+               case 81:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(81, 82); }
+                  break;
+               case 83:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(84); }
+                  break;
+               case 84:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 22)
+                     kind = 22;
+                  { jjCheckNAdd(84); }
+                  break;
+               case 85:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(85, 86); }
+                  break;
+               case 87:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(88); }
+                  break;
+               case 88:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 22)
+                     kind = 22;
+                  { jjCheckNAdd(88); }
+                  break;
+               case 89:
+                  if (curChar == 46)
+                     { jjCheckNAddTwoStates(78, 90); }
+                  break;
+               case 90:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(90, 91); }
+                  break;
+               case 92:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(93); }
+                  break;
+               case 93:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 22)
+                     kind = 22;
+                  { jjCheckNAdd(93); }
+                  break;
+               case 94:
+                  if (curChar == 43)
+                     { jjCheckNAddStates(15, 19); }
+                  break;
+               case 95:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 23)
+                     kind = 23;
+                  { jjCheckNAdd(95); }
+                  break;
+               case 96:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(96, 97); }
+                  break;
+               case 97:
+                  if (curChar == 46)
+                     { jjCheckNAdd(98); }
+                  break;
+               case 98:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 24)
+                     kind = 24;
+                  { jjCheckNAdd(98); }
+                  break;
+               case 99:
+                  if (curChar == 46)
+                     { jjCheckNAdd(100); }
+                  break;
+               case 100:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(100, 101); }
+                  break;
+               case 102:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(103); }
+                  break;
+               case 103:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 25)
+                     kind = 25;
+                  { jjCheckNAdd(103); }
+                  break;
+               case 104:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddStates(62, 65); }
+                  break;
+               case 105:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(105, 106); }
+                  break;
+               case 106:
+                  if (curChar == 46)
+                     { jjCheckNAddTwoStates(107, 108); }
+                  break;
+               case 107:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(107, 108); }
+                  break;
+               case 109:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(110); }
+                  break;
+               case 110:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 25)
+                     kind = 25;
+                  { jjCheckNAdd(110); }
+                  break;
+               case 111:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(111, 112); }
+                  break;
+               case 113:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(114); }
+                  break;
+               case 114:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 25)
+                     kind = 25;
+                  { jjCheckNAdd(114); }
+                  break;
+               case 115:
+                  if (curChar == 45)
+                     { jjCheckNAddStates(10, 14); }
+                  break;
+               case 116:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 26)
+                     kind = 26;
+                  { jjCheckNAdd(116); }
+                  break;
+               case 117:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(117, 118); }
+                  break;
+               case 118:
+                  if (curChar == 46)
+                     { jjCheckNAdd(119); }
+                  break;
+               case 119:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 27)
+                     kind = 27;
+                  { jjCheckNAdd(119); }
+                  break;
+               case 120:
+                  if (curChar == 46)
+                     { jjCheckNAdd(121); }
+                  break;
+               case 121:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(121, 122); }
+                  break;
+               case 123:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(124); }
+                  break;
+               case 124:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 28)
+                     kind = 28;
+                  { jjCheckNAdd(124); }
+                  break;
+               case 125:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddStates(66, 69); }
+                  break;
+               case 126:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(126, 127); }
+                  break;
+               case 127:
+                  if (curChar == 46)
+                     { jjCheckNAddTwoStates(128, 129); }
+                  break;
+               case 128:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(128, 129); }
+                  break;
+               case 130:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(131); }
+                  break;
+               case 131:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 28)
+                     kind = 28;
+                  { jjCheckNAdd(131); }
+                  break;
+               case 132:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddTwoStates(132, 133); }
+                  break;
+               case 134:
+                  if ((0x280000000000L & l) != 0L)
+                     { jjCheckNAdd(135); }
+                  break;
+               case 135:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 28)
+                     kind = 28;
+                  { jjCheckNAdd(135); }
+                  break;
+               case 137:
+                  if ((0x3ff600000000000L & l) != 0L)
+                     { jjAddStates(70, 71); }
+                  break;
+               case 138:
+                  if ((0x3ff200000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 139;
+                  break;
+               case 139:
+                  if (curChar == 58 && kind > 52)
+                     kind = 52;
+                  break;
+               case 140:
+                  if ((0x3ff600000000000L & l) != 0L)
+                     { jjAddStates(72, 73); }
+                  break;
+               case 141:
+                  if ((0x3ff200000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 142;
+                  break;
+               case 142:
+                  if (curChar == 58)
+                     { jjCheckNAddStates(7, 9); }
+                  break;
+               case 143:
+                  if ((0x7ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               case 144:
+                  if ((0x7ff600000000000L & l) != 0L)
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 145:
+                  if ((0x7ff200000000000L & l) != 0L && kind > 53)
+                     kind = 53;
+                  break;
+               case 147:
+                  if ((0xa800fffa00000000L & l) != 0L)
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 148:
+                  if (curChar == 37)
+                     { jjAddStates(78, 79); }
+                  break;
+               case 149:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 150;
+                  break;
+               case 150:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 151:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 152;
+                  break;
+               case 152:
+                  if ((0x3ff000000000000L & l) != 0L && kind > 53)
+                     kind = 53;
+                  break;
+               case 153:
+                  if ((0xa800fffa00000000L & l) != 0L && kind > 53)
+                     kind = 53;
+                  break;
+               case 155:
+                  if ((0xa800fffa00000000L & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               case 156:
+                  if (curChar == 37)
+                     jjstateSet[jjnewStateCnt++] = 157;
+                  break;
+               case 157:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 158;
+                  break;
+               case 158:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               case 159:
+                  if (curChar != 58)
+                     break;
+                  if (kind > 52)
+                     kind = 52;
+                  { jjCheckNAddStates(7, 9); }
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x7fffffe07fffffeL & l) != 0L)
+                     { jjCheckNAddStates(80, 85); }
+                  else if (curChar == 92)
+                     { jjAddStates(86, 87); }
+                  else if (curChar == 64)
+                     { jjCheckNAdd(68); }
+                  else if (curChar == 95)
+                     jjstateSet[jjnewStateCnt++] = 62;
+                  else if (curChar == 91)
+                     { jjCheckNAddStates(59, 61); }
+                  break;
+               case 1:
+                  if (kind > 7)
+                     kind = 7;
+                  { jjAddStates(26, 28); }
+                  break;
+               case 6:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 8:
+                  if (curChar == 92)
+                     { jjAddStates(88, 89); }
+                  break;
+               case 9:
+                  if ((0x14404410000000L & l) != 0L)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 10:
+                  if ((0x20000000200000L & l) != 0L)
+                     { jjCheckNAddStates(32, 34); }
+                  break;
+               case 12:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(29, 31); }
+                  break;
+               case 14:
+                  if (curChar == 92)
+                     { jjAddStates(90, 91); }
+                  break;
+               case 15:
+                  if ((0x14404410000000L & l) != 0L)
+                     { jjCheckNAddStates(29, 31); }
+                  break;
+               case 16:
+                  if ((0x20000000200000L & l) != 0L)
+                     { jjCheckNAddStates(29, 31); }
+                  break;
+               case 19:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(35, 38); }
+                  break;
+               case 22:
+                  if (curChar == 92)
+                     { jjAddStates(92, 93); }
+                  break;
+               case 23:
+                  if ((0x14404410000000L & l) != 0L)
+                     { jjCheckNAddStates(35, 38); }
+                  break;
+               case 24:
+                  if ((0x20000000200000L & l) != 0L)
+                     { jjCheckNAddStates(35, 38); }
+                  break;
+               case 31:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     { jjCheckNAddStates(41, 44); }
+                  break;
+               case 34:
+                  if (curChar == 92)
+                     { jjAddStates(94, 95); }
+                  break;
+               case 35:
+                  if ((0x14404410000000L & l) != 0L)
+                     { jjCheckNAddStates(41, 44); }
+                  break;
+               case 36:
+                  if ((0x20000000200000L & l) != 0L)
+                     { jjCheckNAddStates(41, 44); }
+                  break;
+               case 43:
+                  { jjAddStates(47, 52); }
+                  break;
+               case 49:
+                  if (curChar == 91)
+                     { jjCheckNAddStates(59, 61); }
+                  break;
+               case 51:
+                  { jjCheckNAddStates(53, 58); }
+                  break;
+               case 54:
+                  if (curChar == 93 && kind > 44)
+                     kind = 44;
+                  break;
+               case 58:
+                  if ((0xc7fffffeafffffffL & l) != 0L)
+                     { jjCheckNAddStates(20, 22); }
+                  break;
+               case 59:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 60;
+                  break;
+               case 60:
+                  if ((0x20000000200000L & l) != 0L)
+                     { jjCheckNAddStates(20, 22); }
+                  break;
+               case 63:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 54)
+                     kind = 54;
+                  { jjCheckNAddTwoStates(64, 65); }
+                  break;
+               case 64:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     { jjCheckNAddTwoStates(64, 65); }
+                  break;
+               case 65:
+                  if ((0x7fffffe87fffffeL & l) != 0L && kind > 54)
+                     kind = 54;
+                  break;
+               case 66:
+                  if (curChar == 95)
+                     jjstateSet[jjnewStateCnt++] = 62;
+                  break;
+               case 67:
+                  if (curChar == 64)
+                     { jjCheckNAdd(68); }
+                  break;
+               case 68:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 55)
+                     kind = 55;
+                  { jjCheckNAddTwoStates(68, 69); }
+                  break;
+               case 70:
+                  if ((0x7fffffe07fffffeL & l) == 0L)
+                     break;
+                  if (kind > 55)
+                     kind = 55;
+                  { jjCheckNAddTwoStates(69, 70); }
+                  break;
+               case 71:
+                  if (curChar == 92)
+                     { jjAddStates(86, 87); }
+                  break;
+               case 72:
+                  if ((0x20000000200000L & l) != 0L && kind > 32)
+                     kind = 32;
+                  break;
+               case 73:
+                  if ((0x14404410000000L & l) != 0L && kind > 32)
+                     kind = 32;
+                  break;
+               case 82:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(96, 97); }
+                  break;
+               case 86:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(98, 99); }
+                  break;
+               case 91:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(100, 101); }
+                  break;
+               case 101:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(102, 103); }
+                  break;
+               case 108:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(104, 105); }
+                  break;
+               case 112:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(106, 107); }
+                  break;
+               case 122:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(108, 109); }
+                  break;
+               case 129:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(110, 111); }
+                  break;
+               case 133:
+                  if ((0x2000000020L & l) != 0L)
+                     { jjAddStates(112, 113); }
+                  break;
+               case 136:
+                  if ((0x7fffffe07fffffeL & l) != 0L)
+                     { jjCheckNAddStates(80, 85); }
+                  break;
+               case 137:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     { jjCheckNAddTwoStates(137, 138); }
+                  break;
+               case 138:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     { jjCheckNAdd(139); }
+                  break;
+               case 140:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     { jjCheckNAddTwoStates(140, 141); }
+                  break;
+               case 141:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     { jjCheckNAdd(142); }
+                  break;
+               case 143:
+                  if ((0x7fffffe87fffffeL & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               case 144:
+                  if ((0x7fffffe87fffffeL & l) != 0L)
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 145:
+                  if ((0x7fffffe87fffffeL & l) != 0L && kind > 53)
+                     kind = 53;
+                  break;
+               case 146:
+                  if (curChar == 92)
+                     { jjAddStates(114, 115); }
+                  break;
+               case 147:
+                  if ((0x4000000080000001L & l) != 0L)
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 149:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 150;
+                  break;
+               case 150:
+                  if ((0x7e0000007eL & l) != 0L)
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 151:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 152;
+                  break;
+               case 152:
+                  if ((0x7e0000007eL & l) != 0L && kind > 53)
+                     kind = 53;
+                  break;
+               case 153:
+                  if ((0x4000000080000001L & l) != 0L && kind > 53)
+                     kind = 53;
+                  break;
+               case 154:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 155;
+                  break;
+               case 155:
+                  if ((0x4000000080000001L & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               case 157:
+                  if ((0x7e0000007eL & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 158;
+                  break;
+               case 158:
+                  if ((0x7e0000007eL & l) == 0L)
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int hiByte = (curChar >> 8);
+         int i1 = hiByte >> 6;
+         long l1 = 1L << (hiByte & 077);
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAddStates(80, 85); }
+                  break;
+               case 1:
+                  if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 7)
+                     kind = 7;
+                  { jjAddStates(26, 28); }
+                  break;
+               case 6:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(32, 34); }
+                  break;
+               case 12:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(29, 31); }
+                  break;
+               case 19:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(35, 38); }
+                  break;
+               case 31:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(41, 44); }
+                  break;
+               case 43:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(47, 52); }
+                  break;
+               case 51:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(53, 58); }
+                  break;
+               case 58:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     { jjAddStates(20, 22); }
+                  break;
+               case 63:
+                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 54)
+                     kind = 54;
+                  { jjCheckNAddTwoStates(64, 65); }
+                  break;
+               case 64:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAddTwoStates(64, 65); }
+                  break;
+               case 65:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 54)
+                     kind = 54;
+                  break;
+               case 137:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAddTwoStates(137, 138); }
+                  break;
+               case 138:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAdd(139); }
+                  break;
+               case 140:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAddTwoStates(140, 141); }
+                  break;
+               case 141:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAdd(142); }
+                  break;
+               case 143:
+                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 53)
+                     kind = 53;
+                  { jjCheckNAddStates(74, 77); }
+                  break;
+               case 144:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2))
+                     { jjCheckNAddStates(74, 77); }
+                  break;
+               case 145:
+                  if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 53)
+                     kind = 53;
+                  break;
+               default : if (i1 == 0 || l1 == 0 || i2 == 0 ||  l2 == 0) break; else break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 160 - (jjnewStateCnt = startsAt)))
+         break;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { break; }
+   }
+   if (jjmatchedPos > strPos)
+      return curPos;
+
+   int toRet = Math.max(curPos, seenUpto);
+
+   if (curPos < toRet)
+      for (i = toRet - Math.min(curPos, seenUpto); i-- > 0; )
+         try { curChar = input_stream.readChar(); }
+         catch(java.io.IOException e) { throw new Error("Internal Error : Please send a bug report."); }
+
+   if (jjmatchedPos < strPos)
+   {
+      jjmatchedKind = strKind;
+      jjmatchedPos = strPos;
+   }
+   else if (jjmatchedPos == strPos && jjmatchedKind > strKind)
+      jjmatchedKind = strKind;
+
+   return toRet;
+}
+static final int[] jjnextStates = {
+   75, 76, 77, 79, 80, 85, 86, 143, 154, 156, 116, 117, 118, 120, 125, 95, 
+   96, 97, 99, 104, 58, 59, 61, 42, 45, 46, 1, 2, 4, 12, 13, 14, 
+   6, 7, 8, 18, 19, 20, 22, 21, 26, 30, 31, 32, 34, 33, 38, 42, 
+   43, 44, 48, 45, 46, 50, 51, 52, 56, 53, 54, 50, 53, 54, 105, 106, 
+   111, 112, 126, 127, 132, 133, 137, 138, 140, 141, 144, 145, 146, 148, 149, 151, 
+   137, 138, 139, 140, 141, 142, 72, 73, 9, 10, 15, 16, 23, 24, 35, 36, 
+   83, 84, 87, 88, 92, 93, 102, 103, 109, 110, 113, 114, 123, 124, 130, 131, 
+   134, 135, 147, 153, 
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec2[i2] & l2) != 0L);
+      default :
+         if ((jjbitVec0[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec4[i2] & l2) != 0L);
+      case 3:
+         return ((jjbitVec5[i2] & l2) != 0L);
+      case 32:
+         return ((jjbitVec6[i2] & l2) != 0L);
+      case 33:
+         return ((jjbitVec7[i2] & l2) != 0L);
+      case 47:
+         return ((jjbitVec8[i2] & l2) != 0L);
+      case 48:
+         return ((jjbitVec0[i2] & l2) != 0L);
+      case 255:
+         return ((jjbitVec9[i2] & l2) != 0L);
+      default :
+         if ((jjbitVec3[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+private static final boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec10[i2] & l2) != 0L);
+      case 3:
+         return ((jjbitVec11[i2] & l2) != 0L);
+      case 32:
+         return ((jjbitVec12[i2] & l2) != 0L);
+      case 33:
+         return ((jjbitVec7[i2] & l2) != 0L);
+      case 47:
+         return ((jjbitVec8[i2] & l2) != 0L);
+      case 48:
+         return ((jjbitVec0[i2] & l2) != 0L);
+      case 255:
+         return ((jjbitVec9[i2] & l2) != 0L);
+      default :
+         if ((jjbitVec3[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, null, null, null, null, "\141", 
+"\100\160\162\145\146\151\170", "\100\142\141\163\145", null, null, null, null, null, "\ufeff", "\53", "\55", 
+null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
+null, null, null, null, "\50", "\51", null, "\173", "\175", "\133", "\135", null, 
+"\73", "\54", "\56", "\136\136", "\100", null, null, null, null, null, null, null, 
+null, null, null, null, null, null, null, null, null, null, null, null, };
+protected Token jjFillToken()
+{
+   final Token t;
+   final String curTokenImage;
+   final int beginLine;
+   final int endLine;
+   final int beginColumn;
+   final int endColumn;
+   String im = jjstrLiteralImages[jjmatchedKind];
+   curTokenImage = (im == null) ? input_stream.GetImage() : im;
+   beginLine = input_stream.getBeginLine();
+   beginColumn = input_stream.getBeginColumn();
+   endLine = input_stream.getEndLine();
+   endColumn = input_stream.getEndColumn();
+   t = Token.newToken(jjmatchedKind, curTokenImage);
+
+   t.beginLine = beginLine;
+   t.endLine = endLine;
+   t.beginColumn = beginColumn;
+   t.endColumn = endColumn;
+
+   return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken() 
+{
+  Token specialToken = null;
+  Token matchedToken;
+  int curPos = 0;
+
+  EOFLoop :
+  for (;;)
+  {
+   try
+   {
+      curChar = input_stream.BeginToken();
+   }
+   catch(java.io.IOException e)
+   {
+      jjmatchedKind = 0;
+      jjmatchedPos = -1;
+      matchedToken = jjFillToken();
+      matchedToken.specialToken = specialToken;
+      return matchedToken;
+   }
+
+   jjmatchedKind = 0x7fffffff;
+   jjmatchedPos = 0;
+   curPos = jjMoveStringLiteralDfa0_0();
+   if (jjmatchedKind != 0x7fffffff)
+   {
+      if (jjmatchedPos + 1 < curPos)
+         input_stream.backup(curPos - jjmatchedPos - 1);
+      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+      {
+         matchedToken = jjFillToken();
+         matchedToken.specialToken = specialToken;
+         return matchedToken;
+      }
+      else
+      {
+         if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+         {
+            matchedToken = jjFillToken();
+            if (specialToken == null)
+               specialToken = matchedToken;
+            else
+            {
+               matchedToken.specialToken = specialToken;
+               specialToken = (specialToken.next = matchedToken);
+            }
+         }
+         continue EOFLoop;
+      }
+   }
+   int error_line = input_stream.getEndLine();
+   int error_column = input_stream.getEndColumn();
+   String error_after = null;
+   boolean EOFSeen = false;
+   try { input_stream.readChar(); input_stream.backup(1); }
+   catch (java.io.IOException e1) {
+      EOFSeen = true;
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+      if (curChar == '\n' || curChar == '\r') {
+         error_line++;
+         error_column = 0;
+      }
+      else
+         error_column++;
+   }
+   if (!EOFSeen) {
+      input_stream.backup(1);
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+   }
+   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+  }
+}
+
+private void jjCheckNAdd(int state)
+{
+   if (jjrounds[state] != jjround)
+   {
+      jjstateSet[jjnewStateCnt++] = state;
+      jjrounds[state] = jjround;
+   }
+}
+private void jjAddStates(int start, int end)
+{
+   do {
+      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+   } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+   jjCheckNAdd(state1);
+   jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+   do {
+      jjCheckNAdd(jjnextStates[start]);
+   } while (start++ != end);
+}
+
+    /** Constructor. */
+    public TurtleJavaccTokenManager(SimpleCharStream stream){
+
+      if (SimpleCharStream.staticFlag)
+            throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+
+    input_stream = stream;
+  }
+
+  /** Constructor. */
+  public TurtleJavaccTokenManager (SimpleCharStream stream, int lexState){
+    ReInit(stream);
+    SwitchTo(lexState);
+  }
+
+  /** Reinitialise parser. */
+  public void ReInit(SimpleCharStream stream)
+  {
+    jjmatchedPos = jjnewStateCnt = 0;
+    curLexState = defaultLexState;
+    input_stream = stream;
+    ReInitRounds();
+  }
+
+  private void ReInitRounds()
+  {
+    int i;
+    jjround = 0x80000001;
+    for (i = 160; i-- > 0;)
+      jjrounds[i] = 0x80000000;
+  }
+
+  /** Reinitialise parser. */
+  public void ReInit(SimpleCharStream stream, int lexState)
+  {
+    ReInit(stream);
+    SwitchTo(lexState);
+  }
+
+  /** Switch to specified lex state. */
+  public void SwitchTo(int lexState)
+  {
+    if (lexState >= 1 || lexState < 0)
+      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+    else
+      curLexState = lexState;
+  }
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+   "DEFAULT",
+};
+static final long[] jjtoToken = {
+   0xfbffff1ff77f01L, 0x0L, 
+};
+static final long[] jjtoSkip = {
+   0xbeL, 0x0L, 
+};
+static final long[] jjtoSpecial = {
+   0x80L, 0x0L, 
+};
+    protected SimpleCharStream  input_stream;
+
+    private final int[] jjrounds = new int[160];
+    private final int[] jjstateSet = new int[2 * 160];
+
+    
+    protected char curChar;
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
index 5d4993a..6c560f5 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
@@ -98,8 +98,8 @@ public abstract class IRIResolver
      * @param isWarning Whether it is to be treated a warning.
      */
     private static void setErrorWarning(IRIFactory factory, int code, boolean isError, boolean isWarning) {
-        factory.setIsError(code, isError);
         factory.setIsWarning(code, isWarning);
+        factory.setIsError(code, isError);
     }
     
     private static void printSetting(IRIFactory factory) {

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/main/java/org/apache/jena/riot/system/RiotChars.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/RiotChars.java b/jena-arq/src/main/java/org/apache/jena/riot/system/RiotChars.java
index 0f97b5c..4255384 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/RiotChars.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/RiotChars.java
@@ -46,7 +46,6 @@ public class RiotChars
     }
 
     public static boolean isWhitespace(int ch) {
-        // ch = ch | 0xFF;
         return isHorizontalWhitespace(ch) || isNewlineChar(ch) || ch == '\f';
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterConst.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterConst.java b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterConst.java
index dd82ce3..a9e83c7 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterConst.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterConst.java
@@ -84,7 +84,5 @@ public class WriterConst
     public static final Node RDF_First      = RDF.Nodes.first ;
     public static final Node RDF_Rest       = RDF.Nodes.rest ;
     public static final Node RDF_Nil        = RDF.Nodes.nil ;
-    
-
 }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeConst.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeConst.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeConst.java
index b089de2..dcc2616 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeConst.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeConst.java
@@ -18,42 +18,41 @@
 
 package org.apache.jena.sparql.graph;
 
-import org.apache.jena.datatypes.RDFDatatype ;
-import org.apache.jena.datatypes.xsd.XSDDatatype ;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.NodeFactory ;
-import org.apache.jena.vocabulary.OWL ;
-import org.apache.jena.vocabulary.RDF ;
+import org.apache.jena.datatypes.RDFDatatype;
+import org.apache.jena.datatypes.xsd.XSDDatatype;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.vocabulary.OWL;
+import org.apache.jena.vocabulary.RDF;
 
 /** Some node constants */
-public class NodeConst
-{
+public class NodeConst {
     private static Node literal(String lex, RDFDatatype dt) {
-        return NodeFactory.createLiteral(lex, dt) ;
+        return NodeFactory.createLiteral(lex, dt);
     }
-    
+
     private static Node uri(String uriStr) {
-        return NodeFactory.createURI(uriStr) ;
+        return NodeFactory.createURI(uriStr);
     }
-    
-    public static final Node nodeTrue       = literal("true",  XSDDatatype.XSDboolean) ; 
-    public static final Node nodeFalse      = literal("false", XSDDatatype.XSDboolean) ; 
-    public static final Node nodeZero       = literal("0",     XSDDatatype.XSDinteger) ;
-    public static final Node nodeOne        = literal("1",     XSDDatatype.XSDinteger) ;
-    public static final Node nodeTwo        = literal("2",     XSDDatatype.XSDinteger) ;
-    public static final Node nodeTen        = literal("10",    XSDDatatype.XSDinteger) ;
-    public static final Node nodeMinusOne   = literal("-1",    XSDDatatype.XSDinteger) ;
-    public static final Node emptyString    = NodeFactory.createLiteral("") ;
-    
+
+    public static final Node nodeTrue      = literal("true", XSDDatatype.XSDboolean);
+    public static final Node nodeFalse     = literal("false", XSDDatatype.XSDboolean);
+    public static final Node nodeZero      = literal("0", XSDDatatype.XSDinteger);
+    public static final Node nodeOne       = literal("1", XSDDatatype.XSDinteger);
+    public static final Node nodeTwo       = literal("2", XSDDatatype.XSDinteger);
+    public static final Node nodeTen       = literal("10", XSDDatatype.XSDinteger);
+    public static final Node nodeMinusOne  = literal("-1", XSDDatatype.XSDinteger);
+    public static final Node emptyString   = NodeFactory.createLiteral("");
+
     // It should be safe to use RDF.Nodes.
-    // Falback code "just in case"
-    public static final Node nodeRDFType    = RDF.Nodes.type ;  //uri(RDF.uri+"type") ;
-    public static final Node nodeFirst      = RDF.Nodes.first ; //uri(RDF.uri+"first") ;
-    public static final Node nodeRest       = RDF.Nodes.rest ;  //uri(RDF.uri+"rest") ;
-    public static final Node nodeNil        = RDF.Nodes.nil;    //uri(RDF.uri+"nil") ;
-    public static final Node nodeANY        = Node.ANY ;
-    
-    public static final Node nodeOwlSameAs          = OWL.sameAs.asNode() ; //NodeFactory.createURI("http://www.w3.org/2002/07/owl#sameAs") ;
-    public static final Node rdfLangString          = RDF.Nodes.langString ;
-    public static final RDFDatatype dtLangString    = RDF.dtLangString ;
+    // Fallback code "just in case"
+    public static final Node nodeRDFType   = RDF.Nodes.type;  // uri(RDF.uri+"type")
+    public static final Node nodeFirst     = RDF.Nodes.first; // uri(RDF.uri+"first")
+    public static final Node nodeRest      = RDF.Nodes.rest;  // uri(RDF.uri+"rest")
+    public static final Node nodeNil       = RDF.Nodes.nil;    // uri(RDF.uri+"nil")
+    public static final Node nodeANY       = Node.ANY;
+
+    public static final Node nodeOwlSameAs        = OWL.sameAs.asNode(); // uri("http://www.w3.org/2002/07/owl#sameAs")
+    public static final Node rdfLangString        = RDF.Nodes.langString;
+    public static final RDFDatatype dtLangString  = RDF.dtLangString;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java b/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
index 4bbcdef..35bebc3 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
@@ -20,6 +20,7 @@ package org.apache.jena.riot;
 
 import org.apache.jena.riot.adapters.TS_RIOTAdapters ;
 import org.apache.jena.riot.lang.TS_Lang ;
+import org.apache.jena.riot.lang.extra.TS_LangExtra;
 import org.apache.jena.riot.out.TS_Out ;
 import org.apache.jena.riot.process.TS_Process ;
 import org.apache.jena.riot.resultset.TS_ResultSetRIOT ;
@@ -38,6 +39,7 @@ import org.junit.runners.Suite ;
     , TS_Out.class
     , TS_Lang.class
     , TS_LangSuite.class
+    , TS_LangExtra.class
     , TS_RiotGeneral.class
     , TS_IO2.class
     , TS_RIOTAdapters.class

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java
index d0cb3ec..724d6dd 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TS_Lang.java
@@ -40,7 +40,7 @@ import org.junit.runners.Suite ;
     , TestLangRdfJson.class
     , TestTriXReader.class
     , TestTriXBad.class
-    // Thrift is done in the "thift" package
+    // Thrift is done in the "thrift" package
     , TestParserFactory.class
     , TestPipedRDFIterators.class
     , TestCollectorStream.class

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
index 37c11dd..fe3b087 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
@@ -126,11 +126,11 @@ public class TestLang extends BaseTest
     @Test
     public void testDefaultInExtensions()
     {
-        for (Lang l : RDFLanguages.getRegisteredLanguages() )
+        for (Lang lang : RDFLanguages.getRegisteredLanguages() )
         {
-            if ( RDFLanguages.RDFNULL.equals(l) )
+            if ( lang.getFileExtensions() == null || lang.getFileExtensions().isEmpty())
                 continue ;
-            Assert.assertTrue( l+" default extension not in file extensions list", l.getFileExtensions().contains( l.getFileExtensions().get(0))  );
+            Assert.assertTrue( lang+" default extension not in file extensions list", lang.getFileExtensions().contains( lang.getFileExtensions().get(0))  );
         }
     }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
index 2c7eef2..6b9e5ca 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestParserFactory.java
@@ -91,7 +91,7 @@ public class TestParserFactory extends BaseTest
 
     @Test public void turtle_01() 
     {
-        // Verify the excected outoput works.
+        // Verify the expected output works.
         {
             String s = "<x> <p> <q> ." ;
             CatchParserOutput sink = parseCapture(s, Lang.TTL) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/lang/TestTurtleTerms.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestTurtleTerms.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestTurtleTerms.java
index 0b8123b..c9086c0 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestTurtleTerms.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestTurtleTerms.java
@@ -19,6 +19,7 @@
 package org.apache.jena.riot.lang;
 
 import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.atlas.lib.StrUtils;
 import org.apache.jena.riot.system.*;
 import org.apache.jena.riot.tokens.Tokenizer ;
 import org.apache.jena.riot.tokens.TokenizerFactory ;
@@ -234,27 +235,26 @@ public class TestTurtleTerms extends BaseTest
 	@Test public void turtle_151() { parse("[ a <y> ] . ") ; }
     @Test public void turtle_152() { parse("[ a <y> ; a <z> ] . ") ; }
     @Test public void turtle_153() { parse("[ a <z>, <z1> ] . ") ; }
+
+    private static String prefixMap = StrUtils.strjoinNL(
+        "PREFIX a: <http://host/a#>",
+        "PREFIX x: <http://host/a#>",
+        // Unicode 00E9 is e-acute
+        // Unicode 03B1 is alpha
+        "PREFIX \u00E9: <http://host/e-acute/>",
+        "PREFIX \u03B1: <http://host/alpha/>",
+        "PREFIX : <http://host/>",
+        "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>",
+        "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>");
+
     
 	public static void parse(String testString)
 	{
-	    // Need to access the prefix mapping.
-	    
-	    Tokenizer tokenizer = TokenizerFactory.makeTokenizerString(testString) ;
+	    // Need a prefix mapping.
+	    Tokenizer tokenizer = TokenizerFactory.makeTokenizerString(prefixMap+"\n"+testString) ;
 	    StreamRDF sink = StreamRDFLib.sinkNull() ;
         LangTurtle parser = RiotParsers.createParserTurtle(tokenizer, sink, RiotLib.dftProfile()) ;
-	    PrefixMap prefixMap = parser.getProfile().getPrefixMap() ;
-
-	    prefixMap.add("a", "http://host/a#") ;
-        prefixMap.add("x", "http://host/a#") ;
-        // Unicode 00E9 is e-acute
-        // Unicode 03B1 is alpha
-        prefixMap.add("\u00E9", "http://host/e-acute/") ;
-        prefixMap.add("\u03B1", "http://host/alpha/") ;
-        prefixMap.add("", "http://host/") ;
-        prefixMap.add("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ;
-        prefixMap.add("xsd", "http://www.w3.org/2001/XMLSchema#") ;
         parser.parse();
-
         tokenizer.close();
 	}
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/FactoryTestTurtleJavacc.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/FactoryTestTurtleJavacc.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/FactoryTestTurtleJavacc.java
new file mode 100644
index 0000000..58adb0a
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/FactoryTestTurtleJavacc.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.lang.extra ;
+
+import junit.framework.Test ;
+import junit.framework.TestSuite ;
+import org.apache.jena.rdf.model.Resource ;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RiotException ;
+import org.apache.jena.riot.langsuite.*;
+import org.apache.jena.sparql.junit.EarlReport ;
+import org.apache.jena.util.junit.TestFactoryManifest ;
+import org.apache.jena.util.junit.TestUtils ;
+import org.apache.jena.vocabulary.RDF ;
+
+public class FactoryTestTurtleJavacc extends TestFactoryManifest
+{
+    public static String assumedRootURIex = "http://example/base/" ;
+    public static String assumedRootURITurtle = "http://www.w3.org/2013/TurtleTests/" ;
+    public static String assumedRootURITriG = "http://www.w3.org/2013/TriGTests/" ;
+    
+    public static EarlReport report = null ;
+    
+    public static TestSuite make(String manifest, Resource dftTestType, String labelPrefix)
+    {
+        return new FactoryTestTurtleJavacc(dftTestType, labelPrefix).process(manifest) ;
+    }
+
+    private Resource dftTestType ;
+    private String labelPrefix ;
+
+    public FactoryTestTurtleJavacc(Resource dftTestType, String labelPrefix)
+    {
+        this.dftTestType = dftTestType ;
+        this.labelPrefix = labelPrefix ;
+    }
+    
+    @Override
+    public Test makeTest(Resource manifest, Resource item, String testName, Resource action, Resource result)
+    {
+        Lang lang = TurtleJavaccReaderRIOT.lang; 
+        
+        try
+        {
+            Resource r = TestUtils.getResource(item, RDF.type) ;
+            if ( r == null )
+                r = dftTestType ;
+            if ( r == null )
+                throw new RiotException("Can't determine the test type") ;
+            
+            if ( labelPrefix != null )
+                testName = labelPrefix+testName ;
+            
+            // In Turtle tests, the action directly names the file to process.
+            Resource input = action ;
+            Resource output = result ; 
+            
+            if ( r.equals(VocabLangRDF.TestPositiveSyntaxTTL) )
+                return new UnitTestSyntax(testName, item.getURI(), input.getURI(), lang, report) ;
+            
+            if ( r.equals(VocabLangRDF.TestNegativeSyntaxTTL) )
+                return new UnitTestBadSyntax(testName, item.getURI(), input.getURI(), lang, report) ;
+
+            // Eval.
+            
+            if ( r.equals(VocabLangRDF.TestEvalTTL) ) {
+                String base = rebase(input, assumedRootURITurtle) ;
+                return new UnitTestEval(testName, item.getURI(), input.getURI(), result.getURI(), base, lang, report) ;
+            }
+            if ( r.equals(VocabLangRDF.TestNegativeEvalTTL) )
+                return new UnitTestBadEval(testName, item.getURI(), input.getURI(), lang, report) ;
+
+            System.err.println("Unrecognized turtle test : ("+r+")" + testName) ;
+            return null ;
+
+        } catch (Exception ex)
+        {
+            ex.printStackTrace(System.err) ;
+            System.err.println("Failed to grok test : " + testName) ;
+            return null ;
+        }
+    }
+
+    private static String rebase(Resource input, String baseIRI) {
+        String x = input.getLocalName() ;
+        baseIRI = baseIRI+x ;
+        return baseIRI ;
+    }
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/TS_LangExtra.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/TS_LangExtra.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/TS_LangExtra.java
new file mode 100644
index 0000000..2651357
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/extra/TS_LangExtra.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.lang.extra;
+
+import junit.framework.TestSuite;
+import org.apache.jena.sys.JenaSystem;
+import org.junit.runner.RunWith;
+import org.junit.runners.AllTests;
+
+/** Tests for "lang.extra" such as the JavaCC version of the Turtle parser */ 
+
+@RunWith(AllTests.class)
+public class TS_LangExtra
+{
+    private static final String manifest1 = "testing/RIOT/Lang/TurtleStd/manifest.ttl";
+    private static final String manifest2 = "testing/RIOT/Lang/Turtle2/manifest.ttl";
+    private static final String manifest3 = "testing/RIOT/Lang/TurtleSubm/manifest.ttl";
+
+    static public TestSuite suite()
+    {
+        JenaSystem.init();
+        TurtleJavaccReaderRIOT.register();
+        
+        TestSuite ts = new TestSuite(TS_LangExtra.class.getName());
+        ts.addTest(FactoryTestTurtleJavacc.make(manifest1, null, null));
+        ts.addTest(FactoryTestTurtleJavacc.make(manifest2, null, null));
+        ts.addTest(FactoryTestTurtleJavacc.make(manifest3, null, null));
+        return ts;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/langsuite/Parse.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/Parse.java b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/Parse.java
new file mode 100644
index 0000000..18806ef
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/Parse.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+import org.apache.jena.graph.Graph;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFParser;
+import org.apache.jena.sparql.core.DatasetGraph;
+
+public class Parse {
+
+    /** Parse, forcing the language.*/
+    public static void parse(Graph graph, String uri, Lang lang) {
+        parse(graph, uri, uri, lang);
+    }
+    
+    public static void parse(Graph graph, String uri, String base, Lang lang) {
+        RDFParser.create().forceLang(lang).source(uri).base(base).build().parse(graph);
+    }
+    
+
+    /** Parse, forcing the language.*/
+    public static void parse(DatasetGraph dataset, String uri, Lang lang) {
+        parse(dataset, uri, uri, lang);
+    }
+
+    /** Parse, forcing the language.*/
+    public static void parse(DatasetGraph dataset, String uri, String base, Lang lang) {
+        RDFParser.create().forceLang(lang).source(uri).base(base).build().parse(dataset);
+    }
+    
+
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadEval.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadEval.java b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadEval.java
index 8d536be..695e41e 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadEval.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadEval.java
@@ -19,29 +19,28 @@
 package org.apache.jena.riot.langsuite;
 
 
-import org.apache.jena.query.Dataset ;
-import org.apache.jena.query.DatasetFactory ;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.ModelFactory ;
+import org.apache.jena.graph.Graph;
 import org.apache.jena.riot.Lang ;
-import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.riot.RDFLanguages ;
 import org.apache.jena.riot.system.ErrorHandler ;
 import org.apache.jena.riot.system.ErrorHandlerFactory ;
 import org.apache.jena.shared.JenaException ;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
+import org.apache.jena.sparql.graph.GraphFactory;
 import org.apache.jena.sparql.junit.EarlReport ;
 import org.junit.After ;
 import org.junit.Before ;
 
 public class UnitTestBadEval extends LangTestCase
 {
-    private final String input ;
+    private final String uri ;
     private final Lang lang ;
 
-    protected UnitTestBadEval(String name, String testURI, String uri, Lang lang, EarlReport earl)
+    public UnitTestBadEval(String name, String testURI, String uri, Lang lang, EarlReport earl)
     {
         super(name, testURI, earl) ;
-        this.input = uri ;
+        this.uri = uri ;
         this.lang = lang ;
     }
     
@@ -75,9 +74,9 @@ public class UnitTestBadEval extends LangTestCase
     
     private void run3()
     {
-        Model model = ModelFactory.createDefaultModel() ;
+        Graph graph = GraphFactory.createDefaultGraph(); 
         try {
-            RDFDataMgr.read(model, input) ;
+            Parse.parse(graph, uri, lang);
             fail("Managed to read a bad evaluation test without error") ;
         }
         catch (JenaException ex) {}
@@ -89,9 +88,9 @@ public class UnitTestBadEval extends LangTestCase
     
     private void run4()
     {
-        Dataset ds = DatasetFactory.createGeneral() ;
+        DatasetGraph dsg = DatasetGraphFactory.createGeneral() ;
         try {
-            RDFDataMgr.read(ds, input) ;
+            Parse.parse(dsg, uri, lang);
             fail("Managed to read a bad evaluation test without error") ;
         }
         catch (JenaException ex) {}

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadSyntax.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadSyntax.java b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadSyntax.java
index e8a361d..8f5203a 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadSyntax.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestBadSyntax.java
@@ -19,17 +19,17 @@
 package org.apache.jena.riot.langsuite;
 
 import static org.apache.jena.riot.SysRIOT.fmtMessage ;
+
 import org.apache.jena.atlas.legacy.BaseTest2 ;
-import org.apache.jena.query.Dataset ;
-import org.apache.jena.query.DatasetFactory ;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.ModelFactory ;
+import org.apache.jena.graph.Graph;
 import org.apache.jena.riot.Lang ;
-import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.riot.RDFLanguages ;
 import org.apache.jena.riot.RiotException ;
 import org.apache.jena.riot.system.ErrorHandler ;
 import org.apache.jena.riot.system.ErrorHandlerFactory ;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
+import org.apache.jena.sparql.graph.GraphFactory;
 import org.apache.jena.sparql.junit.EarlReport ;
 
 public class UnitTestBadSyntax extends LangTestCase
@@ -37,7 +37,7 @@ public class UnitTestBadSyntax extends LangTestCase
     private final String uri ;
     private final Lang lang ;
 
-    protected UnitTestBadSyntax(String name, String testURI, String uri, Lang lang, EarlReport earl)
+    public UnitTestBadSyntax(String name, String testURI, String uri, Lang lang, EarlReport earl)
     {
         super(name, testURI, earl) ;
         this.uri = uri ;
@@ -84,10 +84,11 @@ public class UnitTestBadSyntax extends LangTestCase
     }
     
     private void run3() {
-        Model model = ModelFactory.createDefaultModel() ;
+        Graph graph = GraphFactory.createDefaultGraph(); 
         try {
-            RDFDataMgr.read(model, uri, uri, lang) ;
-        } catch (RiotException ex) { return ; }
+            Parse.parse(graph, uri, lang);
+        } 
+        catch (RiotException ex) { return ; }
         catch (RuntimeException ex) {
             ex.printStackTrace(System.err) ;
             fail("Unexpected exception") ;
@@ -96,9 +97,9 @@ public class UnitTestBadSyntax extends LangTestCase
     }
     
     private void run4() {
-        Dataset ds = DatasetFactory.createGeneral() ;
+        DatasetGraph dsg = DatasetGraphFactory.createGeneral() ;
         try {
-            RDFDataMgr.read(ds, uri, uri, lang) ;
+            Parse.parse(dsg, uri, lang) ;
         } catch (RiotException ex) { return ; }
         catch (RuntimeException ex) {
             ex.printStackTrace(System.err) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/31dc8138/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestEval.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestEval.java b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestEval.java
index 2101a47..f5b4baa 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestEval.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/langsuite/UnitTestEval.java
@@ -68,9 +68,9 @@ public class UnitTestEval extends LangTestCase
         DatasetGraph dsg = DatasetGraphFactory.create() ;
         try {
             if ( baseIRI != null )
-                RDFDataMgr.read(dsg, input, baseIRI, lang) ;
+                Parse.parse(dsg, input, baseIRI, lang) ;
             else
-                RDFDataMgr.read(dsg, input, lang) ;
+                Parse.parse(dsg, input, lang) ;
             
             Lang outLang = RDFLanguages.filenameToLang(output, Lang.NQUADS) ;