You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/09/09 09:44:25 UTC

[14/50] [abbrv] jena git commit: JENA-803 : Support AGG(DISTNCT ...)

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/JavaCharStream.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/JavaCharStream.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/JavaCharStream.java
index c888a7d..dd87d27 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/JavaCharStream.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/JavaCharStream.java
@@ -1,617 +1,617 @@
-/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 5.0 */
-/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
-package org.apache.jena.sparql.lang.sparql_11 ;
-
-/**
- * An implementation of interface CharStream, where the stream is assumed to
- * contain only ASCII characters (with java-like unicode escape processing).
- */
-
-public
-class JavaCharStream
-{
-  /** Whether parser is static. */
-  public static final boolean staticFlag = false;
-
-  static final int hexval(char c) throws java.io.IOException {
-    switch(c)
-    {
-       case '0' :
-          return 0;
-       case '1' :
-          return 1;
-       case '2' :
-          return 2;
-       case '3' :
-          return 3;
-       case '4' :
-          return 4;
-       case '5' :
-          return 5;
-       case '6' :
-          return 6;
-       case '7' :
-          return 7;
-       case '8' :
-          return 8;
-       case '9' :
-          return 9;
-
-       case 'a' :
-       case 'A' :
-          return 10;
-       case 'b' :
-       case 'B' :
-          return 11;
-       case 'c' :
-       case 'C' :
-          return 12;
-       case 'd' :
-       case 'D' :
-          return 13;
-       case 'e' :
-       case 'E' :
-          return 14;
-       case 'f' :
-       case 'F' :
-          return 15;
-    }
-
-    throw new java.io.IOException(); // Should never come here
-  }
-
-/** Position in buffer. */
-  public int bufpos = -1;
-  int bufsize;
-  int available;
-  int tokenBegin;
-  protected int bufline[];
-  protected int bufcolumn[];
-
-  protected int column = 0;
-  protected int line = 1;
-
-  protected boolean prevCharIsCR = false;
-  protected boolean prevCharIsLF = false;
-
-  protected java.io.Reader inputStream;
-
-  protected char[] nextCharBuf;
-  protected char[] buffer;
-  protected int maxNextCharInd = 0;
-  protected int nextCharInd = -1;
-  protected int inBuf = 0;
-  protected int tabSize = 8;
-
-  protected void setTabSize(int i) { tabSize = i; }
-  protected int getTabSize(int i) { return tabSize; }
-
-  protected void ExpandBuff(boolean wrapAround)
-  {
-    char[] newbuffer = new char[bufsize + 2048];
-    int newbufline[] = new int[bufsize + 2048];
-    int newbufcolumn[] = new int[bufsize + 2048];
-
-    try
-    {
-      if (wrapAround)
-      {
-        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
-        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);
-        buffer = newbuffer;
-
-        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
-        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
-        bufline = newbufline;
-
-        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
-        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
-        bufcolumn = newbufcolumn;
-
-        bufpos += (bufsize - tokenBegin);
-    }
-    else
-    {
-        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
-        buffer = newbuffer;
-
-        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
-        bufline = newbufline;
-
-        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
-        bufcolumn = newbufcolumn;
-
-        bufpos -= tokenBegin;
-      }
-    }
-    catch (Throwable t)
-    {
-      throw new Error(t.getMessage());
-    }
-
-    available = (bufsize += 2048);
-    tokenBegin = 0;
-  }
-
-  protected void FillBuff() throws java.io.IOException
-  {
-    int i;
-    if (maxNextCharInd == 4096)
-      maxNextCharInd = nextCharInd = 0;
-
-    try {
-      if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
-                                          4096 - maxNextCharInd)) == -1)
-      {
-        inputStream.close();
-        throw new java.io.IOException();
-      }
-      else
-         maxNextCharInd += i;
-      return;
-    }
-    catch(java.io.IOException e) {
-      if (bufpos != 0)
-      {
-        --bufpos;
-        backup(0);
-      }
-      else
-      {
-        bufline[bufpos] = line;
-        bufcolumn[bufpos] = column;
-      }
-      throw e;
-    }
-  }
-
-  protected char ReadByte() throws java.io.IOException
-  {
-    if (++nextCharInd >= maxNextCharInd)
-      FillBuff();
-
-    return nextCharBuf[nextCharInd];
-  }
-
-/** @return starting character for token. */
-  public char BeginToken() throws java.io.IOException
-  {
-    if (inBuf > 0)
-    {
-      --inBuf;
-
-      if (++bufpos == bufsize)
-        bufpos = 0;
-
-      tokenBegin = bufpos;
-      return buffer[bufpos];
-    }
-
-    tokenBegin = 0;
-    bufpos = -1;
-
-    return readChar();
-  }
-
-  protected void AdjustBuffSize()
-  {
-    if (available == bufsize)
-    {
-      if (tokenBegin > 2048)
-      {
-        bufpos = 0;
-        available = tokenBegin;
-      }
-      else
-        ExpandBuff(false);
-    }
-    else if (available > tokenBegin)
-      available = bufsize;
-    else if ((tokenBegin - available) < 2048)
-      ExpandBuff(true);
-    else
-      available = tokenBegin;
-  }
-
-  protected void UpdateLineColumn(char c)
-  {
-    column++;
-
-    if (prevCharIsLF)
-    {
-      prevCharIsLF = false;
-      line += (column = 1);
-    }
-    else if (prevCharIsCR)
-    {
-      prevCharIsCR = false;
-      if (c == '\n')
-      {
-        prevCharIsLF = true;
-      }
-      else
-        line += (column = 1);
-    }
-
-    switch (c)
-    {
-      case '\r' :
-        prevCharIsCR = true;
-        break;
-      case '\n' :
-        prevCharIsLF = true;
-        break;
-      case '\t' :
-        column--;
-        column += (tabSize - (column % tabSize));
-        break;
-      default :
-        break;
-    }
-
-    bufline[bufpos] = line;
-    bufcolumn[bufpos] = column;
-  }
-
-/** Read a character. */
-  public char readChar() throws java.io.IOException
-  {
-    if (inBuf > 0)
-    {
-      --inBuf;
-
-      if (++bufpos == bufsize)
-        bufpos = 0;
-
-      return buffer[bufpos];
-    }
-
-    char c;
-
-    if (++bufpos == available)
-      AdjustBuffSize();
-
-    if ((buffer[bufpos] = c = ReadByte()) == '\\')
-    {
-      UpdateLineColumn(c);
-
-      int backSlashCnt = 1;
-
-      for (;;) // Read all the backslashes
-      {
-        if (++bufpos == available)
-          AdjustBuffSize();
-
-        try
-        {
-          if ((buffer[bufpos] = c = ReadByte()) != '\\')
-          {
-            UpdateLineColumn(c);
-            // found a non-backslash char.
-            if ((c == 'u') && ((backSlashCnt & 1) == 1))
-            {
-              if (--bufpos < 0)
-                bufpos = bufsize - 1;
-
-              break;
-            }
-
-            backup(backSlashCnt);
-            return '\\';
-          }
-        }
-        catch(java.io.IOException e)
-        {
-	  // We are returning one backslash so we should only backup (count-1)
-          if (backSlashCnt > 1)
-            backup(backSlashCnt-1);
-
-          return '\\';
-        }
-
-        UpdateLineColumn(c);
-        backSlashCnt++;
-      }
-
-      // Here, we have seen an odd number of backslash's followed by a 'u'
-      try
-      {
-        while ((c = ReadByte()) == 'u')
-          ++column;
-
-        buffer[bufpos] = c = (char)(hexval(c) << 12 |
-                                    hexval(ReadByte()) << 8 |
-                                    hexval(ReadByte()) << 4 |
-                                    hexval(ReadByte()));
-
-        column += 4;
-      }
-      catch(java.io.IOException e)
-      {
-        throw new Error("Invalid escape character at line " + line +
-                                         " column " + column + ".");
-      }
-
-      if (backSlashCnt == 1)
-        return c;
-      else
-      {
-        backup(backSlashCnt - 1);
-        return '\\';
-      }
-    }
-    else
-    {
-      UpdateLineColumn(c);
-      return c;
-    }
-  }
-
-  @Deprecated
-  /**
-   * @deprecated
-   * @see #getEndColumn
-   */
-  public int getColumn() {
-    return bufcolumn[bufpos];
-  }
-
-  @Deprecated
-  /**
-   * @deprecated
-   * @see #getEndLine
-   */
-  public int getLine() {
-    return bufline[bufpos];
-  }
-
-/** Get end column. */
-  public int getEndColumn() {
-    return bufcolumn[bufpos];
-  }
-
-/** Get end line. */
-  public int getEndLine() {
-    return bufline[bufpos];
-  }
-
-/** @return column of token start */
-  public int getBeginColumn() {
-    return bufcolumn[tokenBegin];
-  }
-
-/** @return line number of token start */
-  public int getBeginLine() {
-    return bufline[tokenBegin];
-  }
-
-/** Retreat. */
-  public void backup(int amount) {
-
-    inBuf += amount;
-    if ((bufpos -= amount) < 0)
-      bufpos += bufsize;
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.Reader dstream,
-                 int startline, int startcolumn, int buffersize)
-  {
-    inputStream = dstream;
-    line = startline;
-    column = startcolumn - 1;
-
-    available = bufsize = buffersize;
-    buffer = new char[buffersize];
-    bufline = new int[buffersize];
-    bufcolumn = new int[buffersize];
-    nextCharBuf = new char[4096];
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.Reader dstream,
-                                        int startline, int startcolumn)
-  {
-    this(dstream, startline, startcolumn, 4096);
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.Reader dstream)
-  {
-    this(dstream, 1, 1, 4096);
-  }
-/** Reinitialise. */
-  public void ReInit(java.io.Reader dstream,
-                 int startline, int startcolumn, int buffersize)
-  {
-    inputStream = dstream;
-    line = startline;
-    column = startcolumn - 1;
-
-    if (buffer == null || buffersize != buffer.length)
-    {
-      available = bufsize = buffersize;
-      buffer = new char[buffersize];
-      bufline = new int[buffersize];
-      bufcolumn = new int[buffersize];
-      nextCharBuf = new char[4096];
-    }
-    prevCharIsLF = prevCharIsCR = false;
-    tokenBegin = inBuf = maxNextCharInd = 0;
-    nextCharInd = bufpos = -1;
-  }
-
-/** Reinitialise. */
-  public void ReInit(java.io.Reader dstream,
-                                        int startline, int startcolumn)
-  {
-    ReInit(dstream, startline, startcolumn, 4096);
-  }
-
-/** Reinitialise. */
-  public void ReInit(java.io.Reader dstream)
-  {
-    ReInit(dstream, 1, 1, 4096);
-  }
-/** Constructor. */
-  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
-  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
-  {
-    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.InputStream dstream, int startline,
-  int startcolumn, int buffersize)
-  {
-    this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
-                        int startcolumn) throws java.io.UnsupportedEncodingException
-  {
-    this(dstream, encoding, startline, startcolumn, 4096);
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.InputStream dstream, int startline,
-                        int startcolumn)
-  {
-    this(dstream, startline, startcolumn, 4096);
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
-  {
-    this(dstream, encoding, 1, 1, 4096);
-  }
-
-/** Constructor. */
-  public JavaCharStream(java.io.InputStream dstream)
-  {
-    this(dstream, 1, 1, 4096);
-  }
-
-/** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
-  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
-  {
-    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
-  }
-
-/** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, int startline,
-  int startcolumn, int buffersize)
-  {
-    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
-  }
-/** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
-                     int startcolumn) throws java.io.UnsupportedEncodingException
-  {
-    ReInit(dstream, encoding, startline, startcolumn, 4096);
-  }
-/** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, int startline,
-                     int startcolumn)
-  {
-    ReInit(dstream, startline, startcolumn, 4096);
-  }
-/** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
-  {
-    ReInit(dstream, encoding, 1, 1, 4096);
-  }
-
-/** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream)
-  {
-    ReInit(dstream, 1, 1, 4096);
-  }
-
-  /** @return token image as String */
-  public String GetImage()
-  {
-    if (bufpos >= tokenBegin)
-      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
-    else
-      return new String(buffer, tokenBegin, bufsize - tokenBegin) +
-                              new String(buffer, 0, bufpos + 1);
-  }
-
-  /** @return suffix */
-  public char[] GetSuffix(int len)
-  {
-    char[] ret = new char[len];
-
-    if ((bufpos + 1) >= len)
-      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
-    else
-    {
-      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
-                                                        len - bufpos - 1);
-      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
-    }
-
-    return ret;
-  }
-
-  /** Set buffers back to null when finished. */
-  public void Done()
-  {
-    nextCharBuf = null;
-    buffer = null;
-    bufline = null;
-    bufcolumn = null;
-  }
-
-  /**
-   * Method to adjust line and column numbers for the start of a token.
-   */
-  public void adjustBeginLineColumn(int newLine, int newCol)
-  {
-    int start = tokenBegin;
-    int len;
-
-    if (bufpos >= tokenBegin)
-    {
-      len = bufpos - tokenBegin + inBuf + 1;
-    }
-    else
-    {
-      len = bufsize - tokenBegin + bufpos + 1 + inBuf;
-    }
-
-    int i = 0, j = 0, k = 0;
-    int nextColDiff = 0, columnDiff = 0;
-
-    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
-    {
-      bufline[j] = newLine;
-      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
-      bufcolumn[j] = newCol + columnDiff;
-      columnDiff = nextColDiff;
-      i++;
-    }
-
-    if (i < len)
-    {
-      bufline[j] = newLine++;
-      bufcolumn[j] = newCol + columnDiff;
-
-      while (i++ < len)
-      {
-        if (bufline[j = start % bufsize] != bufline[++start % bufsize])
-          bufline[j] = newLine++;
-        else
-          bufline[j] = newLine;
-      }
-    }
-
-    line = bufline[j];
-    column = bufcolumn[j];
-  }
-
-}
-/* JavaCC - OriginalChecksum=a46b9601f1eb7fc99070860ae4df29a9 (do not edit this line) */
+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 5.0 */
+/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
+package org.apache.jena.sparql.lang.sparql_11 ;
+
+/**
+ * An implementation of interface CharStream, where the stream is assumed to
+ * contain only ASCII characters (with java-like unicode escape processing).
+ */
+
+public
+class JavaCharStream
+{
+  /** Whether parser is static. */
+  public static final boolean staticFlag = false;
+
+  static final int hexval(char c) throws java.io.IOException {
+    switch(c)
+    {
+       case '0' :
+          return 0;
+       case '1' :
+          return 1;
+       case '2' :
+          return 2;
+       case '3' :
+          return 3;
+       case '4' :
+          return 4;
+       case '5' :
+          return 5;
+       case '6' :
+          return 6;
+       case '7' :
+          return 7;
+       case '8' :
+          return 8;
+       case '9' :
+          return 9;
+
+       case 'a' :
+       case 'A' :
+          return 10;
+       case 'b' :
+       case 'B' :
+          return 11;
+       case 'c' :
+       case 'C' :
+          return 12;
+       case 'd' :
+       case 'D' :
+          return 13;
+       case 'e' :
+       case 'E' :
+          return 14;
+       case 'f' :
+       case 'F' :
+          return 15;
+    }
+
+    throw new java.io.IOException(); // Should never come here
+  }
+
+/** Position in buffer. */
+  public int bufpos = -1;
+  int bufsize;
+  int available;
+  int tokenBegin;
+  protected int bufline[];
+  protected int bufcolumn[];
+
+  protected int column = 0;
+  protected int line = 1;
+
+  protected boolean prevCharIsCR = false;
+  protected boolean prevCharIsLF = false;
+
+  protected java.io.Reader inputStream;
+
+  protected char[] nextCharBuf;
+  protected char[] buffer;
+  protected int maxNextCharInd = 0;
+  protected int nextCharInd = -1;
+  protected int inBuf = 0;
+  protected int tabSize = 8;
+
+  protected void setTabSize(int i) { tabSize = i; }
+  protected int getTabSize(int i) { return tabSize; }
+
+  protected void ExpandBuff(boolean wrapAround)
+  {
+    char[] newbuffer = new char[bufsize + 2048];
+    int newbufline[] = new int[bufsize + 2048];
+    int newbufcolumn[] = new int[bufsize + 2048];
+
+    try
+    {
+      if (wrapAround)
+      {
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+        System.arraycopy(buffer, 0, newbuffer, bufsize - tokenBegin, bufpos);
+        buffer = newbuffer;
+
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+        System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+        bufline = newbufline;
+
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+        System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+        bufcolumn = newbufcolumn;
+
+        bufpos += (bufsize - tokenBegin);
+    }
+    else
+    {
+        System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+        buffer = newbuffer;
+
+        System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+        bufline = newbufline;
+
+        System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+        bufcolumn = newbufcolumn;
+
+        bufpos -= tokenBegin;
+      }
+    }
+    catch (Throwable t)
+    {
+      throw new Error(t.getMessage());
+    }
+
+    available = (bufsize += 2048);
+    tokenBegin = 0;
+  }
+
+  protected void FillBuff() throws java.io.IOException
+  {
+    int i;
+    if (maxNextCharInd == 4096)
+      maxNextCharInd = nextCharInd = 0;
+
+    try {
+      if ((i = inputStream.read(nextCharBuf, maxNextCharInd,
+                                          4096 - maxNextCharInd)) == -1)
+      {
+        inputStream.close();
+        throw new java.io.IOException();
+      }
+      else
+         maxNextCharInd += i;
+      return;
+    }
+    catch(java.io.IOException e) {
+      if (bufpos != 0)
+      {
+        --bufpos;
+        backup(0);
+      }
+      else
+      {
+        bufline[bufpos] = line;
+        bufcolumn[bufpos] = column;
+      }
+      throw e;
+    }
+  }
+
+  protected char ReadByte() throws java.io.IOException
+  {
+    if (++nextCharInd >= maxNextCharInd)
+      FillBuff();
+
+    return nextCharBuf[nextCharInd];
+  }
+
+/** @return starting character for token. */
+  public char BeginToken() throws java.io.IOException
+  {
+    if (inBuf > 0)
+    {
+      --inBuf;
+
+      if (++bufpos == bufsize)
+        bufpos = 0;
+
+      tokenBegin = bufpos;
+      return buffer[bufpos];
+    }
+
+    tokenBegin = 0;
+    bufpos = -1;
+
+    return readChar();
+  }
+
+  protected void AdjustBuffSize()
+  {
+    if (available == bufsize)
+    {
+      if (tokenBegin > 2048)
+      {
+        bufpos = 0;
+        available = tokenBegin;
+      }
+      else
+        ExpandBuff(false);
+    }
+    else if (available > tokenBegin)
+      available = bufsize;
+    else if ((tokenBegin - available) < 2048)
+      ExpandBuff(true);
+    else
+      available = tokenBegin;
+  }
+
+  protected void UpdateLineColumn(char c)
+  {
+    column++;
+
+    if (prevCharIsLF)
+    {
+      prevCharIsLF = false;
+      line += (column = 1);
+    }
+    else if (prevCharIsCR)
+    {
+      prevCharIsCR = false;
+      if (c == '\n')
+      {
+        prevCharIsLF = true;
+      }
+      else
+        line += (column = 1);
+    }
+
+    switch (c)
+    {
+      case '\r' :
+        prevCharIsCR = true;
+        break;
+      case '\n' :
+        prevCharIsLF = true;
+        break;
+      case '\t' :
+        column--;
+        column += (tabSize - (column % tabSize));
+        break;
+      default :
+        break;
+    }
+
+    bufline[bufpos] = line;
+    bufcolumn[bufpos] = column;
+  }
+
+/** Read a character. */
+  public char readChar() throws java.io.IOException
+  {
+    if (inBuf > 0)
+    {
+      --inBuf;
+
+      if (++bufpos == bufsize)
+        bufpos = 0;
+
+      return buffer[bufpos];
+    }
+
+    char c;
+
+    if (++bufpos == available)
+      AdjustBuffSize();
+
+    if ((buffer[bufpos] = c = ReadByte()) == '\\')
+    {
+      UpdateLineColumn(c);
+
+      int backSlashCnt = 1;
+
+      for (;;) // Read all the backslashes
+      {
+        if (++bufpos == available)
+          AdjustBuffSize();
+
+        try
+        {
+          if ((buffer[bufpos] = c = ReadByte()) != '\\')
+          {
+            UpdateLineColumn(c);
+            // found a non-backslash char.
+            if ((c == 'u') && ((backSlashCnt & 1) == 1))
+            {
+              if (--bufpos < 0)
+                bufpos = bufsize - 1;
+
+              break;
+            }
+
+            backup(backSlashCnt);
+            return '\\';
+          }
+        }
+        catch(java.io.IOException e)
+        {
+	  // We are returning one backslash so we should only backup (count-1)
+          if (backSlashCnt > 1)
+            backup(backSlashCnt-1);
+
+          return '\\';
+        }
+
+        UpdateLineColumn(c);
+        backSlashCnt++;
+      }
+
+      // Here, we have seen an odd number of backslash's followed by a 'u'
+      try
+      {
+        while ((c = ReadByte()) == 'u')
+          ++column;
+
+        buffer[bufpos] = c = (char)(hexval(c) << 12 |
+                                    hexval(ReadByte()) << 8 |
+                                    hexval(ReadByte()) << 4 |
+                                    hexval(ReadByte()));
+
+        column += 4;
+      }
+      catch(java.io.IOException e)
+      {
+        throw new Error("Invalid escape character at line " + line +
+                                         " column " + column + ".");
+      }
+
+      if (backSlashCnt == 1)
+        return c;
+      else
+      {
+        backup(backSlashCnt - 1);
+        return '\\';
+      }
+    }
+    else
+    {
+      UpdateLineColumn(c);
+      return c;
+    }
+  }
+
+  @Deprecated
+  /**
+   * @deprecated
+   * @see #getEndColumn
+   */
+  public int getColumn() {
+    return bufcolumn[bufpos];
+  }
+
+  @Deprecated
+  /**
+   * @deprecated
+   * @see #getEndLine
+   */
+  public int getLine() {
+    return bufline[bufpos];
+  }
+
+/** Get end column. */
+  public int getEndColumn() {
+    return bufcolumn[bufpos];
+  }
+
+/** Get end line. */
+  public int getEndLine() {
+    return bufline[bufpos];
+  }
+
+/** @return column of token start */
+  public int getBeginColumn() {
+    return bufcolumn[tokenBegin];
+  }
+
+/** @return line number of token start */
+  public int getBeginLine() {
+    return bufline[tokenBegin];
+  }
+
+/** Retreat. */
+  public void backup(int amount) {
+
+    inBuf += amount;
+    if ((bufpos -= amount) < 0)
+      bufpos += bufsize;
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.Reader dstream,
+                 int startline, int startcolumn, int buffersize)
+  {
+    inputStream = dstream;
+    line = startline;
+    column = startcolumn - 1;
+
+    available = bufsize = buffersize;
+    buffer = new char[buffersize];
+    bufline = new int[buffersize];
+    bufcolumn = new int[buffersize];
+    nextCharBuf = new char[4096];
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.Reader dstream,
+                                        int startline, int startcolumn)
+  {
+    this(dstream, startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.Reader dstream)
+  {
+    this(dstream, 1, 1, 4096);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.Reader dstream,
+                 int startline, int startcolumn, int buffersize)
+  {
+    inputStream = dstream;
+    line = startline;
+    column = startcolumn - 1;
+
+    if (buffer == null || buffersize != buffer.length)
+    {
+      available = bufsize = buffersize;
+      buffer = new char[buffersize];
+      bufline = new int[buffersize];
+      bufcolumn = new int[buffersize];
+      nextCharBuf = new char[4096];
+    }
+    prevCharIsLF = prevCharIsCR = false;
+    tokenBegin = inBuf = maxNextCharInd = 0;
+    nextCharInd = bufpos = -1;
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.Reader dstream,
+                                        int startline, int startcolumn)
+  {
+    ReInit(dstream, startline, startcolumn, 4096);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.Reader dstream)
+  {
+    ReInit(dstream, 1, 1, 4096);
+  }
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+    this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+                        int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+    this(dstream, encoding, startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, int startline,
+                        int startcolumn)
+  {
+    this(dstream, startline, startcolumn, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+    this(dstream, encoding, 1, 1, 4096);
+  }
+
+/** Constructor. */
+  public JavaCharStream(java.io.InputStream dstream)
+  {
+    this(dstream, 1, 1, 4096);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, int startline,
+  int startcolumn, int buffersize)
+  {
+    ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                     int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(dstream, encoding, startline, startcolumn, 4096);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, int startline,
+                     int startcolumn)
+  {
+    ReInit(dstream, startline, startcolumn, 4096);
+  }
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+    ReInit(dstream, encoding, 1, 1, 4096);
+  }
+
+/** Reinitialise. */
+  public void ReInit(java.io.InputStream dstream)
+  {
+    ReInit(dstream, 1, 1, 4096);
+  }
+
+  /** @return token image as String */
+  public String GetImage()
+  {
+    if (bufpos >= tokenBegin)
+      return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
+    else
+      return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+                              new String(buffer, 0, bufpos + 1);
+  }
+
+  /** @return suffix */
+  public char[] GetSuffix(int len)
+  {
+    char[] ret = new char[len];
+
+    if ((bufpos + 1) >= len)
+      System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+    else
+    {
+      System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+                                                        len - bufpos - 1);
+      System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
+    }
+
+    return ret;
+  }
+
+  /** Set buffers back to null when finished. */
+  public void Done()
+  {
+    nextCharBuf = null;
+    buffer = null;
+    bufline = null;
+    bufcolumn = null;
+  }
+
+  /**
+   * Method to adjust line and column numbers for the start of a token.
+   */
+  public void adjustBeginLineColumn(int newLine, int newCol)
+  {
+    int start = tokenBegin;
+    int len;
+
+    if (bufpos >= tokenBegin)
+    {
+      len = bufpos - tokenBegin + inBuf + 1;
+    }
+    else
+    {
+      len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+    }
+
+    int i = 0, j = 0, k = 0;
+    int nextColDiff = 0, columnDiff = 0;
+
+    while (i < len && bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
+    {
+      bufline[j] = newLine;
+      nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+      bufcolumn[j] = newCol + columnDiff;
+      columnDiff = nextColDiff;
+      i++;
+    }
+
+    if (i < len)
+    {
+      bufline[j] = newLine++;
+      bufcolumn[j] = newCol + columnDiff;
+
+      while (i++ < len)
+      {
+        if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+          bufline[j] = newLine++;
+        else
+          bufline[j] = newLine;
+      }
+    }
+
+    line = bufline[j];
+    column = bufcolumn[j];
+  }
+
+}
+/* JavaCC - OriginalChecksum=d63a793bd614cb11b1bb35c273b7864c (do not edit this line) */

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/ParseException.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/ParseException.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/ParseException.java
index 60ac059..2c32e0a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/ParseException.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/ParseException.java
@@ -1,187 +1,187 @@
-/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */
-/* JavaCCOptions:KEEP_LINE_COL=null */
-package org.apache.jena.sparql.lang.sparql_11 ;
-
-/**
- * This exception is thrown when parse errors are encountered.
- * You can explicitly create objects of this exception type by
- * calling the method generateParseException in the generated
- * parser.
- *
- * You can modify this class to customize your error reporting
- * mechanisms so long as you retain the public fields.
- */
-public class ParseException extends Exception {
-
-  /**
-   * The version identifier for this Serializable class.
-   * Increment only if the <i>serialized</i> form of the
-   * class changes.
-   */
-  private static final long serialVersionUID = 1L;
-
-  /**
-   * This constructor is used by the method "generateParseException"
-   * in the generated parser.  Calling this constructor generates
-   * a new object of this type with the fields "currentToken",
-   * "expectedTokenSequences", and "tokenImage" set.
-   */
-  public ParseException(Token currentTokenVal,
-                        int[][] expectedTokenSequencesVal,
-                        String[] tokenImageVal
-                       )
-  {
-    super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));
-    currentToken = currentTokenVal;
-    expectedTokenSequences = expectedTokenSequencesVal;
-    tokenImage = tokenImageVal;
-  }
-
-  /**
-   * The following constructors are for use by you for whatever
-   * purpose you can think of.  Constructing the exception in this
-   * manner makes the exception behave in the normal way - i.e., as
-   * documented in the class "Throwable".  The fields "errorToken",
-   * "expectedTokenSequences", and "tokenImage" do not contain
-   * relevant information.  The JavaCC generated code does not use
-   * these constructors.
-   */
-
-  public ParseException() {
-    super();
-  }
-
-  /** Constructor with message. */
-  public ParseException(String message) {
-    super(message);
-  }
-
-
-  /**
-   * This is the last token that has been consumed successfully.  If
-   * this object has been created due to a parse error, the token
-   * followng this token will (therefore) be the first error token.
-   */
-  public Token currentToken;
-
-  /**
-   * Each entry in this array is an array of integers.  Each array
-   * of integers represents a sequence of tokens (by their ordinal
-   * values) that is expected at this point of the parse.
-   */
-  public int[][] expectedTokenSequences;
-
-  /**
-   * This is a reference to the "tokenImage" array of the generated
-   * parser within which the parse error occurred.  This array is
-   * defined in the generated ...Constants interface.
-   */
-  public String[] tokenImage;
-
-  /**
-   * It uses "currentToken" and "expectedTokenSequences" to generate a parse
-   * error message and returns it.  If this object has been created
-   * due to a parse error, and you do not catch it (it gets thrown
-   * from the parser) the correct error message
-   * gets displayed.
-   */
-  private static String initialise(Token currentToken,
-                           int[][] expectedTokenSequences,
-                           String[] tokenImage) {
-    String eol = System.getProperty("line.separator", "\n");
-    StringBuffer expected = new StringBuffer();
-    int maxSize = 0;
-    for (int i = 0; i < expectedTokenSequences.length; i++) {
-      if (maxSize < expectedTokenSequences[i].length) {
-        maxSize = expectedTokenSequences[i].length;
-      }
-      for (int j = 0; j < expectedTokenSequences[i].length; j++) {
-        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
-      }
-      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
-        expected.append("...");
-      }
-      expected.append(eol).append("    ");
-    }
-    String retval = "Encountered \"";
-    Token tok = currentToken.next;
-    for (int i = 0; i < maxSize; i++) {
-      if (i != 0) retval += " ";
-      if (tok.kind == 0) {
-        retval += tokenImage[0];
-        break;
-      }
-      retval += " " + tokenImage[tok.kind];
-      retval += " \"";
-      retval += add_escapes(tok.image);
-      retval += " \"";
-      tok = tok.next;
-    }
-    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
-    retval += "." + eol;
-    if (expectedTokenSequences.length == 1) {
-      retval += "Was expecting:" + eol + "    ";
-    } else {
-      retval += "Was expecting one of:" + eol + "    ";
-    }
-    retval += expected.toString();
-    return retval;
-  }
-
-  /**
-   * The end of line string for this machine.
-   */
-  protected String eol = System.getProperty("line.separator", "\n");
-
-  /**
-   * Used to convert raw characters to their escaped version
-   * when these raw version cannot be used as part of an ASCII
-   * string literal.
-   */
-  static String add_escapes(String str) {
-      StringBuffer retval = new StringBuffer();
-      char ch;
-      for (int i = 0; i < str.length(); i++) {
-        switch (str.charAt(i))
-        {
-           case 0 :
-              continue;
-           case '\b':
-              retval.append("\\b");
-              continue;
-           case '\t':
-              retval.append("\\t");
-              continue;
-           case '\n':
-              retval.append("\\n");
-              continue;
-           case '\f':
-              retval.append("\\f");
-              continue;
-           case '\r':
-              retval.append("\\r");
-              continue;
-           case '\"':
-              retval.append("\\\"");
-              continue;
-           case '\'':
-              retval.append("\\\'");
-              continue;
-           case '\\':
-              retval.append("\\\\");
-              continue;
-           default:
-              if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
-                 String s = "0000" + Integer.toString(ch, 16);
-                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));
-              } else {
-                 retval.append(ch);
-              }
-              continue;
-        }
-      }
-      return retval.toString();
-   }
-
-}
-/* JavaCC - OriginalChecksum=7419551656da229f9adc90489da6fc86 (do not edit this line) */
+/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 5.0 */
+/* JavaCCOptions:KEEP_LINE_COL=null */
+package org.apache.jena.sparql.lang.sparql_11 ;
+
+/**
+ * This exception is thrown when parse errors are encountered.
+ * You can explicitly create objects of this exception type by
+ * calling the method generateParseException in the generated
+ * parser.
+ *
+ * You can modify this class to customize your error reporting
+ * mechanisms so long as you retain the public fields.
+ */
+public class ParseException extends Exception {
+
+  /**
+   * The version identifier for this Serializable class.
+   * Increment only if the <i>serialized</i> form of the
+   * class changes.
+   */
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * This constructor is used by the method "generateParseException"
+   * in the generated parser.  Calling this constructor generates
+   * a new object of this type with the fields "currentToken",
+   * "expectedTokenSequences", and "tokenImage" set.
+   */
+  public ParseException(Token currentTokenVal,
+                        int[][] expectedTokenSequencesVal,
+                        String[] tokenImageVal
+                       )
+  {
+    super(initialise(currentTokenVal, expectedTokenSequencesVal, tokenImageVal));
+    currentToken = currentTokenVal;
+    expectedTokenSequences = expectedTokenSequencesVal;
+    tokenImage = tokenImageVal;
+  }
+
+  /**
+   * The following constructors are for use by you for whatever
+   * purpose you can think of.  Constructing the exception in this
+   * manner makes the exception behave in the normal way - i.e., as
+   * documented in the class "Throwable".  The fields "errorToken",
+   * "expectedTokenSequences", and "tokenImage" do not contain
+   * relevant information.  The JavaCC generated code does not use
+   * these constructors.
+   */
+
+  public ParseException() {
+    super();
+  }
+
+  /** Constructor with message. */
+  public ParseException(String message) {
+    super(message);
+  }
+
+
+  /**
+   * This is the last token that has been consumed successfully.  If
+   * this object has been created due to a parse error, the token
+   * followng this token will (therefore) be the first error token.
+   */
+  public Token currentToken;
+
+  /**
+   * Each entry in this array is an array of integers.  Each array
+   * of integers represents a sequence of tokens (by their ordinal
+   * values) that is expected at this point of the parse.
+   */
+  public int[][] expectedTokenSequences;
+
+  /**
+   * This is a reference to the "tokenImage" array of the generated
+   * parser within which the parse error occurred.  This array is
+   * defined in the generated ...Constants interface.
+   */
+  public String[] tokenImage;
+
+  /**
+   * It uses "currentToken" and "expectedTokenSequences" to generate a parse
+   * error message and returns it.  If this object has been created
+   * due to a parse error, and you do not catch it (it gets thrown
+   * from the parser) the correct error message
+   * gets displayed.
+   */
+  private static String initialise(Token currentToken,
+                           int[][] expectedTokenSequences,
+                           String[] tokenImage) {
+    String eol = System.getProperty("line.separator", "\n");
+    StringBuffer expected = new StringBuffer();
+    int maxSize = 0;
+    for (int i = 0; i < expectedTokenSequences.length; i++) {
+      if (maxSize < expectedTokenSequences[i].length) {
+        maxSize = expectedTokenSequences[i].length;
+      }
+      for (int j = 0; j < expectedTokenSequences[i].length; j++) {
+        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
+      }
+      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
+        expected.append("...");
+      }
+      expected.append(eol).append("    ");
+    }
+    String retval = "Encountered \"";
+    Token tok = currentToken.next;
+    for (int i = 0; i < maxSize; i++) {
+      if (i != 0) retval += " ";
+      if (tok.kind == 0) {
+        retval += tokenImage[0];
+        break;
+      }
+      retval += " " + tokenImage[tok.kind];
+      retval += " \"";
+      retval += add_escapes(tok.image);
+      retval += " \"";
+      tok = tok.next;
+    }
+    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
+    retval += "." + eol;
+    if (expectedTokenSequences.length == 1) {
+      retval += "Was expecting:" + eol + "    ";
+    } else {
+      retval += "Was expecting one of:" + eol + "    ";
+    }
+    retval += expected.toString();
+    return retval;
+  }
+
+  /**
+   * The end of line string for this machine.
+   */
+  protected String eol = System.getProperty("line.separator", "\n");
+
+  /**
+   * Used to convert raw characters to their escaped version
+   * when these raw version cannot be used as part of an ASCII
+   * string literal.
+   */
+  static String add_escapes(String str) {
+      StringBuffer retval = new StringBuffer();
+      char ch;
+      for (int i = 0; i < str.length(); i++) {
+        switch (str.charAt(i))
+        {
+           case 0 :
+              continue;
+           case '\b':
+              retval.append("\\b");
+              continue;
+           case '\t':
+              retval.append("\\t");
+              continue;
+           case '\n':
+              retval.append("\\n");
+              continue;
+           case '\f':
+              retval.append("\\f");
+              continue;
+           case '\r':
+              retval.append("\\r");
+              continue;
+           case '\"':
+              retval.append("\\\"");
+              continue;
+           case '\'':
+              retval.append("\\\'");
+              continue;
+           case '\\':
+              retval.append("\\\\");
+              continue;
+           default:
+              if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
+                 String s = "0000" + Integer.toString(ch, 16);
+                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+              } else {
+                 retval.append(ch);
+              }
+              continue;
+        }
+      }
+      return retval.toString();
+   }
+
+}
+/* JavaCC - OriginalChecksum=25807f74c6efb1bcbd3321a6af1d8604 (do not edit this line) */

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java
index a6d961f..d5fc8d2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11.java
@@ -2260,7 +2260,7 @@ public class SPARQLParser11 extends SPARQLParser11Base implements SPARQLParser11
      if ( AggregateRegistry.isRegistered(fname) ) {
          if ( ! allowAggregatesInExpressions )
             throwParseException("Aggregate expression not legal at this point : "+fname, -1, -1) ;
-         Aggregator agg = AggregatorFactory.createCustom(fname, a) ;
+         Aggregator agg = AggregatorFactory.createCustom(true, false, fname, a) ;
          Expr exprAgg = getQuery().allocAggregate(agg) ;
          {if (true) return exprAgg ;}
      }
@@ -4653,7 +4653,7 @@ public class SPARQLParser11 extends SPARQLParser11Base implements SPARQLParser11
     if ( AggregateRegistry.isRegistered(iri) ) {
          if ( ! allowAggregatesInExpressions )
             throwParseException("Aggregate expression not legal at this point : "+iri, -1, -1) ;
-         Aggregator agg = AggregatorFactory.createCustom(iri, a) ;
+         Aggregator agg = AggregatorFactory.createCustom(true, false, iri, a) ;
          Expr exprAgg = getQuery().allocAggregate(agg) ;
          {if (true) return exprAgg ;}
       }

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11Constants.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11Constants.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11Constants.java
index b427b22..56bcfbd 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11Constants.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/SPARQLParser11Constants.java
@@ -1,612 +1,612 @@
-/* Generated By:JavaCC: Do not edit this line. SPARQLParser11Constants.java */
-package org.apache.jena.sparql.lang.sparql_11 ;
-
-
-/**
- * Token literal values and constants.
- * Generated by org.javacc.parser.OtherFilesGen#start()
- */
-public interface SPARQLParser11Constants {
-
-  /** End of File. */
-  int EOF = 0;
-  /** RegularExpression Id. */
-  int SINGLE_LINE_COMMENT = 6;
-  /** RegularExpression Id. */
-  int WS = 7;
-  /** RegularExpression Id. */
-  int WSC = 8;
-  /** RegularExpression Id. */
-  int BOM = 9;
-  /** RegularExpression Id. */
-  int IRIref = 10;
-  /** RegularExpression Id. */
-  int PNAME_NS = 11;
-  /** RegularExpression Id. */
-  int PNAME_LN = 12;
-  /** RegularExpression Id. */
-  int BLANK_NODE_LABEL = 13;
-  /** RegularExpression Id. */
-  int VAR1 = 14;
-  /** RegularExpression Id. */
-  int VAR2 = 15;
-  /** RegularExpression Id. */
-  int LANGTAG = 16;
-  /** RegularExpression Id. */
-  int A2Z = 17;
-  /** RegularExpression Id. */
-  int A2ZN = 18;
-  /** RegularExpression Id. */
-  int KW_A = 19;
-  /** RegularExpression Id. */
-  int BASE = 20;
-  /** RegularExpression Id. */
-  int PREFIX = 21;
-  /** RegularExpression Id. */
-  int SELECT = 22;
-  /** RegularExpression Id. */
-  int DISTINCT = 23;
-  /** RegularExpression Id. */
-  int REDUCED = 24;
-  /** RegularExpression Id. */
-  int DESCRIBE = 25;
-  /** RegularExpression Id. */
-  int CONSTRUCT = 26;
-  /** RegularExpression Id. */
-  int ASK = 27;
-  /** RegularExpression Id. */
-  int LIMIT = 28;
-  /** RegularExpression Id. */
-  int OFFSET = 29;
-  /** RegularExpression Id. */
-  int ORDER = 30;
-  /** RegularExpression Id. */
-  int BY = 31;
-  /** RegularExpression Id. */
-  int VALUES = 32;
-  /** RegularExpression Id. */
-  int UNDEF = 33;
-  /** RegularExpression Id. */
-  int ASC = 34;
-  /** RegularExpression Id. */
-  int DESC = 35;
-  /** RegularExpression Id. */
-  int NAMED = 36;
-  /** RegularExpression Id. */
-  int FROM = 37;
-  /** RegularExpression Id. */
-  int WHERE = 38;
-  /** RegularExpression Id. */
-  int AND = 39;
-  /** RegularExpression Id. */
-  int GRAPH = 40;
-  /** RegularExpression Id. */
-  int OPTIONAL = 41;
-  /** RegularExpression Id. */
-  int UNION = 42;
-  /** RegularExpression Id. */
-  int MINUS_P = 43;
-  /** RegularExpression Id. */
-  int BIND = 44;
-  /** RegularExpression Id. */
-  int SERVICE = 45;
-  /** RegularExpression Id. */
-  int EXISTS = 46;
-  /** RegularExpression Id. */
-  int NOT = 47;
-  /** RegularExpression Id. */
-  int AS = 48;
-  /** RegularExpression Id. */
-  int GROUP = 49;
-  /** RegularExpression Id. */
-  int HAVING = 50;
-  /** RegularExpression Id. */
-  int SEPARATOR = 51;
-  /** RegularExpression Id. */
-  int AGG = 52;
-  /** RegularExpression Id. */
-  int COUNT = 53;
-  /** RegularExpression Id. */
-  int MIN = 54;
-  /** RegularExpression Id. */
-  int MAX = 55;
-  /** RegularExpression Id. */
-  int SUM = 56;
-  /** RegularExpression Id. */
-  int AVG = 57;
-  /** RegularExpression Id. */
-  int STDDEV = 58;
-  /** RegularExpression Id. */
-  int SAMPLE = 59;
-  /** RegularExpression Id. */
-  int GROUP_CONCAT = 60;
-  /** RegularExpression Id. */
-  int FILTER = 61;
-  /** RegularExpression Id. */
-  int BOUND = 62;
-  /** RegularExpression Id. */
-  int COALESCE = 63;
-  /** RegularExpression Id. */
-  int IN = 64;
-  /** RegularExpression Id. */
-  int IF = 65;
-  /** RegularExpression Id. */
-  int BNODE = 66;
-  /** RegularExpression Id. */
-  int IRI = 67;
-  /** RegularExpression Id. */
-  int URI = 68;
-  /** RegularExpression Id. */
-  int STR = 69;
-  /** RegularExpression Id. */
-  int STRLANG = 70;
-  /** RegularExpression Id. */
-  int STRDT = 71;
-  /** RegularExpression Id. */
-  int DTYPE = 72;
-  /** RegularExpression Id. */
-  int LANG = 73;
-  /** RegularExpression Id. */
-  int LANGMATCHES = 74;
-  /** RegularExpression Id. */
-  int IS_URI = 75;
-  /** RegularExpression Id. */
-  int IS_IRI = 76;
-  /** RegularExpression Id. */
-  int IS_BLANK = 77;
-  /** RegularExpression Id. */
-  int IS_LITERAL = 78;
-  /** RegularExpression Id. */
-  int IS_NUMERIC = 79;
-  /** RegularExpression Id. */
-  int REGEX = 80;
-  /** RegularExpression Id. */
-  int SAME_TERM = 81;
-  /** RegularExpression Id. */
-  int RAND = 82;
-  /** RegularExpression Id. */
-  int ABS = 83;
-  /** RegularExpression Id. */
-  int CEIL = 84;
-  /** RegularExpression Id. */
-  int FLOOR = 85;
-  /** RegularExpression Id. */
-  int ROUND = 86;
-  /** RegularExpression Id. */
-  int CONCAT = 87;
-  /** RegularExpression Id. */
-  int SUBSTR = 88;
-  /** RegularExpression Id. */
-  int STRLEN = 89;
-  /** RegularExpression Id. */
-  int REPLACE = 90;
-  /** RegularExpression Id. */
-  int UCASE = 91;
-  /** RegularExpression Id. */
-  int LCASE = 92;
-  /** RegularExpression Id. */
-  int ENCODE_FOR_URI = 93;
-  /** RegularExpression Id. */
-  int CONTAINS = 94;
-  /** RegularExpression Id. */
-  int STRSTARTS = 95;
-  /** RegularExpression Id. */
-  int STRENDS = 96;
-  /** RegularExpression Id. */
-  int STRBEFORE = 97;
-  /** RegularExpression Id. */
-  int STRAFTER = 98;
-  /** RegularExpression Id. */
-  int YEAR = 99;
-  /** RegularExpression Id. */
-  int MONTH = 100;
-  /** RegularExpression Id. */
-  int DAY = 101;
-  /** RegularExpression Id. */
-  int HOURS = 102;
-  /** RegularExpression Id. */
-  int MINUTES = 103;
-  /** RegularExpression Id. */
-  int SECONDS = 104;
-  /** RegularExpression Id. */
-  int TIMEZONE = 105;
-  /** RegularExpression Id. */
-  int TZ = 106;
-  /** RegularExpression Id. */
-  int NOW = 107;
-  /** RegularExpression Id. */
-  int UUID = 108;
-  /** RegularExpression Id. */
-  int STRUUID = 109;
-  /** RegularExpression Id. */
-  int MD5 = 110;
-  /** RegularExpression Id. */
-  int SHA1 = 111;
-  /** RegularExpression Id. */
-  int SHA224 = 112;
-  /** RegularExpression Id. */
-  int SHA256 = 113;
-  /** RegularExpression Id. */
-  int SHA384 = 114;
-  /** RegularExpression Id. */
-  int SHA512 = 115;
-  /** RegularExpression Id. */
-  int TRUE = 116;
-  /** RegularExpression Id. */
-  int FALSE = 117;
-  /** RegularExpression Id. */
-  int DATA = 118;
-  /** RegularExpression Id. */
-  int INSERT = 119;
-  /** RegularExpression Id. */
-  int DELETE = 120;
-  /** RegularExpression Id. */
-  int INSERT_DATA = 121;
-  /** RegularExpression Id. */
-  int DELETE_DATA = 122;
-  /** RegularExpression Id. */
-  int DELETE_WHERE = 123;
-  /** RegularExpression Id. */
-  int LOAD = 124;
-  /** RegularExpression Id. */
-  int CLEAR = 125;
-  /** RegularExpression Id. */
-  int CREATE = 126;
-  /** RegularExpression Id. */
-  int ADD = 127;
-  /** RegularExpression Id. */
-  int MOVE = 128;
-  /** RegularExpression Id. */
-  int COPY = 129;
-  /** RegularExpression Id. */
-  int META = 130;
-  /** RegularExpression Id. */
-  int SILENT = 131;
-  /** RegularExpression Id. */
-  int DROP = 132;
-  /** RegularExpression Id. */
-  int INTO = 133;
-  /** RegularExpression Id. */
-  int TO = 134;
-  /** RegularExpression Id. */
-  int DFT = 135;
-  /** RegularExpression Id. */
-  int ALL = 136;
-  /** RegularExpression Id. */
-  int WITH = 137;
-  /** RegularExpression Id. */
-  int USING = 138;
-  /** RegularExpression Id. */
-  int DIGITS = 139;
-  /** RegularExpression Id. */
-  int INTEGER = 140;
-  /** RegularExpression Id. */
-  int DECIMAL = 141;
-  /** RegularExpression Id. */
-  int DOUBLE = 142;
-  /** RegularExpression Id. */
-  int INTEGER_POSITIVE = 143;
-  /** RegularExpression Id. */
-  int DECIMAL_POSITIVE = 144;
-  /** RegularExpression Id. */
-  int DOUBLE_POSITIVE = 145;
-  /** RegularExpression Id. */
-  int INTEGER_NEGATIVE = 146;
-  /** RegularExpression Id. */
-  int DECIMAL_NEGATIVE = 147;
-  /** RegularExpression Id. */
-  int DOUBLE_NEGATIVE = 148;
-  /** RegularExpression Id. */
-  int EXPONENT = 149;
-  /** RegularExpression Id. */
-  int QUOTE_3D = 150;
-  /** RegularExpression Id. */
-  int QUOTE_3S = 151;
-  /** RegularExpression Id. */
-  int ECHAR = 152;
-  /** RegularExpression Id. */
-  int STRING_LITERAL1 = 153;
-  /** RegularExpression Id. */
-  int STRING_LITERAL2 = 154;
-  /** RegularExpression Id. */
-  int STRING_LITERAL_LONG1 = 155;
-  /** RegularExpression Id. */
-  int STRING_LITERAL_LONG2 = 156;
-  /** RegularExpression Id. */
-  int LPAREN = 157;
-  /** RegularExpression Id. */
-  int RPAREN = 158;
-  /** RegularExpression Id. */
-  int NIL = 159;
-  /** RegularExpression Id. */
-  int LBRACE = 160;
-  /** RegularExpression Id. */
-  int RBRACE = 161;
-  /** RegularExpression Id. */
-  int LBRACKET = 162;
-  /** RegularExpression Id. */
-  int RBRACKET = 163;
-  /** RegularExpression Id. */
-  int ANON = 164;
-  /** RegularExpression Id. */
-  int SEMICOLON = 165;
-  /** RegularExpression Id. */
-  int COMMA = 166;
-  /** RegularExpression Id. */
-  int DOT = 167;
-  /** RegularExpression Id. */
-  int EQ = 168;
-  /** RegularExpression Id. */
-  int NE = 169;
-  /** RegularExpression Id. */
-  int GT = 170;
-  /** RegularExpression Id. */
-  int LT = 171;
-  /** RegularExpression Id. */
-  int LE = 172;
-  /** RegularExpression Id. */
-  int GE = 173;
-  /** RegularExpression Id. */
-  int BANG = 174;
-  /** RegularExpression Id. */
-  int TILDE = 175;
-  /** RegularExpression Id. */
-  int COLON = 176;
-  /** RegularExpression Id. */
-  int SC_OR = 177;
-  /** RegularExpression Id. */
-  int SC_AND = 178;
-  /** RegularExpression Id. */
-  int PLUS = 179;
-  /** RegularExpression Id. */
-  int MINUS = 180;
-  /** RegularExpression Id. */
-  int STAR = 181;
-  /** RegularExpression Id. */
-  int SLASH = 182;
-  /** RegularExpression Id. */
-  int DATATYPE = 183;
-  /** RegularExpression Id. */
-  int AT = 184;
-  /** RegularExpression Id. */
-  int VBAR = 185;
-  /** RegularExpression Id. */
-  int CARAT = 186;
-  /** RegularExpression Id. */
-  int FPATH = 187;
-  /** RegularExpression Id. */
-  int RPATH = 188;
-  /** RegularExpression Id. */
-  int QMARK = 189;
-  /** RegularExpression Id. */
-  int PN_CHARS_BASE = 190;
-  /** RegularExpression Id. */
-  int PN_CHARS_U = 191;
-  /** RegularExpression Id. */
-  int PN_CHARS = 192;
-  /** RegularExpression Id. */
-  int PN_PREFIX = 193;
-  /** RegularExpression Id. */
-  int PN_LOCAL = 194;
-  /** RegularExpression Id. */
-  int VARNAME = 195;
-  /** RegularExpression Id. */
-  int PN_LOCAL_ESC = 196;
-  /** RegularExpression Id. */
-  int PLX = 197;
-  /** RegularExpression Id. */
-  int HEX = 198;
-  /** RegularExpression Id. */
-  int PERCENT = 199;
-  /** RegularExpression Id. */
-  int UNKNOWN = 200;
-
-  /** Lexical state. */
-  int DEFAULT = 0;
-
-  /** Literal token values. */
-  String[] tokenImage = {
-    "<EOF>",
-    "\" \"",
-    "\"\\t\"",
-    "\"\\n\"",
-    "\"\\r\"",
-    "\"\\f\"",
-    "<SINGLE_LINE_COMMENT>",
-    "<WS>",
-    "<WSC>",
-    "\"\\ufeff\"",
-    "<IRIref>",
-    "<PNAME_NS>",
-    "<PNAME_LN>",
-    "<BLANK_NODE_LABEL>",
-    "<VAR1>",
-    "<VAR2>",
-    "<LANGTAG>",
-    "<A2Z>",
-    "<A2ZN>",
-    "\"a\"",
-    "\"base\"",
-    "\"prefix\"",
-    "\"select\"",
-    "\"distinct\"",
-    "\"reduced\"",
-    "\"describe\"",
-    "\"construct\"",
-    "\"ask\"",
-    "\"limit\"",
-    "\"offset\"",
-    "\"order\"",
-    "\"by\"",
-    "\"values\"",
-    "\"undef\"",
-    "\"asc\"",
-    "\"desc\"",
-    "\"named\"",
-    "\"from\"",
-    "\"where\"",
-    "\"and\"",
-    "\"graph\"",
-    "\"optional\"",
-    "\"union\"",
-    "\"minus\"",
-    "\"bind\"",
-    "\"service\"",
-    "\"exists\"",
-    "\"not\"",
-    "\"as\"",
-    "\"group\"",
-    "\"having\"",
-    "\"separator\"",
-    "\"agg\"",
-    "\"count\"",
-    "\"min\"",
-    "\"max\"",
-    "\"sum\"",
-    "\"avg\"",
-    "\"stdev\"",
-    "\"sample\"",
-    "\"group_concat\"",
-    "\"filter\"",
-    "\"bound\"",
-    "\"coalesce\"",
-    "\"in\"",
-    "\"if\"",
-    "\"bnode\"",
-    "\"iri\"",
-    "\"uri\"",
-    "\"str\"",
-    "\"strlang\"",
-    "\"strdt\"",
-    "\"datatype\"",
-    "\"lang\"",
-    "\"langmatches\"",
-    "\"isURI\"",
-    "\"isIRI\"",
-    "\"isBlank\"",
-    "\"isLiteral\"",
-    "\"isNumeric\"",
-    "\"regex\"",
-    "\"sameTerm\"",
-    "\"RAND\"",
-    "\"ABS\"",
-    "\"CEIL\"",
-    "\"FLOOR\"",
-    "\"ROUND\"",
-    "\"CONCAT\"",
-    "\"SUBSTR\"",
-    "\"STRLEN\"",
-    "\"REPLACE\"",
-    "\"UCASE\"",
-    "\"LCASE\"",
-    "\"ENCODE_FOR_URI\"",
-    "\"CONTAINS\"",
-    "\"STRSTARTS\"",
-    "\"STRENDS\"",
-    "\"STRBEFORE\"",
-    "\"STRAFTER\"",
-    "\"YEAR\"",
-    "\"MONTH\"",
-    "\"DAY\"",
-    "\"HOURS\"",
-    "\"MINUTES\"",
-    "\"SECONDS\"",
-    "\"TIMEZONE\"",
-    "\"TZ\"",
-    "\"NOW\"",
-    "\"UUID\"",
-    "\"STRUUID\"",
-    "\"MD5\"",
-    "\"SHA1\"",
-    "\"SHA224\"",
-    "\"SHA256\"",
-    "\"SHA384\"",
-    "\"SHA512\"",
-    "\"true\"",
-    "\"false\"",
-    "\"data\"",
-    "\"insert\"",
-    "\"delete\"",
-    "<INSERT_DATA>",
-    "<DELETE_DATA>",
-    "<DELETE_WHERE>",
-    "\"load\"",
-    "\"clear\"",
-    "\"create\"",
-    "\"add\"",
-    "\"move\"",
-    "\"copy\"",
-    "\"meta\"",
-    "\"silent\"",
-    "\"drop\"",
-    "\"into\"",
-    "\"to\"",
-    "\"default\"",
-    "\"all\"",
-    "\"with\"",
-    "\"using\"",
-    "<DIGITS>",
-    "<INTEGER>",
-    "<DECIMAL>",
-    "<DOUBLE>",
-    "<INTEGER_POSITIVE>",
-    "<DECIMAL_POSITIVE>",
-    "<DOUBLE_POSITIVE>",
-    "<INTEGER_NEGATIVE>",
-    "<DECIMAL_NEGATIVE>",
-    "<DOUBLE_NEGATIVE>",
-    "<EXPONENT>",
-    "\"\\\"\\\"\\\"\"",
-    "\"\\\'\\\'\\\'\"",
-    "<ECHAR>",
-    "<STRING_LITERAL1>",
-    "<STRING_LITERAL2>",
-    "<STRING_LITERAL_LONG1>",
-    "<STRING_LITERAL_LONG2>",
-    "\"(\"",
-    "\")\"",
-    "<NIL>",
-    "\"{\"",
-    "\"}\"",
-    "\"[\"",
-    "\"]\"",
-    "<ANON>",
-    "\";\"",
-    "\",\"",
-    "\".\"",
-    "\"=\"",
-    "\"!=\"",
-    "\">\"",
-    "\"<\"",
-    "\"<=\"",
-    "\">=\"",
-    "\"!\"",
-    "\"~\"",
-    "\":\"",
-    "\"||\"",
-    "\"&&\"",
-    "\"+\"",
-    "\"-\"",
-    "\"*\"",
-    "\"/\"",
-    "\"^^\"",
-    "\"@\"",
-    "\"|\"",
-    "\"^\"",
-    "\"->\"",
-    "\"<-\"",
-    "\"?\"",
-    "<PN_CHARS_BASE>",
-    "<PN_CHARS_U>",
-    "<PN_CHARS>",
-    "<PN_PREFIX>",
-    "<PN_LOCAL>",
-    "<VARNAME>",
-    "<PN_LOCAL_ESC>",
-    "<PLX>",
-    "<HEX>",
-    "<PERCENT>",
-    "<UNKNOWN>",
-  };
-
-}
+/* Generated By:JavaCC: Do not edit this line. SPARQLParser11Constants.java */
+package org.apache.jena.sparql.lang.sparql_11 ;
+
+
+/**
+ * Token literal values and constants.
+ * Generated by org.javacc.parser.OtherFilesGen#start()
+ */
+public interface SPARQLParser11Constants {
+
+  /** End of File. */
+  int EOF = 0;
+  /** RegularExpression Id. */
+  int SINGLE_LINE_COMMENT = 6;
+  /** RegularExpression Id. */
+  int WS = 7;
+  /** RegularExpression Id. */
+  int WSC = 8;
+  /** RegularExpression Id. */
+  int BOM = 9;
+  /** RegularExpression Id. */
+  int IRIref = 10;
+  /** RegularExpression Id. */
+  int PNAME_NS = 11;
+  /** RegularExpression Id. */
+  int PNAME_LN = 12;
+  /** RegularExpression Id. */
+  int BLANK_NODE_LABEL = 13;
+  /** RegularExpression Id. */
+  int VAR1 = 14;
+  /** RegularExpression Id. */
+  int VAR2 = 15;
+  /** RegularExpression Id. */
+  int LANGTAG = 16;
+  /** RegularExpression Id. */
+  int A2Z = 17;
+  /** RegularExpression Id. */
+  int A2ZN = 18;
+  /** RegularExpression Id. */
+  int KW_A = 19;
+  /** RegularExpression Id. */
+  int BASE = 20;
+  /** RegularExpression Id. */
+  int PREFIX = 21;
+  /** RegularExpression Id. */
+  int SELECT = 22;
+  /** RegularExpression Id. */
+  int DISTINCT = 23;
+  /** RegularExpression Id. */
+  int REDUCED = 24;
+  /** RegularExpression Id. */
+  int DESCRIBE = 25;
+  /** RegularExpression Id. */
+  int CONSTRUCT = 26;
+  /** RegularExpression Id. */
+  int ASK = 27;
+  /** RegularExpression Id. */
+  int LIMIT = 28;
+  /** RegularExpression Id. */
+  int OFFSET = 29;
+  /** RegularExpression Id. */
+  int ORDER = 30;
+  /** RegularExpression Id. */
+  int BY = 31;
+  /** RegularExpression Id. */
+  int VALUES = 32;
+  /** RegularExpression Id. */
+  int UNDEF = 33;
+  /** RegularExpression Id. */
+  int ASC = 34;
+  /** RegularExpression Id. */
+  int DESC = 35;
+  /** RegularExpression Id. */
+  int NAMED = 36;
+  /** RegularExpression Id. */
+  int FROM = 37;
+  /** RegularExpression Id. */
+  int WHERE = 38;
+  /** RegularExpression Id. */
+  int AND = 39;
+  /** RegularExpression Id. */
+  int GRAPH = 40;
+  /** RegularExpression Id. */
+  int OPTIONAL = 41;
+  /** RegularExpression Id. */
+  int UNION = 42;
+  /** RegularExpression Id. */
+  int MINUS_P = 43;
+  /** RegularExpression Id. */
+  int BIND = 44;
+  /** RegularExpression Id. */
+  int SERVICE = 45;
+  /** RegularExpression Id. */
+  int EXISTS = 46;
+  /** RegularExpression Id. */
+  int NOT = 47;
+  /** RegularExpression Id. */
+  int AS = 48;
+  /** RegularExpression Id. */
+  int GROUP = 49;
+  /** RegularExpression Id. */
+  int HAVING = 50;
+  /** RegularExpression Id. */
+  int SEPARATOR = 51;
+  /** RegularExpression Id. */
+  int AGG = 52;
+  /** RegularExpression Id. */
+  int COUNT = 53;
+  /** RegularExpression Id. */
+  int MIN = 54;
+  /** RegularExpression Id. */
+  int MAX = 55;
+  /** RegularExpression Id. */
+  int SUM = 56;
+  /** RegularExpression Id. */
+  int AVG = 57;
+  /** RegularExpression Id. */
+  int STDDEV = 58;
+  /** RegularExpression Id. */
+  int SAMPLE = 59;
+  /** RegularExpression Id. */
+  int GROUP_CONCAT = 60;
+  /** RegularExpression Id. */
+  int FILTER = 61;
+  /** RegularExpression Id. */
+  int BOUND = 62;
+  /** RegularExpression Id. */
+  int COALESCE = 63;
+  /** RegularExpression Id. */
+  int IN = 64;
+  /** RegularExpression Id. */
+  int IF = 65;
+  /** RegularExpression Id. */
+  int BNODE = 66;
+  /** RegularExpression Id. */
+  int IRI = 67;
+  /** RegularExpression Id. */
+  int URI = 68;
+  /** RegularExpression Id. */
+  int STR = 69;
+  /** RegularExpression Id. */
+  int STRLANG = 70;
+  /** RegularExpression Id. */
+  int STRDT = 71;
+  /** RegularExpression Id. */
+  int DTYPE = 72;
+  /** RegularExpression Id. */
+  int LANG = 73;
+  /** RegularExpression Id. */
+  int LANGMATCHES = 74;
+  /** RegularExpression Id. */
+  int IS_URI = 75;
+  /** RegularExpression Id. */
+  int IS_IRI = 76;
+  /** RegularExpression Id. */
+  int IS_BLANK = 77;
+  /** RegularExpression Id. */
+  int IS_LITERAL = 78;
+  /** RegularExpression Id. */
+  int IS_NUMERIC = 79;
+  /** RegularExpression Id. */
+  int REGEX = 80;
+  /** RegularExpression Id. */
+  int SAME_TERM = 81;
+  /** RegularExpression Id. */
+  int RAND = 82;
+  /** RegularExpression Id. */
+  int ABS = 83;
+  /** RegularExpression Id. */
+  int CEIL = 84;
+  /** RegularExpression Id. */
+  int FLOOR = 85;
+  /** RegularExpression Id. */
+  int ROUND = 86;
+  /** RegularExpression Id. */
+  int CONCAT = 87;
+  /** RegularExpression Id. */
+  int SUBSTR = 88;
+  /** RegularExpression Id. */
+  int STRLEN = 89;
+  /** RegularExpression Id. */
+  int REPLACE = 90;
+  /** RegularExpression Id. */
+  int UCASE = 91;
+  /** RegularExpression Id. */
+  int LCASE = 92;
+  /** RegularExpression Id. */
+  int ENCODE_FOR_URI = 93;
+  /** RegularExpression Id. */
+  int CONTAINS = 94;
+  /** RegularExpression Id. */
+  int STRSTARTS = 95;
+  /** RegularExpression Id. */
+  int STRENDS = 96;
+  /** RegularExpression Id. */
+  int STRBEFORE = 97;
+  /** RegularExpression Id. */
+  int STRAFTER = 98;
+  /** RegularExpression Id. */
+  int YEAR = 99;
+  /** RegularExpression Id. */
+  int MONTH = 100;
+  /** RegularExpression Id. */
+  int DAY = 101;
+  /** RegularExpression Id. */
+  int HOURS = 102;
+  /** RegularExpression Id. */
+  int MINUTES = 103;
+  /** RegularExpression Id. */
+  int SECONDS = 104;
+  /** RegularExpression Id. */
+  int TIMEZONE = 105;
+  /** RegularExpression Id. */
+  int TZ = 106;
+  /** RegularExpression Id. */
+  int NOW = 107;
+  /** RegularExpression Id. */
+  int UUID = 108;
+  /** RegularExpression Id. */
+  int STRUUID = 109;
+  /** RegularExpression Id. */
+  int MD5 = 110;
+  /** RegularExpression Id. */
+  int SHA1 = 111;
+  /** RegularExpression Id. */
+  int SHA224 = 112;
+  /** RegularExpression Id. */
+  int SHA256 = 113;
+  /** RegularExpression Id. */
+  int SHA384 = 114;
+  /** RegularExpression Id. */
+  int SHA512 = 115;
+  /** RegularExpression Id. */
+  int TRUE = 116;
+  /** RegularExpression Id. */
+  int FALSE = 117;
+  /** RegularExpression Id. */
+  int DATA = 118;
+  /** RegularExpression Id. */
+  int INSERT = 119;
+  /** RegularExpression Id. */
+  int DELETE = 120;
+  /** RegularExpression Id. */
+  int INSERT_DATA = 121;
+  /** RegularExpression Id. */
+  int DELETE_DATA = 122;
+  /** RegularExpression Id. */
+  int DELETE_WHERE = 123;
+  /** RegularExpression Id. */
+  int LOAD = 124;
+  /** RegularExpression Id. */
+  int CLEAR = 125;
+  /** RegularExpression Id. */
+  int CREATE = 126;
+  /** RegularExpression Id. */
+  int ADD = 127;
+  /** RegularExpression Id. */
+  int MOVE = 128;
+  /** RegularExpression Id. */
+  int COPY = 129;
+  /** RegularExpression Id. */
+  int META = 130;
+  /** RegularExpression Id. */
+  int SILENT = 131;
+  /** RegularExpression Id. */
+  int DROP = 132;
+  /** RegularExpression Id. */
+  int INTO = 133;
+  /** RegularExpression Id. */
+  int TO = 134;
+  /** RegularExpression Id. */
+  int DFT = 135;
+  /** RegularExpression Id. */
+  int ALL = 136;
+  /** RegularExpression Id. */
+  int WITH = 137;
+  /** RegularExpression Id. */
+  int USING = 138;
+  /** RegularExpression Id. */
+  int DIGITS = 139;
+  /** RegularExpression Id. */
+  int INTEGER = 140;
+  /** RegularExpression Id. */
+  int DECIMAL = 141;
+  /** RegularExpression Id. */
+  int DOUBLE = 142;
+  /** RegularExpression Id. */
+  int INTEGER_POSITIVE = 143;
+  /** RegularExpression Id. */
+  int DECIMAL_POSITIVE = 144;
+  /** RegularExpression Id. */
+  int DOUBLE_POSITIVE = 145;
+  /** RegularExpression Id. */
+  int INTEGER_NEGATIVE = 146;
+  /** RegularExpression Id. */
+  int DECIMAL_NEGATIVE = 147;
+  /** RegularExpression Id. */
+  int DOUBLE_NEGATIVE = 148;
+  /** RegularExpression Id. */
+  int EXPONENT = 149;
+  /** RegularExpression Id. */
+  int QUOTE_3D = 150;
+  /** RegularExpression Id. */
+  int QUOTE_3S = 151;
+  /** RegularExpression Id. */
+  int ECHAR = 152;
+  /** RegularExpression Id. */
+  int STRING_LITERAL1 = 153;
+  /** RegularExpression Id. */
+  int STRING_LITERAL2 = 154;
+  /** RegularExpression Id. */
+  int STRING_LITERAL_LONG1 = 155;
+  /** RegularExpression Id. */
+  int STRING_LITERAL_LONG2 = 156;
+  /** RegularExpression Id. */
+  int LPAREN = 157;
+  /** RegularExpression Id. */
+  int RPAREN = 158;
+  /** RegularExpression Id. */
+  int NIL = 159;
+  /** RegularExpression Id. */
+  int LBRACE = 160;
+  /** RegularExpression Id. */
+  int RBRACE = 161;
+  /** RegularExpression Id. */
+  int LBRACKET = 162;
+  /** RegularExpression Id. */
+  int RBRACKET = 163;
+  /** RegularExpression Id. */
+  int ANON = 164;
+  /** RegularExpression Id. */
+  int SEMICOLON = 165;
+  /** RegularExpression Id. */
+  int COMMA = 166;
+  /** RegularExpression Id. */
+  int DOT = 167;
+  /** RegularExpression Id. */
+  int EQ = 168;
+  /** RegularExpression Id. */
+  int NE = 169;
+  /** RegularExpression Id. */
+  int GT = 170;
+  /** RegularExpression Id. */
+  int LT = 171;
+  /** RegularExpression Id. */
+  int LE = 172;
+  /** RegularExpression Id. */
+  int GE = 173;
+  /** RegularExpression Id. */
+  int BANG = 174;
+  /** RegularExpression Id. */
+  int TILDE = 175;
+  /** RegularExpression Id. */
+  int COLON = 176;
+  /** RegularExpression Id. */
+  int SC_OR = 177;
+  /** RegularExpression Id. */
+  int SC_AND = 178;
+  /** RegularExpression Id. */
+  int PLUS = 179;
+  /** RegularExpression Id. */
+  int MINUS = 180;
+  /** RegularExpression Id. */
+  int STAR = 181;
+  /** RegularExpression Id. */
+  int SLASH = 182;
+  /** RegularExpression Id. */
+  int DATATYPE = 183;
+  /** RegularExpression Id. */
+  int AT = 184;
+  /** RegularExpression Id. */
+  int VBAR = 185;
+  /** RegularExpression Id. */
+  int CARAT = 186;
+  /** RegularExpression Id. */
+  int FPATH = 187;
+  /** RegularExpression Id. */
+  int RPATH = 188;
+  /** RegularExpression Id. */
+  int QMARK = 189;
+  /** RegularExpression Id. */
+  int PN_CHARS_BASE = 190;
+  /** RegularExpression Id. */
+  int PN_CHARS_U = 191;
+  /** RegularExpression Id. */
+  int PN_CHARS = 192;
+  /** RegularExpression Id. */
+  int PN_PREFIX = 193;
+  /** RegularExpression Id. */
+  int PN_LOCAL = 194;
+  /** RegularExpression Id. */
+  int VARNAME = 195;
+  /** RegularExpression Id. */
+  int PN_LOCAL_ESC = 196;
+  /** RegularExpression Id. */
+  int PLX = 197;
+  /** RegularExpression Id. */
+  int HEX = 198;
+  /** RegularExpression Id. */
+  int PERCENT = 199;
+  /** RegularExpression Id. */
+  int UNKNOWN = 200;
+
+  /** Lexical state. */
+  int DEFAULT = 0;
+
+  /** Literal token values. */
+  String[] tokenImage = {
+    "<EOF>",
+    "\" \"",
+    "\"\\t\"",
+    "\"\\n\"",
+    "\"\\r\"",
+    "\"\\f\"",
+    "<SINGLE_LINE_COMMENT>",
+    "<WS>",
+    "<WSC>",
+    "\"\\ufeff\"",
+    "<IRIref>",
+    "<PNAME_NS>",
+    "<PNAME_LN>",
+    "<BLANK_NODE_LABEL>",
+    "<VAR1>",
+    "<VAR2>",
+    "<LANGTAG>",
+    "<A2Z>",
+    "<A2ZN>",
+    "\"a\"",
+    "\"base\"",
+    "\"prefix\"",
+    "\"select\"",
+    "\"distinct\"",
+    "\"reduced\"",
+    "\"describe\"",
+    "\"construct\"",
+    "\"ask\"",
+    "\"limit\"",
+    "\"offset\"",
+    "\"order\"",
+    "\"by\"",
+    "\"values\"",
+    "\"undef\"",
+    "\"asc\"",
+    "\"desc\"",
+    "\"named\"",
+    "\"from\"",
+    "\"where\"",
+    "\"and\"",
+    "\"graph\"",
+    "\"optional\"",
+    "\"union\"",
+    "\"minus\"",
+    "\"bind\"",
+    "\"service\"",
+    "\"exists\"",
+    "\"not\"",
+    "\"as\"",
+    "\"group\"",
+    "\"having\"",
+    "\"separator\"",
+    "\"agg\"",
+    "\"count\"",
+    "\"min\"",
+    "\"max\"",
+    "\"sum\"",
+    "\"avg\"",
+    "\"stdev\"",
+    "\"sample\"",
+    "\"group_concat\"",
+    "\"filter\"",
+    "\"bound\"",
+    "\"coalesce\"",
+    "\"in\"",
+    "\"if\"",
+    "\"bnode\"",
+    "\"iri\"",
+    "\"uri\"",
+    "\"str\"",
+    "\"strlang\"",
+    "\"strdt\"",
+    "\"datatype\"",
+    "\"lang\"",
+    "\"langmatches\"",
+    "\"isURI\"",
+    "\"isIRI\"",
+    "\"isBlank\"",
+    "\"isLiteral\"",
+    "\"isNumeric\"",
+    "\"regex\"",
+    "\"sameTerm\"",
+    "\"RAND\"",
+    "\"ABS\"",
+    "\"CEIL\"",
+    "\"FLOOR\"",
+    "\"ROUND\"",
+    "\"CONCAT\"",
+    "\"SUBSTR\"",
+    "\"STRLEN\"",
+    "\"REPLACE\"",
+    "\"UCASE\"",
+    "\"LCASE\"",
+    "\"ENCODE_FOR_URI\"",
+    "\"CONTAINS\"",
+    "\"STRSTARTS\"",
+    "\"STRENDS\"",
+    "\"STRBEFORE\"",
+    "\"STRAFTER\"",
+    "\"YEAR\"",
+    "\"MONTH\"",
+    "\"DAY\"",
+    "\"HOURS\"",
+    "\"MINUTES\"",
+    "\"SECONDS\"",
+    "\"TIMEZONE\"",
+    "\"TZ\"",
+    "\"NOW\"",
+    "\"UUID\"",
+    "\"STRUUID\"",
+    "\"MD5\"",
+    "\"SHA1\"",
+    "\"SHA224\"",
+    "\"SHA256\"",
+    "\"SHA384\"",
+    "\"SHA512\"",
+    "\"true\"",
+    "\"false\"",
+    "\"data\"",
+    "\"insert\"",
+    "\"delete\"",
+    "<INSERT_DATA>",
+    "<DELETE_DATA>",
+    "<DELETE_WHERE>",
+    "\"load\"",
+    "\"clear\"",
+    "\"create\"",
+    "\"add\"",
+    "\"move\"",
+    "\"copy\"",
+    "\"meta\"",
+    "\"silent\"",
+    "\"drop\"",
+    "\"into\"",
+    "\"to\"",
+    "\"default\"",
+    "\"all\"",
+    "\"with\"",
+    "\"using\"",
+    "<DIGITS>",
+    "<INTEGER>",
+    "<DECIMAL>",
+    "<DOUBLE>",
+    "<INTEGER_POSITIVE>",
+    "<DECIMAL_POSITIVE>",
+    "<DOUBLE_POSITIVE>",
+    "<INTEGER_NEGATIVE>",
+    "<DECIMAL_NEGATIVE>",
+    "<DOUBLE_NEGATIVE>",
+    "<EXPONENT>",
+    "\"\\\"\\\"\\\"\"",
+    "\"\\\'\\\'\\\'\"",
+    "<ECHAR>",
+    "<STRING_LITERAL1>",
+    "<STRING_LITERAL2>",
+    "<STRING_LITERAL_LONG1>",
+    "<STRING_LITERAL_LONG2>",
+    "\"(\"",
+    "\")\"",
+    "<NIL>",
+    "\"{\"",
+    "\"}\"",
+    "\"[\"",
+    "\"]\"",
+    "<ANON>",
+    "\";\"",
+    "\",\"",
+    "\".\"",
+    "\"=\"",
+    "\"!=\"",
+    "\">\"",
+    "\"<\"",
+    "\"<=\"",
+    "\">=\"",
+    "\"!\"",
+    "\"~\"",
+    "\":\"",
+    "\"||\"",
+    "\"&&\"",
+    "\"+\"",
+    "\"-\"",
+    "\"*\"",
+    "\"/\"",
+    "\"^^\"",
+    "\"@\"",
+    "\"|\"",
+    "\"^\"",
+    "\"->\"",
+    "\"<-\"",
+    "\"?\"",
+    "<PN_CHARS_BASE>",
+    "<PN_CHARS_U>",
+    "<PN_CHARS>",
+    "<PN_PREFIX>",
+    "<PN_LOCAL>",
+    "<VARNAME>",
+    "<PN_LOCAL_ESC>",
+    "<PLX>",
+    "<HEX>",
+    "<PERCENT>",
+    "<UNKNOWN>",
+  };
+
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/Token.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/Token.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/Token.java
index c4514db..994d8dc 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/Token.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/Token.java
@@ -128,4 +128,4 @@ public class Token implements java.io.Serializable {
   }
 
 }
-/* JavaCC - OriginalChecksum=2e111759cc5d23b5f328692361ef7edf (do not edit this line) */
+/* JavaCC - OriginalChecksum=14a2dd2c56b347f7b769eacf6b50c9b9 (do not edit this line) */

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/TokenMgrError.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/TokenMgrError.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/TokenMgrError.java
index c3f4585..023874f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/TokenMgrError.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_11/TokenMgrError.java
@@ -144,4 +144,4 @@ public class TokenMgrError extends Error
     this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
   }
 }
-/* JavaCC - OriginalChecksum=2748ab83006aee357b29341477722d1b (do not edit this line) */
+/* JavaCC - OriginalChecksum=0c993d195e89c16550efa6afecdeb1ab (do not edit this line) */

http://git-wip-us.apache.org/repos/asf/jena/blob/b93e3898/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
index 39a7a54..777df8b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
@@ -1402,7 +1402,7 @@ public class BuilderExpr
             if ( distinct )
                 x = x.cdr();
             ExprList e = buildExprListUntagged(x, 0) ;
-            Aggregator agg = AggregatorFactory.createCustom(z.getNode().getURI(), e) ;
+            Aggregator agg = AggregatorFactory.createCustom(false, distinct, z.getNode().getURI(), e) ;
             return new ExprAggregator(null, agg) ; 
         }
     } ;