+-- JJTSyntaxTreeBuilderState.java
+++ JJTSyntaxTreeBuilderState.java
@@ -1,3 +1,10 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse RDF4J contributors, Aduna, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Distribution License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *******************************************************************************/
 /* Generated By:JavaCC: Do not edit this line. JJTSyntaxTreeBuilderState.java Version 5.0 */
 package org.eclipse.rdf4j.query.parser.sparql.ast;
 
+-- SyntaxTreeBuilder.java
+++ SyntaxTreeBuilder.java
@@ -1,3 +1,10 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse RDF4J contributors, Aduna, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Distribution License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *******************************************************************************/
 /* Generated By:JJTree&JavaCC: Do not edit this line. SyntaxTreeBuilder.java */
 package org.eclipse.rdf4j.query.parser.sparql.ast;
 
+-- SyntaxTreeBuilderConstants.java
+++ SyntaxTreeBuilderConstants.java
@@ -1,3 +1,10 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse RDF4J contributors, Aduna, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Distribution License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *******************************************************************************/
 /* Generated By:JJTree&JavaCC: Do not edit this line. SyntaxTreeBuilderConstants.java */
 package org.eclipse.rdf4j.query.parser.sparql.ast;
 
+-- SyntaxTreeBuilderTreeConstants.java
+++ SyntaxTreeBuilderTreeConstants.java
@@ -1,3 +1,10 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse RDF4J contributors, Aduna, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Distribution License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *******************************************************************************/
 /* Generated By:JavaCC: Do not edit this line. SyntaxTreeBuilderTreeConstants.java Version 5.0 */
 package org.eclipse.rdf4j.query.parser.sparql.ast;
 
+-- SyntaxTreeBuilderVisitor.java
+++ SyntaxTreeBuilderVisitor.java
@@ -1,3 +1,10 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse RDF4J contributors, Aduna, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Distribution License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *******************************************************************************/
 /* Generated By:JavaCC: Do not edit this line. SyntaxTreeBuilderVisitor.java Version 5.0 */
 package org.eclipse.rdf4j.query.parser.sparql.ast;
 
--- SyntaxTreeBuilderTokenManager.java	2018-03-26 14:47:39.651001731 -0400
+++ SyntaxTreeBuilderTokenManager.java	2018-03-26 14:47:31.451394149 -0400
@@ -1,3 +1,10 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse RDF4J contributors, Aduna, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Distribution License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *******************************************************************************/
 /* Generated By:JJTree&JavaCC: Do not edit this line. SyntaxTreeBuilderTokenManager.java */
 package org.eclipse.rdf4j.query.parser.sparql.ast;
 import java.io.StringReader;
@@ -2132,6 +2139,50 @@
          ReInitRounds();
       if (curChar < 64)
       {
+         kind = jjMoveNfa_0_curCharLessThan64(startsAt, i, kind);
+      }
+      else if (curChar < 128)
+      {
+         kind = jjMoveNfa_0_curCharLessThan128(startsAt, i, kind);
+      }
+      else
+      {
+         kind = jjMoveNfa_0_curCharOther(startsAt, i, kind);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 157 - (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;
+}
+
+   private int jjMoveNfa_0_curCharLessThan64(int startsAt, int i, int kind) {
          long l = 1L << curChar;
          do
          {
@@ -2745,9 +2796,9 @@
                default : break;
             }
          } while(i != startsAt);
+      return kind;
       }
-      else if (curChar < 128)
-      {
+private int jjMoveNfa_0_curCharLessThan128(int startsAt, int i, int kind) {
          long l = 1L << (curChar & 077);
          do
          {
@@ -3051,9 +3102,9 @@
                default : break;
             }
          } while(i != startsAt);
+      return kind;
       }
-      else
-      {
+private int jjMoveNfa_0_curCharOther(int startsAt, int i, int kind) {
          int hiByte = (int)(curChar >> 8);
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
@@ -3171,39 +3222,9 @@
                default : break;
             }
          } while(i != startsAt);
+      return kind;
       }
-      if (kind != 0x7fffffff)
-      {
-         jjmatchedKind = kind;
-         jjmatchedPos = curPos;
-         kind = 0x7fffffff;
-      }
-      ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 157 - (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 = {
    96, 97, 98, 100, 101, 106, 107, 132, 133, 134, 136, 141, 111, 112, 113, 115, 
    120, 78, 89, 91, 36, 37, 39, 31, 32, 34, 7, 8, 41, 42, 43, 45, 
