This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit c3707d0ce2c6d8a7e85e8849c7917656a21c97b9
Author: Andy Seaborne <[email protected]>
AuthorDate: Thu Mar 19 21:10:35 2026 +0000

    GH-3809: CONSTRUCTWHERE template to query pattern
---
 jena-arq/Grammar/arq.jj                            |  14 +-
 jena-arq/Grammar/main.jj                           |  35 +-
 jena-arq/Grammar/sparql_12.jj                      |  15 +-
 .../apache/jena/sparql/lang/SPARQLParserBase.java  |  22 +-
 .../apache/jena/sparql/lang/arq/ARQParserBase.java |  22 -
 .../jena/sparql/lang/arq/javacc/ARQParser.java     | 703 ++++++++++-----------
 .../lang/sparql_12/javacc/SPARQLParser12.java      | 408 ++++++------
 7 files changed, 575 insertions(+), 644 deletions(-)

diff --git a/jena-arq/Grammar/arq.jj b/jena-arq/Grammar/arq.jj
index 5f50b402f9..93f6aed7b1 100644
--- a/jena-arq/Grammar/arq.jj
+++ b/jena-arq/Grammar/arq.jj
@@ -192,7 +192,7 @@ void ConstructQuery() : { Template t ;
  (
     // Full form.
     t = ConstructTemplate()
-      { getQuery().setConstructTemplate(t) ; }
+    { getQuery().setConstructTemplate(t) ; }
     ( DatasetClause() )*
     WhereClause()
     SolutionModifier()
@@ -200,18 +200,14 @@ void ConstructQuery() : { Template t ;
     // Abbreviated CONSTRUCT WHERE {}
     ( DatasetClause() )*
     <WHERE>
-    // Should have been "ConstructTemplate()"
-    <LBRACE>
-    ConstructQuads(acc) // Quads
-    <RBRACE>
-    SolutionModifier()
+    t = ConstructTemplate()
     {
-      t = new Template(acc) ;
       getQuery().setConstructTemplate(t) ;
-      // Create a query in the same shape as the query created by writing out 
in full.
-   ElementGroup elg = createQueryPattern(t);
+      // Create a query pattern in the same shape as the template.
+      ElementGroup elg = templateToQueryPattern(t);
       getQuery().setQueryPattern(elg) ;
     }
+    SolutionModifier()
  )
 }
 void DescribeQuery() : { Node n ; }
diff --git a/jena-arq/Grammar/main.jj b/jena-arq/Grammar/main.jj
index 36079c15c3..9f016743ce 100644
--- a/jena-arq/Grammar/main.jj
+++ b/jena-arq/Grammar/main.jj
@@ -274,8 +274,8 @@ void ConstructQuery() : { Template t ;
    { getQuery().setQueryConstructType() ; }
  (
     // Full form.
-    t = ConstructTemplate() 
-      { getQuery().setConstructTemplate(t) ; }
+    t = ConstructTemplate()
+    { getQuery().setConstructTemplate(t) ; }
     ( DatasetClause() )*
     WhereClause()
     SolutionModifier()
@@ -283,18 +283,14 @@ void ConstructQuery() : { Template t ;
     // Abbreviated CONSTRUCT WHERE {}
     ( DatasetClause() )*
     <WHERE>
-    // Should have been "ConstructTemplate()"
-    <LBRACE>  
-    ConstructQuads(acc) // Quads
-    <RBRACE>
-    SolutionModifier()
+    t = ConstructTemplate()
     { 
-      t = new Template(acc) ;
       getQuery().setConstructTemplate(t) ;
-      // Create a query in the same shape as the query created by writing out 
in full.
-         ElementGroup elg = createQueryPattern(t);
+      // Create a query pattern in the same shape as the template.
+      ElementGroup elg = templateToQueryPattern(t);
       getQuery().setQueryPattern(elg) ;
     }
+    SolutionModifier()
  )
 }
 #else
@@ -306,7 +302,7 @@ void ConstructQuery() : { Template t ;
  (
     // Full form.
     t = ConstructTemplate() 
-      { getQuery().setConstructTemplate(t) ; }
+    { getQuery().setConstructTemplate(t) ; }
     ( DatasetClause() )*
     WhereClause()
     SolutionModifier()
@@ -314,20 +310,13 @@ void ConstructQuery() : { Template t ;
     // Abbreviated CONSTRUCT WHERE {}
     ( DatasetClause() )*
     <WHERE>
-    // Should have been "ConstructTemplate()"
-    <LBRACE>  
-    (TriplesTemplate(acc))? // triples
-    <RBRACE>
-    SolutionModifier()
+    t = ConstructTemplate() 
     { 
-      t = new Template(acc.getBGP()) ;
       getQuery().setConstructTemplate(t) ;
-      // Create a query in the same shape as the query created by writing out 
in full.
-      ElementPathBlock epb = new ElementPathBlock(acc.getBGP()) ;
-      ElementGroup elg = new ElementGroup() ;
-      elg.addElement(epb) ;
+      ElementGroup elg = templateToQueryPattern(t);
       getQuery().setQueryPattern(elg) ;
     }
+    SolutionModifier()
  )
 }
 #endif
@@ -828,7 +817,7 @@ void ConstructQuadsNotTriples(QuadAccSink acc) :
      }
 {
     (
-         <GRAPH> /* TriG template :: (<GRAPH>)?*/
+      <GRAPH> /* TriG template :: (<GRAPH>)?*/
       gn = VarOrBlankNodeOrIri()
     )?
 
@@ -2914,7 +2903,7 @@ TOKEN [IGNORE_CASE] :
 
 TOKEN [IGNORE_CASE] :
 {
-  < DATA:            "data" >
+  < DATA:          "data" >
 | < INSERT:       "insert">
 | < DELETE:       "delete" >
 
diff --git a/jena-arq/Grammar/sparql_12.jj b/jena-arq/Grammar/sparql_12.jj
index 5a09da38b6..a8f09f9421 100644
--- a/jena-arq/Grammar/sparql_12.jj
+++ b/jena-arq/Grammar/sparql_12.jj
@@ -174,7 +174,7 @@ void ConstructQuery() : { Template t ;
  (
     // Full form.
     t = ConstructTemplate()
-      { getQuery().setConstructTemplate(t) ; }
+    { getQuery().setConstructTemplate(t) ; }
     ( DatasetClause() )*
     WhereClause()
     SolutionModifier()
@@ -182,20 +182,13 @@ void ConstructQuery() : { Template t ;
     // Abbreviated CONSTRUCT WHERE {}
     ( DatasetClause() )*
     <WHERE>
-    // Should have been "ConstructTemplate()"
-    <LBRACE>
-    (TriplesTemplate(acc))? // triples
-    <RBRACE>
-    SolutionModifier()
+    t = ConstructTemplate()
     {
-      t = new Template(acc.getBGP()) ;
       getQuery().setConstructTemplate(t) ;
-      // Create a query in the same shape as the query created by writing out 
in full.
-      ElementPathBlock epb = new ElementPathBlock(acc.getBGP()) ;
-      ElementGroup elg = new ElementGroup() ;
-      elg.addElement(epb) ;
+      ElementGroup elg = templateToQueryPattern(t);
       getQuery().setQueryPattern(elg) ;
     }
+    SolutionModifier()
  )
 }
 void DescribeQuery() : { Node n ; }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java
index ebab43f92c..9e7e2b788e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java
@@ -24,15 +24,18 @@ package org.apache.jena.sparql.lang;
 import java.util.*;
 
 import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.graph.Triple;
 import org.apache.jena.query.Query;
 import org.apache.jena.query.QueryParseException;
+import org.apache.jena.sparql.ARQConstants;
 import org.apache.jena.sparql.ARQInternalErrorException;
-import org.apache.jena.sparql.core.Prologue;
-import org.apache.jena.sparql.core.Var;
+import org.apache.jena.sparql.core.*;
 import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.engine.binding.BindingBuilder;
 import org.apache.jena.sparql.modify.UpdateSink;
 import org.apache.jena.sparql.modify.request.*;
+import org.apache.jena.sparql.syntax.*;
 import org.apache.jena.update.Update;
 
 /** Class that has all the parse event operations and other query/update 
specific things */
@@ -293,6 +296,21 @@ public class SPARQLParserBase extends QueryParserBase {
         values.add(rowBuilder.build());
     }
 
+    protected ElementGroup templateToQueryPattern(Template template){
+        ElementGroup elg = new ElementGroup();
+        Map<Node, BasicPattern> graphs = template.getGraphPattern();
+        for(Node n: graphs.keySet()){
+            Element el = new ElementPathBlock(graphs.get(n));
+            if(! Quad.defaultGraphNodeGenerated.equals(n) ){
+                ElementGroup e = new ElementGroup();
+                e.addElement(el);
+                el = new ElementNamedGraph(n, e);
+            }
+            elg.addElement(el);
+        }
+        return elg;
+    }
+
     private void pushLabelState() {
         // Hide used labels already tracked.
         stackPreviousLabels.push(previousLabels);
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
index be6425b6d9..ea6aa9a622 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
@@ -20,7 +20,6 @@
  */
 
 package org.apache.jena.sparql.lang.arq;
-import java.util.Map;
 
 import org.apache.jena.atlas.json.io.JSONHandler ;
 import org.apache.jena.atlas.json.io.JSONHandlerBase ;
@@ -33,14 +32,7 @@ import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.riot.system.ParserProfile;
 import org.apache.jena.riot.system.RiotLib;
-import org.apache.jena.sparql.core.BasicPattern;
-import org.apache.jena.sparql.core.Quad;
 import org.apache.jena.sparql.lang.SPARQLParserBase ;
-import org.apache.jena.sparql.syntax.Element;
-import org.apache.jena.sparql.syntax.ElementGroup;
-import org.apache.jena.sparql.syntax.ElementNamedGraph;
-import org.apache.jena.sparql.syntax.ElementPathBlock;
-import org.apache.jena.sparql.syntax.Template;
 
 public class ARQParserBase extends SPARQLParserBase
 {
@@ -85,20 +77,6 @@ public class ARQParserBase extends SPARQLParserBase
     protected void jsonValueNull(long currLine, long currCol)                  
  { handler.valueNull(currLine, currCol) ; }
 
     protected void jsonValueVar(String image, long currLine, long currCol)     
  { throw new NotImplemented("yet") ; }
-    protected ElementGroup createQueryPattern(Template template){
-        ElementGroup elg = new ElementGroup();
-        Map<Node, BasicPattern> graphs = template.getGraphPattern();
-        for(Node n: graphs.keySet()){
-          Element el = new ElementPathBlock(graphs.get(n));
-          if(! Quad.defaultGraphNodeGenerated.equals(n) ){
-               ElementGroup e = new ElementGroup();
-               e.addElement(el);
-            el = new ElementNamedGraph(n, e);
-          }
-          elg.addElement(el);
-        }
-        return elg;
-    }
 
     // CDT literals
     protected ParserProfile parserProfileForCDTs = null;
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/javacc/ARQParser.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/javacc/ARQParser.java
index 317713a25e..da074ebe27 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/javacc/ARQParser.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/javacc/ARQParser.java
@@ -707,15 +707,12 @@ getQuery().setConstructTemplate(t) ;
         DatasetClause();
       }
       jj_consume_token(WHERE);
-      jj_consume_token(LBRACE);
-      ConstructQuads(acc);
-      jj_consume_token(RBRACE);
-      SolutionModifier();
-t = new Template(acc) ;
-      getQuery().setConstructTemplate(t) ;
-      // Create a query in the same shape as the query created by writing out 
in full.
-   ElementGroup elg = createQueryPattern(t);
+      t = ConstructTemplate();
+getQuery().setConstructTemplate(t) ;
+      // Create a query pattern in the same shape as the template.
+      ElementGroup elg = templateToQueryPattern(t);
       getQuery().setQueryPattern(elg) ;
+      SolutionModifier();
       break;
       }
     default:
@@ -7733,354 +7730,368 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     finally { jj_save(4, xla); }
   }
 
-  private boolean jj_3R_BuiltInCall_1909_5_114()
+  private boolean jj_3R_BuiltInCall_1908_5_116()
+ {
+    if (jj_scan_token(TRIPLE)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_BuiltInCall_1906_5_115()
+ {
+    if (jj_scan_token(IS_TRIPLE)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_BuiltInCall_1905_5_114()
  {
-    if (jj_3R_NotExistsFunc_1967_4_132()) return true;
+    if (jj_3R_NotExistsFunc_1963_4_132()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1908_5_113()
+  private boolean jj_3R_BuiltInCall_1904_5_113()
  {
-    if (jj_3R_ExistsFunc_1961_4_131()) return true;
+    if (jj_3R_ExistsFunc_1957_4_131()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1907_5_112()
+  private boolean jj_3R_BuiltInCall_1903_5_112()
  {
-    if (jj_3R_RegexExpression_1926_5_130()) return true;
+    if (jj_3R_RegexExpression_1922_5_130()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1904_5_111()
+  private boolean jj_3R_BuiltInCall_1900_5_111()
  {
     if (jj_scan_token(HAS_LANGDIR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1902_5_110()
+  private boolean jj_3R_BuiltInCall_1898_5_110()
  {
     if (jj_scan_token(HAS_LANG)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1900_5_109()
+  private boolean jj_3R_BuiltInCall_1896_5_109()
  {
     if (jj_scan_token(IS_NUMERIC)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1898_5_108()
+  private boolean jj_3R_BuiltInCall_1894_5_108()
  {
     if (jj_scan_token(IS_LITERAL)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1896_5_107()
+  private boolean jj_3R_BuiltInCall_1892_5_107()
  {
     if (jj_scan_token(IS_BLANK)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1894_5_106()
+  private boolean jj_3R_BuiltInCall_1890_5_106()
  {
     if (jj_scan_token(IS_URI)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_TripleTerm_1509_5_180()
+  private boolean jj_3R_TripleTerm_1505_5_180()
  {
     if (jj_scan_token(L_TRIPLE)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1892_5_105()
+  private boolean jj_3R_BuiltInCall_1888_5_105()
  {
     if (jj_scan_token(IS_IRI)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1890_5_104()
+  private boolean jj_3R_BuiltInCall_1886_5_104()
  {
     if (jj_scan_token(SAME_VALUE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1888_5_103()
+  private boolean jj_3R_BuiltInCall_1884_5_103()
  {
     if (jj_scan_token(SAME_TERM)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1886_5_102()
+  private boolean jj_3R_BuiltInCall_1882_5_102()
  {
     if (jj_scan_token(STRDT)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1882_5_101()
+  private boolean jj_3R_BuiltInCall_1878_5_101()
  {
     if (jj_scan_token(STRLANGDIR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1880_5_100()
+  private boolean jj_3R_BuiltInCall_1876_5_100()
  {
     if (jj_scan_token(STRLANG)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1876_5_99()
+  private boolean jj_3R_BuiltInCall_1872_5_99()
  {
     if (jj_scan_token(IF)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1868_5_98()
+  private boolean jj_3R_BuiltInCall_1864_5_98()
  {
     if (jj_scan_token(CALL)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_ReifiedTripleBlock_716_3_138()
+  private boolean jj_3R_ReifiedTripleBlock_712_3_138()
  {
-    if (jj_3R_ReifiedTriple_1468_3_171()) return true;
+    if (jj_3R_ReifiedTriple_1464_3_171()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1863_5_97()
+  private boolean jj_3R_BuiltInCall_1859_5_97()
  {
     if (jj_scan_token(COALESCE)) return true;
-    if (jj_3R_ExpressionList_1023_3_127()) return true;
+    if (jj_3R_ExpressionList_1019_3_127()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1862_5_96()
+  private boolean jj_3R_BuiltInCall_1858_5_96()
  {
     if (jj_scan_token(EBV)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1860_5_95()
+  private boolean jj_3R_BuiltInCall_1856_5_95()
  {
     if (jj_scan_token(VERSION)) return true;
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1858_5_94()
+  private boolean jj_3R_BuiltInCall_1854_5_94()
  {
     if (jj_scan_token(SHA512)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1857_5_93()
+  private boolean jj_3R_BuiltInCall_1853_5_93()
  {
     if (jj_scan_token(SHA384)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1856_5_92()
+  private boolean jj_3R_BuiltInCall_1852_5_92()
  {
     if (jj_scan_token(SHA256)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1855_5_91()
+  private boolean jj_3R_BuiltInCall_1851_5_91()
  {
     if (jj_scan_token(SHA1)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1854_5_90()
+  private boolean jj_3R_BuiltInCall_1850_5_90()
  {
     if (jj_scan_token(MD5)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1853_5_89()
+  private boolean jj_3R_BuiltInCall_1849_5_89()
  {
     if (jj_scan_token(STRUUID)) return true;
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1852_5_88()
+  private boolean jj_3R_BuiltInCall_1848_5_88()
  {
     if (jj_scan_token(UUID)) return true;
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1851_5_87()
+  private boolean jj_3R_BuiltInCall_1847_5_87()
  {
     if (jj_scan_token(NOW)) return true;
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_ReifiedTriple_1468_3_171()
+  private boolean jj_3R_ReifiedTriple_1464_3_171()
  {
     if (jj_scan_token(LT2)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1847_5_86()
+  private boolean jj_3R_BuiltInCall_1843_5_86()
  {
     if (jj_scan_token(ADJUST)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1846_5_85()
+  private boolean jj_3R_BuiltInCall_1842_5_85()
  {
     if (jj_scan_token(TZ)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1462_5_168()
+  private boolean jj_3R_VarOrTerm_1458_5_168()
  {
-    if (jj_3R_TripleTerm_1509_5_180()) return true;
+    if (jj_3R_TripleTerm_1505_5_180()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1845_5_84()
+  private boolean jj_3R_BuiltInCall_1841_5_84()
  {
     if (jj_scan_token(TIMEZONE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1461_5_167()
+  private boolean jj_3R_VarOrTerm_1457_5_167()
  {
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1844_5_83()
+  private boolean jj_3R_BuiltInCall_1840_5_83()
  {
     if (jj_scan_token(SECONDS)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1843_5_82()
+  private boolean jj_3R_BuiltInCall_1839_5_82()
  {
     if (jj_scan_token(MINUTES)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1459_5_166()
+  private boolean jj_3R_VarOrTerm_1455_5_166()
  {
-    if (jj_3R_BlankNode_2161_3_179()) return true;
+    if (jj_3R_BlankNode_2157_3_179()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1842_5_81()
+  private boolean jj_3R_BuiltInCall_1838_5_81()
  {
     if (jj_scan_token(HOURS)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1458_5_165()
+  private boolean jj_3R_VarOrTerm_1454_5_165()
  {
-    if (jj_3R_BooleanLiteral_2128_3_178()) return true;
+    if (jj_3R_BooleanLiteral_2124_3_178()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1841_5_80()
+  private boolean jj_3R_BuiltInCall_1837_5_80()
  {
     if (jj_scan_token(DAY)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1457_5_164()
+  private boolean jj_3R_VarOrTerm_1453_5_164()
  {
-    if (jj_3R_NumericLiteral_2101_3_177()) return true;
+    if (jj_3R_NumericLiteral_2097_3_177()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1840_5_79()
+  private boolean jj_3R_BuiltInCall_1836_5_79()
  {
     if (jj_scan_token(MONTH)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1456_5_163()
+  private boolean jj_3R_VarOrTerm_1452_5_163()
  {
-    if (jj_3R_RDFLiteral_2088_3_176()) return true;
+    if (jj_3R_RDFLiteral_2084_3_176()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1839_5_78()
+  private boolean jj_3R_BuiltInCall_1835_5_78()
  {
     if (jj_scan_token(YEAR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1455_5_162()
+  private boolean jj_3R_VarOrTerm_1451_5_162()
  {
-    if (jj_3R_iri_2146_3_172()) return true;
+    if (jj_3R_iri_2142_3_172()) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1454_5_161()
+  private boolean jj_3R_VarOrTerm_1450_5_161()
  {
-    if (jj_3R_Var_1601_5_175()) return true;
+    if (jj_3R_Var_1597_5_175()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1837_5_77()
+  private boolean jj_3R_BuiltInCall_1833_5_77()
  {
     if (jj_scan_token(STRAFTER)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_VarOrTerm_1454_3_136()
+  private boolean jj_3R_VarOrTerm_1450_3_136()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_VarOrTerm_1454_5_161()) {
+    if (jj_3R_VarOrTerm_1450_5_161()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1455_5_162()) {
+    if (jj_3R_VarOrTerm_1451_5_162()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1456_5_163()) {
+    if (jj_3R_VarOrTerm_1452_5_163()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1457_5_164()) {
+    if (jj_3R_VarOrTerm_1453_5_164()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1458_5_165()) {
+    if (jj_3R_VarOrTerm_1454_5_165()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1459_5_166()) {
+    if (jj_3R_VarOrTerm_1455_5_166()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1461_5_167()) {
+    if (jj_3R_VarOrTerm_1457_5_167()) {
     jj_scanpos = xsp;
-    if (jj_3R_VarOrTerm_1462_5_168()) return true;
+    if (jj_3R_VarOrTerm_1458_5_168()) return true;
     }
     }
     }
@@ -8091,149 +8102,149 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1835_5_76()
+  private boolean jj_3R_BuiltInCall_1831_5_76()
  {
     if (jj_scan_token(STRBEFORE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1833_5_75()
+  private boolean jj_3R_BuiltInCall_1829_5_75()
  {
     if (jj_scan_token(STRENDS)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1831_5_74()
+  private boolean jj_3R_BuiltInCall_1827_5_74()
  {
     if (jj_scan_token(STRSTARTS)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1829_5_73()
+  private boolean jj_3R_BuiltInCall_1825_5_73()
  {
     if (jj_scan_token(CONTAINS)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_TriplesSameSubject_1064_3_123()
+  private boolean jj_3R_TriplesSameSubject_1060_3_123()
  {
-    if (jj_3R_ReifiedTripleBlock_716_3_138()) return true;
+    if (jj_3R_ReifiedTripleBlock_712_3_138()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1828_5_72()
+  private boolean jj_3R_BuiltInCall_1824_5_72()
  {
     if (jj_scan_token(ENCODE_FOR_URI)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1827_5_71()
+  private boolean jj_3R_BuiltInCall_1823_5_71()
  {
     if (jj_scan_token(LCASE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1826_5_70()
+  private boolean jj_3R_BuiltInCall_1822_5_70()
  {
     if (jj_scan_token(UCASE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1825_5_69()
+  private boolean jj_3R_BuiltInCall_1821_5_69()
  {
-    if (jj_3R_StrReplaceExpression_1950_3_129()) return true;
+    if (jj_3R_StrReplaceExpression_1946_3_129()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1824_5_68()
+  private boolean jj_3R_BuiltInCall_1820_5_68()
  {
     if (jj_scan_token(STRLEN)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_TriplesSameSubject_1059_3_122()
+  private boolean jj_3R_TriplesSameSubject_1055_3_122()
  {
-    if (jj_3R_TriplesNode_1304_4_137()) return true;
+    if (jj_3R_TriplesNode_1300_4_137()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1823_5_67()
+  private boolean jj_3R_BuiltInCall_1819_5_67()
  {
-    if (jj_3R_SubstringExpression_1938_5_128()) return true;
+    if (jj_3R_SubstringExpression_1934_5_128()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1822_5_66()
+  private boolean jj_3R_BuiltInCall_1818_5_66()
  {
     if (jj_scan_token(CONCAT)) return true;
-    if (jj_3R_ExpressionList_1023_3_127()) return true;
+    if (jj_3R_ExpressionList_1019_3_127()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1821_5_65()
+  private boolean jj_3R_BuiltInCall_1817_5_65()
  {
     if (jj_scan_token(IDIV)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1820_5_64()
+  private boolean jj_3R_BuiltInCall_1816_5_64()
  {
     if (jj_scan_token(MOD)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_TriplesSameSubject_1055_3_48()
+  private boolean jj_3R_TriplesSameSubject_1051_3_48()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_TriplesSameSubject_1055_3_121()) {
+    if (jj_3R_TriplesSameSubject_1051_3_121()) {
     jj_scanpos = xsp;
-    if (jj_3R_TriplesSameSubject_1059_3_122()) {
+    if (jj_3R_TriplesSameSubject_1055_3_122()) {
     jj_scanpos = xsp;
-    if (jj_3R_TriplesSameSubject_1064_3_123()) return true;
+    if (jj_3R_TriplesSameSubject_1060_3_123()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_TriplesSameSubject_1055_3_121()
+  private boolean jj_3R_TriplesSameSubject_1051_3_121()
  {
-    if (jj_3R_VarOrTerm_1454_3_136()) return true;
+    if (jj_3R_VarOrTerm_1450_3_136()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1819_5_63()
+  private boolean jj_3R_BuiltInCall_1815_5_63()
  {
     if (jj_scan_token(ROUND)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1818_5_62()
+  private boolean jj_3R_BuiltInCall_1814_5_62()
  {
     if (jj_scan_token(FLOOR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1817_5_61()
+  private boolean jj_3R_BuiltInCall_1813_5_61()
  {
     if (jj_scan_token(CEIL)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1816_5_60()
+  private boolean jj_3R_BuiltInCall_1812_5_60()
  {
     if (jj_scan_token(ABS)) return true;
     if (jj_scan_token(LPAREN)) return true;
@@ -8243,43 +8254,43 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
   private boolean jj_3_4()
  {
     if (jj_scan_token(DOT)) return true;
-    if (jj_3R_TriplesSameSubject_1055_3_48()) return true;
+    if (jj_3R_TriplesSameSubject_1051_3_48()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1815_5_59()
+  private boolean jj_3R_BuiltInCall_1811_5_59()
  {
     if (jj_scan_token(RAND)) return true;
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1813_7_126()
+  private boolean jj_3R_BuiltInCall_1809_7_126()
  {
     if (jj_scan_token(NIL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1810_7_125()
+  private boolean jj_3R_BuiltInCall_1806_7_125()
  {
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_GroupGraphPattern_664_3_157()
+  private boolean jj_3R_GroupGraphPattern_660_3_157()
  {
     if (jj_scan_token(LBRACE)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1809_5_58()
+  private boolean jj_3R_BuiltInCall_1805_5_58()
  {
     if (jj_scan_token(BNODE)) return true;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_BuiltInCall_1810_7_125()) {
+    if (jj_3R_BuiltInCall_1806_7_125()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1813_7_126()) return true;
+    if (jj_3R_BuiltInCall_1809_7_126()) return true;
     }
     return false;
   }
@@ -8287,234 +8298,234 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
   private boolean jj_3_3()
  {
     if (jj_scan_token(DOT)) return true;
-    if (jj_3R_TriplesSameSubject_1055_3_48()) return true;
+    if (jj_3R_TriplesSameSubject_1051_3_48()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1807_5_57()
+  private boolean jj_3R_BuiltInCall_1803_5_57()
  {
     if (jj_scan_token(URI)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1805_5_56()
+  private boolean jj_3R_BuiltInCall_1801_5_56()
  {
     if (jj_scan_token(IRI)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1800_5_55()
+  private boolean jj_3R_BuiltInCall_1796_5_55()
  {
     if (jj_scan_token(BOUND)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1798_5_54()
+  private boolean jj_3R_BuiltInCall_1794_5_54()
  {
     if (jj_scan_token(DTYPE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1796_5_53()
+  private boolean jj_3R_BuiltInCall_1792_5_53()
  {
     if (jj_scan_token(LANGDIR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1793_5_52()
+  private boolean jj_3R_BuiltInCall_1789_5_52()
  {
     if (jj_scan_token(LANGMATCHES)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_ExpressionList_1026_5_156()
+  private boolean jj_3R_ExpressionList_1022_5_156()
  {
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1791_5_51()
+  private boolean jj_3R_BuiltInCall_1787_5_51()
  {
     if (jj_scan_token(LANG)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1789_5_50()
+  private boolean jj_3R_BuiltInCall_1785_5_50()
  {
     if (jj_scan_token(STR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_ExpressionList_1023_3_127()
+  private boolean jj_3R_ExpressionList_1019_3_127()
  {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(195)) {
     jj_scanpos = xsp;
-    if (jj_3R_ExpressionList_1026_5_156()) return true;
+    if (jj_3R_ExpressionList_1022_5_156()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1787_5_49()
+  private boolean jj_3R_BuiltInCall_1783_5_49()
  {
-    if (jj_3R_Aggregate_1979_3_124()) return true;
+    if (jj_3R_Aggregate_1975_3_124()) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1787_5_46()
+  private boolean jj_3R_BuiltInCall_1783_5_46()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_BuiltInCall_1787_5_49()) {
+    if (jj_3R_BuiltInCall_1783_5_49()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1789_5_50()) {
+    if (jj_3R_BuiltInCall_1785_5_50()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1791_5_51()) {
+    if (jj_3R_BuiltInCall_1787_5_51()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1793_5_52()) {
+    if (jj_3R_BuiltInCall_1789_5_52()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1796_5_53()) {
+    if (jj_3R_BuiltInCall_1792_5_53()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1798_5_54()) {
+    if (jj_3R_BuiltInCall_1794_5_54()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1800_5_55()) {
+    if (jj_3R_BuiltInCall_1796_5_55()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1805_5_56()) {
+    if (jj_3R_BuiltInCall_1801_5_56()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1807_5_57()) {
+    if (jj_3R_BuiltInCall_1803_5_57()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1809_5_58()) {
+    if (jj_3R_BuiltInCall_1805_5_58()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1815_5_59()) {
+    if (jj_3R_BuiltInCall_1811_5_59()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1816_5_60()) {
+    if (jj_3R_BuiltInCall_1812_5_60()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1817_5_61()) {
+    if (jj_3R_BuiltInCall_1813_5_61()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1818_5_62()) {
+    if (jj_3R_BuiltInCall_1814_5_62()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1819_5_63()) {
+    if (jj_3R_BuiltInCall_1815_5_63()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1820_5_64()) {
+    if (jj_3R_BuiltInCall_1816_5_64()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1821_5_65()) {
+    if (jj_3R_BuiltInCall_1817_5_65()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1822_5_66()) {
+    if (jj_3R_BuiltInCall_1818_5_66()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1823_5_67()) {
+    if (jj_3R_BuiltInCall_1819_5_67()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1824_5_68()) {
+    if (jj_3R_BuiltInCall_1820_5_68()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1825_5_69()) {
+    if (jj_3R_BuiltInCall_1821_5_69()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1826_5_70()) {
+    if (jj_3R_BuiltInCall_1822_5_70()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1827_5_71()) {
+    if (jj_3R_BuiltInCall_1823_5_71()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1828_5_72()) {
+    if (jj_3R_BuiltInCall_1824_5_72()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1829_5_73()) {
+    if (jj_3R_BuiltInCall_1825_5_73()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1831_5_74()) {
+    if (jj_3R_BuiltInCall_1827_5_74()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1833_5_75()) {
+    if (jj_3R_BuiltInCall_1829_5_75()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1835_5_76()) {
+    if (jj_3R_BuiltInCall_1831_5_76()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1837_5_77()) {
+    if (jj_3R_BuiltInCall_1833_5_77()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1839_5_78()) {
+    if (jj_3R_BuiltInCall_1835_5_78()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1840_5_79()) {
+    if (jj_3R_BuiltInCall_1836_5_79()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1841_5_80()) {
+    if (jj_3R_BuiltInCall_1837_5_80()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1842_5_81()) {
+    if (jj_3R_BuiltInCall_1838_5_81()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1843_5_82()) {
+    if (jj_3R_BuiltInCall_1839_5_82()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1844_5_83()) {
+    if (jj_3R_BuiltInCall_1840_5_83()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1845_5_84()) {
+    if (jj_3R_BuiltInCall_1841_5_84()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1846_5_85()) {
+    if (jj_3R_BuiltInCall_1842_5_85()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1847_5_86()) {
+    if (jj_3R_BuiltInCall_1843_5_86()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1851_5_87()) {
+    if (jj_3R_BuiltInCall_1847_5_87()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1852_5_88()) {
+    if (jj_3R_BuiltInCall_1848_5_88()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1853_5_89()) {
+    if (jj_3R_BuiltInCall_1849_5_89()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1854_5_90()) {
+    if (jj_3R_BuiltInCall_1850_5_90()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1855_5_91()) {
+    if (jj_3R_BuiltInCall_1851_5_91()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1856_5_92()) {
+    if (jj_3R_BuiltInCall_1852_5_92()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1857_5_93()) {
+    if (jj_3R_BuiltInCall_1853_5_93()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1858_5_94()) {
+    if (jj_3R_BuiltInCall_1854_5_94()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1860_5_95()) {
+    if (jj_3R_BuiltInCall_1856_5_95()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1862_5_96()) {
+    if (jj_3R_BuiltInCall_1858_5_96()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1863_5_97()) {
+    if (jj_3R_BuiltInCall_1859_5_97()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1868_5_98()) {
+    if (jj_3R_BuiltInCall_1864_5_98()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1876_5_99()) {
+    if (jj_3R_BuiltInCall_1872_5_99()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1880_5_100()) {
+    if (jj_3R_BuiltInCall_1876_5_100()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1882_5_101()) {
+    if (jj_3R_BuiltInCall_1878_5_101()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1886_5_102()) {
+    if (jj_3R_BuiltInCall_1882_5_102()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1888_5_103()) {
+    if (jj_3R_BuiltInCall_1884_5_103()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1890_5_104()) {
+    if (jj_3R_BuiltInCall_1886_5_104()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1892_5_105()) {
+    if (jj_3R_BuiltInCall_1888_5_105()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1894_5_106()) {
+    if (jj_3R_BuiltInCall_1890_5_106()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1896_5_107()) {
+    if (jj_3R_BuiltInCall_1892_5_107()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1898_5_108()) {
+    if (jj_3R_BuiltInCall_1894_5_108()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1900_5_109()) {
+    if (jj_3R_BuiltInCall_1896_5_109()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1902_5_110()) {
+    if (jj_3R_BuiltInCall_1898_5_110()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1904_5_111()) {
+    if (jj_3R_BuiltInCall_1900_5_111()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1907_5_112()) {
+    if (jj_3R_BuiltInCall_1903_5_112()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1908_5_113()) {
+    if (jj_3R_BuiltInCall_1904_5_113()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1909_5_114()) {
+    if (jj_3R_BuiltInCall_1905_5_114()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1910_5_115()) {
+    if (jj_3R_BuiltInCall_1906_5_115()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1912_5_116()) {
+    if (jj_3R_BuiltInCall_1908_5_116()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1916_5_117()) {
+    if (jj_3R_BuiltInCall_1912_5_117()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1918_5_118()) {
+    if (jj_3R_BuiltInCall_1914_5_118()) {
     jj_scanpos = xsp;
-    if (jj_3R_BuiltInCall_1920_5_119()) return true;
+    if (jj_3R_BuiltInCall_1916_5_119()) return true;
     }
     }
     }
@@ -8588,317 +8599,317 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_IRIREF_2169_3_173()
+  private boolean jj_3R_IRIREF_2165_3_173()
  {
     if (jj_scan_token(IRIref)) return true;
     return false;
   }
 
-  private boolean jj_3R_BlankNode_2165_3_194()
+  private boolean jj_3R_BlankNode_2161_3_194()
  {
     if (jj_scan_token(ANON)) return true;
     return false;
   }
 
-  private boolean jj_3R_BlankNode_2161_3_193()
+  private boolean jj_3R_BlankNode_2157_3_193()
  {
     if (jj_scan_token(BLANK_NODE_LABEL)) return true;
     return false;
   }
 
-  private boolean jj_3R_BlankNode_2161_3_179()
+  private boolean jj_3R_BlankNode_2157_3_179()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_BlankNode_2161_3_193()) {
+    if (jj_3R_BlankNode_2157_3_193()) {
     jj_scanpos = xsp;
-    if (jj_3R_BlankNode_2165_3_194()) return true;
+    if (jj_3R_BlankNode_2161_3_194()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_PrefixedName_2155_5_204()
+  private boolean jj_3R_PrefixedName_2151_5_204()
  {
     if (jj_scan_token(PNAME_NS)) return true;
     return false;
   }
 
-  private boolean jj_3R_PrefixedName_2152_5_203()
+  private boolean jj_3R_PrefixedName_2148_5_203()
  {
     if (jj_scan_token(PNAME_LN)) return true;
     return false;
   }
 
-  private boolean jj_3R_PrefixedName_2152_3_195()
+  private boolean jj_3R_PrefixedName_2148_3_195()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_PrefixedName_2152_5_203()) {
+    if (jj_3R_PrefixedName_2148_5_203()) {
     jj_scanpos = xsp;
-    if (jj_3R_PrefixedName_2155_5_204()) return true;
+    if (jj_3R_PrefixedName_2151_5_204()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_iri_2148_3_184()
+  private boolean jj_3R_iri_2144_3_184()
  {
-    if (jj_3R_PrefixedName_2152_3_195()) return true;
+    if (jj_3R_PrefixedName_2148_3_195()) return true;
     return false;
   }
 
-  private boolean jj_3R_iri_2146_3_172()
+  private boolean jj_3R_iri_2142_3_172()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_iri_2146_3_183()) {
+    if (jj_3R_iri_2142_3_183()) {
     jj_scanpos = xsp;
-    if (jj_3R_iri_2148_3_184()) return true;
+    if (jj_3R_iri_2144_3_184()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_iri_2146_3_183()
+  private boolean jj_3R_iri_2142_3_183()
  {
-    if (jj_3R_IRIREF_2169_3_173()) return true;
+    if (jj_3R_IRIREF_2165_3_173()) return true;
     return false;
   }
 
-  private boolean jj_3R_String_2137_5_199()
+  private boolean jj_3R_String_2133_5_199()
  {
     if (jj_scan_token(STRING_LITERAL_LONG2)) return true;
     return false;
   }
 
-  private boolean jj_3R_String_2136_5_198()
+  private boolean jj_3R_String_2132_5_198()
  {
     if (jj_scan_token(STRING_LITERAL_LONG1)) return true;
     return false;
   }
 
-  private boolean jj_3R_String_2135_5_197()
+  private boolean jj_3R_String_2131_5_197()
  {
     if (jj_scan_token(STRING_LITERAL2)) return true;
     return false;
   }
 
-  private boolean jj_3R_String_2134_5_196()
+  private boolean jj_3R_String_2130_5_196()
  {
     if (jj_scan_token(STRING_LITERAL1)) return true;
     return false;
   }
 
-  private boolean jj_3R_String_2134_3_187()
+  private boolean jj_3R_String_2130_3_187()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_String_2134_5_196()) {
+    if (jj_3R_String_2130_5_196()) {
     jj_scanpos = xsp;
-    if (jj_3R_String_2135_5_197()) {
+    if (jj_3R_String_2131_5_197()) {
     jj_scanpos = xsp;
-    if (jj_3R_String_2136_5_198()) {
+    if (jj_3R_String_2132_5_198()) {
     jj_scanpos = xsp;
-    if (jj_3R_String_2137_5_199()) return true;
+    if (jj_3R_String_2133_5_199()) return true;
     }
     }
     }
     return false;
   }
 
-  private boolean jj_3R_BooleanLiteral_2130_3_192()
+  private boolean jj_3R_BooleanLiteral_2126_3_192()
  {
     if (jj_scan_token(FALSE)) return true;
     return false;
   }
 
-  private boolean jj_3R_BooleanLiteral_2128_3_191()
+  private boolean jj_3R_BooleanLiteral_2124_3_191()
  {
     if (jj_scan_token(TRUE)) return true;
     return false;
   }
 
-  private boolean jj_3R_BooleanLiteral_2128_3_178()
+  private boolean jj_3R_BooleanLiteral_2124_3_178()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_BooleanLiteral_2128_3_191()) {
+    if (jj_3R_BooleanLiteral_2124_3_191()) {
     jj_scanpos = xsp;
-    if (jj_3R_BooleanLiteral_2130_3_192()) return true;
+    if (jj_3R_BooleanLiteral_2126_3_192()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralNegative_2124_3_213()
+  private boolean jj_3R_NumericLiteralNegative_2120_3_213()
  {
     if (jj_scan_token(DOUBLE_NEGATIVE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralNegative_2123_3_212()
+  private boolean jj_3R_NumericLiteralNegative_2119_3_212()
  {
     if (jj_scan_token(DECIMAL_NEGATIVE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralNegative_2122_3_211()
+  private boolean jj_3R_NumericLiteralNegative_2118_3_211()
  {
     if (jj_scan_token(INTEGER_NEGATIVE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralNegative_2122_3_202()
+  private boolean jj_3R_NumericLiteralNegative_2118_3_202()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_NumericLiteralNegative_2122_3_211()) {
+    if (jj_3R_NumericLiteralNegative_2118_3_211()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteralNegative_2123_3_212()) {
+    if (jj_3R_NumericLiteralNegative_2119_3_212()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteralNegative_2124_3_213()) return true;
+    if (jj_3R_NumericLiteralNegative_2120_3_213()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralPositive_2118_3_210()
+  private boolean jj_3R_NumericLiteralPositive_2114_3_210()
  {
     if (jj_scan_token(DOUBLE_POSITIVE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralPositive_2117_3_209()
+  private boolean jj_3R_NumericLiteralPositive_2113_3_209()
  {
     if (jj_scan_token(DECIMAL_POSITIVE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralPositive_2116_3_208()
+  private boolean jj_3R_NumericLiteralPositive_2112_3_208()
  {
     if (jj_scan_token(INTEGER_POSITIVE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralPositive_2116_3_201()
+  private boolean jj_3R_NumericLiteralPositive_2112_3_201()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_NumericLiteralPositive_2116_3_208()) {
+    if (jj_3R_NumericLiteralPositive_2112_3_208()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteralPositive_2117_3_209()) {
+    if (jj_3R_NumericLiteralPositive_2113_3_209()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteralPositive_2118_3_210()) return true;
+    if (jj_3R_NumericLiteralPositive_2114_3_210()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralUnsigned_2112_3_207()
+  private boolean jj_3R_NumericLiteralUnsigned_2108_3_207()
  {
     if (jj_scan_token(DOUBLE)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralUnsigned_2111_3_206()
+  private boolean jj_3R_NumericLiteralUnsigned_2107_3_206()
  {
     if (jj_scan_token(DECIMAL)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralUnsigned_2110_3_205()
+  private boolean jj_3R_NumericLiteralUnsigned_2106_3_205()
  {
     if (jj_scan_token(INTEGER)) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteralUnsigned_2110_3_200()
+  private boolean jj_3R_NumericLiteralUnsigned_2106_3_200()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_NumericLiteralUnsigned_2110_3_205()) {
+    if (jj_3R_NumericLiteralUnsigned_2106_3_205()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteralUnsigned_2111_3_206()) {
+    if (jj_3R_NumericLiteralUnsigned_2107_3_206()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteralUnsigned_2112_3_207()) return true;
+    if (jj_3R_NumericLiteralUnsigned_2108_3_207()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_NumericLiteral_2104_5_190()
+  private boolean jj_3R_NumericLiteral_2100_5_190()
  {
-    if (jj_3R_NumericLiteralNegative_2122_3_202()) return true;
+    if (jj_3R_NumericLiteralNegative_2118_3_202()) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteral_2103_5_189()
+  private boolean jj_3R_NumericLiteral_2099_5_189()
  {
-    if (jj_3R_NumericLiteralPositive_2116_3_201()) return true;
+    if (jj_3R_NumericLiteralPositive_2112_3_201()) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteral_2102_5_188()
+  private boolean jj_3R_NumericLiteral_2098_5_188()
  {
-    if (jj_3R_NumericLiteralUnsigned_2110_3_200()) return true;
+    if (jj_3R_NumericLiteralUnsigned_2106_3_200()) return true;
     return false;
   }
 
-  private boolean jj_3R_NumericLiteral_2101_3_177()
+  private boolean jj_3R_NumericLiteral_2097_3_177()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_NumericLiteral_2102_5_188()) {
+    if (jj_3R_NumericLiteral_2098_5_188()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteral_2103_5_189()) {
+    if (jj_3R_NumericLiteral_2099_5_189()) {
     jj_scanpos = xsp;
-    if (jj_3R_NumericLiteral_2104_5_190()) return true;
+    if (jj_3R_NumericLiteral_2100_5_190()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_Collection_1334_3_181()
+  private boolean jj_3R_Collection_1330_3_181()
  {
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_RDFLiteral_2088_3_176()
+  private boolean jj_3R_RDFLiteral_2084_3_176()
  {
-    if (jj_3R_String_2134_3_187()) return true;
+    if (jj_3R_String_2130_3_187()) return true;
     return false;
   }
 
   private boolean jj_3_1()
  {
-    if (jj_3R_BuiltInCall_1787_5_46()) return true;
+    if (jj_3R_BuiltInCall_1783_5_46()) return true;
     return false;
   }
 
-  private boolean jj_3R_BlankNodePropertyList_1310_3_182()
+  private boolean jj_3R_BlankNodePropertyList_1306_3_182()
  {
     if (jj_scan_token(LBRACKET)) return true;
     return false;
   }
 
-  private boolean jj_3R_TriplesNode_1306_4_170()
+  private boolean jj_3R_TriplesNode_1302_4_170()
  {
-    if (jj_3R_BlankNodePropertyList_1310_3_182()) return true;
+    if (jj_3R_BlankNodePropertyList_1306_3_182()) return true;
     return false;
   }
 
-  private boolean jj_3R_TriplesNode_1304_4_137()
+  private boolean jj_3R_TriplesNode_1300_4_137()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_TriplesNode_1304_4_169()) {
+    if (jj_3R_TriplesNode_1300_4_169()) {
     jj_scanpos = xsp;
-    if (jj_3R_TriplesNode_1306_4_170()) return true;
+    if (jj_3R_TriplesNode_1302_4_170()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_TriplesNode_1304_4_169()
+  private boolean jj_3R_TriplesNode_1300_4_169()
  {
-    if (jj_3R_Collection_1334_3_181()) return true;
+    if (jj_3R_Collection_1330_3_181()) return true;
     return false;
   }
 
@@ -8908,10 +8919,10 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2048_5_155()
+  private boolean jj_3R_Aggregate_2044_5_155()
  {
     if (jj_scan_token(AGG)) return true;
-    if (jj_3R_iri_2146_3_172()) return true;
+    if (jj_3R_iri_2142_3_172()) return true;
     return false;
   }
 
@@ -8955,41 +8966,27 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
  {
     if (jj_scan_token(PREFIX)) return true;
     if (jj_scan_token(PNAME_NS)) return true;
-    if (jj_3R_IRIREF_2169_3_173()) return true;
+    if (jj_3R_IRIREF_2165_3_173()) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2027_5_154()
+  private boolean jj_3R_Aggregate_2023_5_154()
  {
     if (jj_scan_token(FOLD)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2025_5_153()
- {
-    if (jj_scan_token(VAR_POP)) return true;
-    if (jj_scan_token(LPAREN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_Aggregate_2023_5_152()
- {
-    if (jj_scan_token(VAR_SAMP)) return true;
-    if (jj_scan_token(LPAREN)) return true;
-    return false;
-  }
-
   private boolean jj_3R_BaseDecl_109_3_158()
  {
     if (jj_scan_token(BASE)) return true;
-    if (jj_3R_IRIREF_2169_3_173()) return true;
+    if (jj_3R_IRIREF_2165_3_173()) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2021_5_151()
+  private boolean jj_3R_Aggregate_2021_5_153()
  {
-    if (jj_scan_token(VARIANCE)) return true;
+    if (jj_scan_token(VAR_POP)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
@@ -9014,9 +9011,9 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2019_5_150()
+  private boolean jj_3R_Aggregate_2019_5_152()
  {
-    if (jj_scan_token(STDEV_POP)) return true;
+    if (jj_scan_token(VAR_SAMP)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
@@ -9031,14 +9028,28 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2017_5_149()
+  private boolean jj_3R_Aggregate_2017_5_151()
+ {
+    if (jj_scan_token(VARIANCE)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_Aggregate_2015_5_150()
+ {
+    if (jj_scan_token(STDEV_POP)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_Aggregate_2013_5_149()
  {
     if (jj_scan_token(STDEV_SAMP)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2015_5_148()
+  private boolean jj_3R_Aggregate_2011_5_148()
  {
     if (jj_scan_token(STDEV)) return true;
     if (jj_scan_token(LPAREN)) return true;
@@ -9052,63 +9063,63 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_2001_5_147()
+  private boolean jj_3R_Aggregate_1997_5_147()
  {
     if (jj_scan_token(GROUP_CONCAT)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1999_5_146()
+  private boolean jj_3R_Aggregate_1995_5_146()
  {
     if (jj_scan_token(SAMPLE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1997_5_145()
+  private boolean jj_3R_Aggregate_1993_5_145()
  {
     if (jj_scan_token(MODE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1995_5_144()
+  private boolean jj_3R_Aggregate_1991_5_144()
  {
     if (jj_scan_token(MEDIAN)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1993_5_143()
+  private boolean jj_3R_Aggregate_1989_5_143()
  {
     if (jj_scan_token(AVG)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1991_5_142()
+  private boolean jj_3R_Aggregate_1987_5_142()
  {
     if (jj_scan_token(MAX)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1989_5_141()
+  private boolean jj_3R_Aggregate_1985_5_141()
  {
     if (jj_scan_token(MIN)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1987_5_140()
+  private boolean jj_3R_Aggregate_1983_5_140()
  {
     if (jj_scan_token(SUM)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Var_1601_5_175()
+  private boolean jj_3R_Var_1597_5_175()
  {
     Token xsp;
     xsp = jj_scanpos;
@@ -9119,50 +9130,50 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1980_5_139()
+  private boolean jj_3R_Aggregate_1976_5_139()
  {
     if (jj_scan_token(COUNT)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_Aggregate_1979_3_124()
+  private boolean jj_3R_Aggregate_1975_3_124()
  {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_Aggregate_1980_5_139()) {
+    if (jj_3R_Aggregate_1976_5_139()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1987_5_140()) {
+    if (jj_3R_Aggregate_1983_5_140()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1989_5_141()) {
+    if (jj_3R_Aggregate_1985_5_141()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1991_5_142()) {
+    if (jj_3R_Aggregate_1987_5_142()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1993_5_143()) {
+    if (jj_3R_Aggregate_1989_5_143()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1995_5_144()) {
+    if (jj_3R_Aggregate_1991_5_144()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1997_5_145()) {
+    if (jj_3R_Aggregate_1993_5_145()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_1999_5_146()) {
+    if (jj_3R_Aggregate_1995_5_146()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2001_5_147()) {
+    if (jj_3R_Aggregate_1997_5_147()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2015_5_148()) {
+    if (jj_3R_Aggregate_2011_5_148()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2017_5_149()) {
+    if (jj_3R_Aggregate_2013_5_149()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2019_5_150()) {
+    if (jj_3R_Aggregate_2015_5_150()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2021_5_151()) {
+    if (jj_3R_Aggregate_2017_5_151()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2023_5_152()) {
+    if (jj_3R_Aggregate_2019_5_152()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2025_5_153()) {
+    if (jj_3R_Aggregate_2021_5_153()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2027_5_154()) {
+    if (jj_3R_Aggregate_2023_5_154()) {
     jj_scanpos = xsp;
-    if (jj_3R_Aggregate_2048_5_155()) return true;
+    if (jj_3R_Aggregate_2044_5_155()) return true;
     }
     }
     }
@@ -9231,76 +9242,62 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
     return false;
   }
 
-  private boolean jj_3R_NotExistsFunc_1967_4_132()
+  private boolean jj_3R_NotExistsFunc_1963_4_132()
  {
     if (jj_scan_token(NOT)) return true;
     if (jj_scan_token(EXISTS)) return true;
     return false;
   }
 
-  private boolean jj_3R_ExistsFunc_1961_4_131()
+  private boolean jj_3R_ExistsFunc_1957_4_131()
  {
     if (jj_scan_token(EXISTS)) return true;
-    if (jj_3R_GroupGraphPattern_664_3_157()) return true;
+    if (jj_3R_GroupGraphPattern_660_3_157()) return true;
     return false;
   }
 
-  private boolean jj_3R_StrReplaceExpression_1950_3_129()
+  private boolean jj_3R_StrReplaceExpression_1946_3_129()
  {
     if (jj_scan_token(REPLACE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_SubstringExpression_1938_5_128()
+  private boolean jj_3R_SubstringExpression_1934_5_128()
  {
     if (jj_scan_token(SUBSTR)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_RegexExpression_1926_5_130()
+  private boolean jj_3R_RegexExpression_1922_5_130()
  {
     if (jj_scan_token(REGEX)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1920_5_119()
+  private boolean jj_3R_BuiltInCall_1916_5_119()
  {
     if (jj_scan_token(OBJECT)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1918_5_118()
+  private boolean jj_3R_BuiltInCall_1914_5_118()
  {
     if (jj_scan_token(PREDICATE)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1916_5_117()
+  private boolean jj_3R_BuiltInCall_1912_5_117()
  {
     if (jj_scan_token(SUBJECT)) return true;
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_BuiltInCall_1912_5_116()
- {
-    if (jj_scan_token(TRIPLE)) return true;
-    if (jj_scan_token(LPAREN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_BuiltInCall_1910_5_115()
- {
-    if (jj_scan_token(IS_TRIPLE)) return true;
-    if (jj_scan_token(LPAREN)) return true;
-    return false;
-  }
-
   /** Generated Token Manager. */
   public ARQParserTokenManager token_source;
   SimpleCharStream jj_input_stream;
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_12/javacc/SPARQLParser12.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_12/javacc/SPARQLParser12.java
index 80bed8c000..45d0f9e6fc 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_12/javacc/SPARQLParser12.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/sparql_12/javacc/SPARQLParser12.java
@@ -315,55 +315,15 @@ getQuery().setConstructTemplate(t) ;
         DatasetClause();
       }
       jj_consume_token(WHERE);
-      jj_consume_token(LBRACE);
-      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
-      case IRIref:
-      case PNAME_NS:
-      case PNAME_LN:
-      case BLANK_NODE_LABEL:
-      case VAR1:
-      case VAR2:
-      case TRUE:
-      case FALSE:
-      case INTEGER:
-      case DECIMAL:
-      case DOUBLE:
-      case INTEGER_POSITIVE:
-      case DECIMAL_POSITIVE:
-      case DOUBLE_POSITIVE:
-      case INTEGER_NEGATIVE:
-      case DECIMAL_NEGATIVE:
-      case DOUBLE_NEGATIVE:
-      case STRING_LITERAL1:
-      case STRING_LITERAL2:
-      case STRING_LITERAL_LONG1:
-      case STRING_LITERAL_LONG2:
-      case LPAREN:
-      case NIL:
-      case LBRACKET:
-      case ANON:
-      case L_TRIPLE:
-      case LT2:{
-        TriplesTemplate(acc);
-        break;
-        }
-      default:
-        jj_la1[12] = jj_gen;
-        ;
-      }
-      jj_consume_token(RBRACE);
-      SolutionModifier();
-t = new Template(acc.getBGP()) ;
-      getQuery().setConstructTemplate(t) ;
-      // Create a query in the same shape as the query created by writing out 
in full.
-      ElementPathBlock epb = new ElementPathBlock(acc.getBGP()) ;
-      ElementGroup elg = new ElementGroup() ;
-      elg.addElement(epb) ;
+      t = ConstructTemplate();
+getQuery().setConstructTemplate(t) ;
+      ElementGroup elg = templateToQueryPattern(t);
       getQuery().setQueryPattern(elg) ;
+      SolutionModifier();
       break;
       }
     default:
-      jj_la1[13] = jj_gen;
+      jj_la1[12] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -392,7 +352,7 @@ getQuery().addDescribeNode(n) ;
           break;
           }
         default:
-          jj_la1[14] = jj_gen;
+          jj_la1[13] = jj_gen;
           break label_6;
         }
       }
@@ -405,7 +365,7 @@ getQuery().setQueryResultStar(true) ;
       break;
       }
     default:
-      jj_la1[15] = jj_gen;
+      jj_la1[14] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -417,7 +377,7 @@ getQuery().setQueryResultStar(true) ;
         break;
         }
       default:
-        jj_la1[16] = jj_gen;
+        jj_la1[15] = jj_gen;
         break label_7;
       }
       DatasetClause();
@@ -429,7 +389,7 @@ getQuery().setQueryResultStar(true) ;
       break;
       }
     default:
-      jj_la1[17] = jj_gen;
+      jj_la1[16] = jj_gen;
       ;
     }
     SolutionModifier();
@@ -446,7 +406,7 @@ getQuery().setQueryAskType() ;
         break;
         }
       default:
-        jj_la1[18] = jj_gen;
+        jj_la1[17] = jj_gen;
         break label_8;
       }
       DatasetClause();
@@ -470,7 +430,7 @@ getQuery().setQueryAskType() ;
       break;
       }
     default:
-      jj_la1[19] = jj_gen;
+      jj_la1[18] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -502,7 +462,7 @@ getQuery().setQueryAskType() ;
       break;
       }
     default:
-      jj_la1[20] = jj_gen;
+      jj_la1[19] = jj_gen;
       ;
     }
 startWherePattern() ;
@@ -518,7 +478,7 @@ finishWherePattern() ;
       break;
       }
     default:
-      jj_la1[21] = jj_gen;
+      jj_la1[20] = jj_gen;
       ;
     }
     switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -527,7 +487,7 @@ finishWherePattern() ;
       break;
       }
     default:
-      jj_la1[22] = jj_gen;
+      jj_la1[21] = jj_gen;
       ;
     }
     switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -536,7 +496,7 @@ finishWherePattern() ;
       break;
       }
     default:
-      jj_la1[23] = jj_gen;
+      jj_la1[22] = jj_gen;
       ;
     }
     switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -546,7 +506,7 @@ finishWherePattern() ;
       break;
       }
     default:
-      jj_la1[24] = jj_gen;
+      jj_la1[23] = jj_gen;
       ;
     }
 }
@@ -638,7 +598,7 @@ finishWherePattern() ;
         break;
         }
       default:
-        jj_la1[25] = jj_gen;
+        jj_la1[24] = jj_gen;
         break label_9;
       }
     }
@@ -737,7 +697,7 @@ getQuery().addGroupBy((Var)null, expr) ;
         break;
         }
       default:
-        jj_la1[26] = jj_gen;
+        jj_la1[25] = jj_gen;
         ;
       }
       jj_consume_token(RPAREN);
@@ -751,7 +711,7 @@ getQuery().addGroupBy(v) ;
       break;
       }
     default:
-      jj_la1[27] = jj_gen;
+      jj_la1[26] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -842,7 +802,7 @@ setAllowAggregatesInExpressions(true) ;
         break;
         }
       default:
-        jj_la1[28] = jj_gen;
+        jj_la1[27] = jj_gen;
         break label_10;
       }
     }
@@ -944,7 +904,7 @@ setAllowAggregatesInExpressions(true) ;
         break;
         }
       default:
-        jj_la1[29] = jj_gen;
+        jj_la1[28] = jj_gen;
         break label_11;
       }
     }
@@ -968,7 +928,7 @@ direction = Query.ORDER_DESCENDING ;
         break;
         }
       default:
-        jj_la1[30] = jj_gen;
+        jj_la1[29] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -1135,14 +1095,14 @@ direction = Query.ORDER_DESCENDING ;
         break;
         }
       default:
-        jj_la1[31] = jj_gen;
+        jj_la1[30] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
       break;
       }
     default:
-      jj_la1[32] = jj_gen;
+      jj_la1[31] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1162,7 +1122,7 @@ if ( v == null )
         break;
         }
       default:
-        jj_la1[33] = jj_gen;
+        jj_la1[32] = jj_gen;
         ;
       }
       break;
@@ -1175,13 +1135,13 @@ if ( v == null )
         break;
         }
       default:
-        jj_la1[34] = jj_gen;
+        jj_la1[33] = jj_gen;
         ;
       }
       break;
       }
     default:
-      jj_la1[35] = jj_gen;
+      jj_la1[34] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1209,7 +1169,7 @@ finishValuesClause(t.beginLine, t.beginColumn) ;
       break;
       }
     default:
-      jj_la1[36] = jj_gen;
+      jj_la1[35] = jj_gen;
       ;
     }
 }
@@ -1239,13 +1199,13 @@ finishValuesClause(t.beginLine, t.beginColumn) ;
         break;
         }
       default:
-        jj_la1[37] = jj_gen;
+        jj_la1[36] = jj_gen;
         ;
       }
       break;
       }
     default:
-      jj_la1[38] = jj_gen;
+      jj_la1[37] = jj_gen;
       ;
     }
 }
@@ -1300,7 +1260,7 @@ startUpdateOperation() ;
       break;
       }
     default:
-      jj_la1[39] = jj_gen;
+      jj_la1[38] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1317,7 +1277,7 @@ silent = true ;
       break;
       }
     default:
-      jj_la1[40] = jj_gen;
+      jj_la1[39] = jj_gen;
       ;
     }
     url = iri();
@@ -1328,7 +1288,7 @@ silent = true ;
       break;
       }
     default:
-      jj_la1[41] = jj_gen;
+      jj_la1[40] = jj_gen;
       ;
     }
 {if ("" != null) return new UpdateLoad(url, dest, silent) ;}
@@ -1344,7 +1304,7 @@ silent = true ;
       break;
       }
     default:
-      jj_la1[42] = jj_gen;
+      jj_la1[41] = jj_gen;
       ;
     }
     target = GraphRefAll();
@@ -1361,7 +1321,7 @@ silent = true ;
       break;
       }
     default:
-      jj_la1[43] = jj_gen;
+      jj_la1[42] = jj_gen;
       ;
     }
     target = GraphRefAll();
@@ -1378,7 +1338,7 @@ silent=true ;
       break;
       }
     default:
-      jj_la1[44] = jj_gen;
+      jj_la1[43] = jj_gen;
       ;
     }
     iri = GraphRef();
@@ -1395,7 +1355,7 @@ silent=true ;
       break;
       }
     default:
-      jj_la1[45] = jj_gen;
+      jj_la1[44] = jj_gen;
       ;
     }
     src = GraphOrDefault();
@@ -1414,7 +1374,7 @@ silent=true ;
       break;
       }
     default:
-      jj_la1[46] = jj_gen;
+      jj_la1[45] = jj_gen;
       ;
     }
     src = GraphOrDefault();
@@ -1433,7 +1393,7 @@ silent=true ;
       break;
       }
     default:
-      jj_la1[47] = jj_gen;
+      jj_la1[46] = jj_gen;
       ;
     }
     src = GraphOrDefault();
@@ -1489,7 +1449,7 @@ Node n = createNode(iri) ; up.setWithIRI(n) ;
       break;
       }
     default:
-      jj_la1[48] = jj_gen;
+      jj_la1[47] = jj_gen;
       ;
     }
     switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -1501,7 +1461,7 @@ Node n = createNode(iri) ; up.setWithIRI(n) ;
         break;
         }
       default:
-        jj_la1[49] = jj_gen;
+        jj_la1[48] = jj_gen;
         ;
       }
       break;
@@ -1511,7 +1471,7 @@ Node n = createNode(iri) ; up.setWithIRI(n) ;
       break;
       }
     default:
-      jj_la1[50] = jj_gen;
+      jj_la1[49] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1523,7 +1483,7 @@ Node n = createNode(iri) ; up.setWithIRI(n) ;
         break;
         }
       default:
-        jj_la1[51] = jj_gen;
+        jj_la1[50] = jj_gen;
         break label_12;
       }
       UsingClause(up);
@@ -1573,7 +1533,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
       break;
       }
     default:
-      jj_la1[52] = jj_gen;
+      jj_la1[51] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1596,7 +1556,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
         break;
         }
       default:
-        jj_la1[53] = jj_gen;
+        jj_la1[52] = jj_gen;
         ;
       }
       iri = iri();
@@ -1604,7 +1564,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
       break;
       }
     default:
-      jj_la1[54] = jj_gen;
+      jj_la1[53] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1641,7 +1601,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
       break;
       }
     default:
-      jj_la1[55] = jj_gen;
+      jj_la1[54] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -1694,7 +1654,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
       break;
       }
     default:
-      jj_la1[56] = jj_gen;
+      jj_la1[55] = jj_gen;
       ;
     }
     label_13:
@@ -1705,7 +1665,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
         break;
         }
       default:
-        jj_la1[57] = jj_gen;
+        jj_la1[56] = jj_gen;
         break label_13;
       }
       QuadsNotTriples(acc);
@@ -1715,7 +1675,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
         break;
         }
       default:
-        jj_la1[58] = jj_gen;
+        jj_la1[57] = jj_gen;
         ;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -1750,7 +1710,7 @@ n = createNode(iri) ; update.addUsingNamed(n) ;
         break;
         }
       default:
-        jj_la1[59] = jj_gen;
+        jj_la1[58] = jj_gen;
         ;
       }
     }
@@ -1793,7 +1753,7 @@ setAccGraph(acc, gn) ;
       break;
       }
     default:
-      jj_la1[60] = jj_gen;
+      jj_la1[59] = jj_gen;
       ;
     }
     jj_consume_token(RBRACE);
@@ -1837,13 +1797,13 @@ setAccGraph(acc, prev) ;
         break;
         }
       default:
-        jj_la1[61] = jj_gen;
+        jj_la1[60] = jj_gen;
         ;
       }
       break;
       }
     default:
-      jj_la1[62] = jj_gen;
+      jj_la1[61] = jj_gen;
       ;
     }
 }
@@ -1861,7 +1821,7 @@ Query q = endSubSelect(beginLine, beginColumn) ;
       break;
       }
     default:
-      jj_la1[63] = jj_gen;
+      jj_la1[62] = jj_gen;
       el = GroupGraphPatternSub();
     }
     jj_consume_token(RBRACE);
@@ -1907,7 +1867,7 @@ endTriplesBlock() ;
       break;
       }
     default:
-      jj_la1[64] = jj_gen;
+      jj_la1[63] = jj_gen;
       ;
     }
     label_14:
@@ -1925,7 +1885,7 @@ endTriplesBlock() ;
         break;
         }
       default:
-        jj_la1[65] = jj_gen;
+        jj_la1[64] = jj_gen;
         break label_14;
       }
       el = GraphPatternNotTriples();
@@ -1936,7 +1896,7 @@ elg.addElement(el) ;
         break;
         }
       default:
-        jj_la1[66] = jj_gen;
+        jj_la1[65] = jj_gen;
         ;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -1974,7 +1934,7 @@ endTriplesBlock() ;
         break;
         }
       default:
-        jj_la1[67] = jj_gen;
+        jj_la1[66] = jj_gen;
         ;
       }
     }
@@ -2022,13 +1982,13 @@ if ( acc == null )
         break;
         }
       default:
-        jj_la1[68] = jj_gen;
+        jj_la1[67] = jj_gen;
         ;
       }
       break;
       }
     default:
-      jj_la1[69] = jj_gen;
+      jj_la1[68] = jj_gen;
       ;
     }
 {if ("" != null) return acc ;}
@@ -2085,7 +2045,7 @@ if ( acc == null )
       break;
       }
     default:
-      jj_la1[70] = jj_gen;
+      jj_la1[69] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2118,7 +2078,7 @@ silent=true;
       break;
       }
     default:
-      jj_la1[71] = jj_gen;
+      jj_la1[70] = jj_gen;
       ;
     }
     n = VarOrIri();
@@ -2162,7 +2122,7 @@ finishInlineData(beginLine, beginColumn) ;
       break;
       }
     default:
-      jj_la1[72] = jj_gen;
+      jj_la1[71] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2200,7 +2160,7 @@ beginLine = t.beginLine; beginColumn = t.beginColumn; t = 
null;
         break;
         }
       default:
-        jj_la1[73] = jj_gen;
+        jj_la1[72] = jj_gen;
         break label_15;
       }
       n = DataBlockValue();
@@ -2228,7 +2188,7 @@ startDataBlockValueRow(beginLine, beginColumn) ;
           break;
           }
         default:
-          jj_la1[74] = jj_gen;
+          jj_la1[73] = jj_gen;
           break label_16;
         }
         v = Var();
@@ -2238,7 +2198,7 @@ emitDataBlockVariable(v) ;
       break;
       }
     default:
-      jj_la1[75] = jj_gen;
+      jj_la1[74] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2252,7 +2212,7 @@ emitDataBlockVariable(v) ;
         break;
         }
       default:
-        jj_la1[76] = jj_gen;
+        jj_la1[75] = jj_gen;
         break label_17;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -2287,7 +2247,7 @@ startDataBlockValueRow(beginLine, beginColumn) ;
             break;
             }
           default:
-            jj_la1[77] = jj_gen;
+            jj_la1[76] = jj_gen;
             break label_18;
           }
           n = DataBlockValue();
@@ -2306,7 +2266,7 @@ finishDataBlockValueRow(beginLine, beginColumn) ;
         break;
         }
       default:
-        jj_la1[78] = jj_gen;
+        jj_la1[77] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -2361,7 +2321,7 @@ finishDataBlockValueRow(beginLine, beginColumn) ;
       break;
       }
     default:
-      jj_la1[79] = jj_gen;
+      jj_la1[78] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2384,7 +2344,7 @@ finishDataBlockValueRow(beginLine, beginColumn) ;
       break;
       }
     default:
-      jj_la1[80] = jj_gen;
+      jj_la1[79] = jj_gen;
       ;
     }
 {if ("" != null) return reifId;}
@@ -2435,7 +2395,7 @@ finishDataBlockValueRow(beginLine, beginColumn) ;
       break;
       }
     default:
-      jj_la1[81] = jj_gen;
+      jj_la1[80] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2469,7 +2429,7 @@ finishDataBlockValueRow(beginLine, beginColumn) ;
         break;
         }
       default:
-        jj_la1[82] = jj_gen;
+        jj_la1[81] = jj_gen;
         break label_19;
       }
       jj_consume_token(UNION);
@@ -2578,7 +2538,7 @@ el2.addElement(el) ;
       break;
       }
     default:
-      jj_la1[83] = jj_gen;
+      jj_la1[82] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2620,7 +2580,7 @@ if ( ! getAllowAggregatesInExpressions() )
         break;
         }
       default:
-        jj_la1[84] = jj_gen;
+        jj_la1[83] = jj_gen;
         ;
       }
       expr = Expression();
@@ -2633,7 +2593,7 @@ args.add(expr) ;
           break;
           }
         default:
-          jj_la1[85] = jj_gen;
+          jj_la1[84] = jj_gen;
           break label_20;
         }
         jj_consume_token(COMMA);
@@ -2644,7 +2604,7 @@ args.add(expr) ;
       break;
       }
     default:
-      jj_la1[86] = jj_gen;
+      jj_la1[85] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2670,7 +2630,7 @@ exprList.add(expr) ;
           break;
           }
         default:
-          jj_la1[87] = jj_gen;
+          jj_la1[86] = jj_gen;
           break label_21;
         }
         jj_consume_token(COMMA);
@@ -2681,7 +2641,7 @@ exprList.add(expr) ;
       break;
       }
     default:
-      jj_la1[88] = jj_gen;
+      jj_la1[87] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2726,7 +2686,7 @@ setInConstructTemplate(true) ;
       break;
       }
     default:
-      jj_la1[89] = jj_gen;
+      jj_la1[88] = jj_gen;
       ;
     }
     jj_consume_token(RBRACE);
@@ -2772,13 +2732,13 @@ setInConstructTemplate(false) ;
         break;
         }
       default:
-        jj_la1[90] = jj_gen;
+        jj_la1[89] = jj_gen;
         ;
       }
       break;
       }
     default:
-      jj_la1[91] = jj_gen;
+      jj_la1[90] = jj_gen;
       ;
     }
 }
@@ -2828,7 +2788,7 @@ insert(acc, tempAcc) ;
       break;
       }
     default:
-      jj_la1[92] = jj_gen;
+      jj_la1[91] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2846,7 +2806,7 @@ insert(acc, tempAcc) ;
       break;
       }
     default:
-      jj_la1[93] = jj_gen;
+      jj_la1[92] = jj_gen;
       ;
     }
 }
@@ -2862,7 +2822,7 @@ insert(acc, tempAcc) ;
         break;
         }
       default:
-        jj_la1[94] = jj_gen;
+        jj_la1[93] = jj_gen;
         break label_22;
       }
       jj_consume_token(SEMICOLON);
@@ -2879,7 +2839,7 @@ insert(acc, tempAcc) ;
         break;
         }
       default:
-        jj_la1[95] = jj_gen;
+        jj_la1[94] = jj_gen;
         ;
       }
     }
@@ -2901,7 +2861,7 @@ p = nRDFtype ;
       break;
       }
     default:
-      jj_la1[96] = jj_gen;
+      jj_la1[95] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2919,7 +2879,7 @@ p = nRDFtype ;
         break;
         }
       default:
-        jj_la1[97] = jj_gen;
+        jj_la1[96] = jj_gen;
         break label_23;
       }
       jj_consume_token(COMMA);
@@ -2979,7 +2939,7 @@ insert(acc, tempAcc) ;
       break;
       }
     default:
-      jj_la1[98] = jj_gen;
+      jj_la1[97] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3000,7 +2960,7 @@ insert(acc, tempAcc) ;
       break;
       }
     default:
-      jj_la1[99] = jj_gen;
+      jj_la1[98] = jj_gen;
       ;
     }
 }
@@ -3023,7 +2983,7 @@ insert(acc, tempAcc) ;
       break;
       }
     default:
-      jj_la1[100] = jj_gen;
+      jj_la1[99] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3036,7 +2996,7 @@ insert(acc, tempAcc) ;
         break;
         }
       default:
-        jj_la1[101] = jj_gen;
+        jj_la1[100] = jj_gen;
         break label_24;
       }
       jj_consume_token(SEMICOLON);
@@ -3068,7 +3028,7 @@ path = null ; p = null ;
           break;
           }
         default:
-          jj_la1[102] = jj_gen;
+          jj_la1[101] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
@@ -3076,7 +3036,7 @@ path = null ; p = null ;
         break;
         }
       default:
-        jj_la1[103] = jj_gen;
+        jj_la1[102] = jj_gen;
         ;
       }
     }
@@ -3106,7 +3066,7 @@ path = null ; p = null ;
         break;
         }
       default:
-        jj_la1[104] = jj_gen;
+        jj_la1[103] = jj_gen;
         break label_25;
       }
       jj_consume_token(COMMA);
@@ -3140,7 +3100,7 @@ insert(tempAcc, mark, s, p, path, o) ; insert(acc, 
tempAcc) ;
         break;
         }
       default:
-        jj_la1[105] = jj_gen;
+        jj_la1[104] = jj_gen;
         break label_26;
       }
       jj_consume_token(VBAR);
@@ -3161,7 +3121,7 @@ p1 = PathFactory.pathAlt(p1, p2) ;
         break;
         }
       default:
-        jj_la1[106] = jj_gen;
+        jj_la1[105] = jj_gen;
         break label_27;
       }
       jj_consume_token(SLASH);
@@ -3183,7 +3143,7 @@ p1 = PathFactory.pathSeq(p1, p2) ;
       break;
       }
     default:
-      jj_la1[107] = jj_gen;
+      jj_la1[106] = jj_gen;
       ;
     }
 {if ("" != null) return p ;}
@@ -3209,7 +3169,7 @@ p = PathFactory.pathInverse(p) ;
       break;
       }
     default:
-      jj_la1[108] = jj_gen;
+      jj_la1[107] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3235,7 +3195,7 @@ p = PathFactory.pathInverse(p) ;
       break;
       }
     default:
-      jj_la1[109] = jj_gen;
+      jj_la1[108] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3268,7 +3228,7 @@ p = PathFactory.pathLink(nRDFtype) ;
       break;
       }
     default:
-      jj_la1[110] = jj_gen;
+      jj_la1[109] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3306,7 +3266,7 @@ pNegSet.add(p) ;
             break;
             }
           default:
-            jj_la1[111] = jj_gen;
+            jj_la1[110] = jj_gen;
             break label_28;
           }
           jj_consume_token(VBAR);
@@ -3316,14 +3276,14 @@ pNegSet.add(p) ;
         break;
         }
       default:
-        jj_la1[112] = jj_gen;
+        jj_la1[111] = jj_gen;
         ;
       }
       jj_consume_token(RPAREN);
       break;
       }
     default:
-      jj_la1[113] = jj_gen;
+      jj_la1[112] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3361,14 +3321,14 @@ n = createNode(str) ; {if ("" != null) return new 
P_ReverseLink(n) ;}
         break;
         }
       default:
-        jj_la1[114] = jj_gen;
+        jj_la1[113] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
       break;
       }
     default:
-      jj_la1[115] = jj_gen;
+      jj_la1[114] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3391,7 +3351,7 @@ n = createNode(str) ; {if ("" != null) return new 
P_ReverseLink(n) ;}
       break;
       }
     default:
-      jj_la1[116] = jj_gen;
+      jj_la1[115] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3420,7 +3380,7 @@ Node n = createBNode( t.beginLine, t.beginColumn) ;
       break;
       }
     default:
-      jj_la1[117] = jj_gen;
+      jj_la1[116] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3483,7 +3443,7 @@ insert(acc, mark, cell, nRDFfirst, n) ;
         break;
         }
       default:
-        jj_la1[118] = jj_gen;
+        jj_la1[117] = jj_gen;
         break label_29;
       }
     }
@@ -3540,7 +3500,7 @@ insert(acc, mark, cell, nRDFfirst, n) ;
         break;
         }
       default:
-        jj_la1[119] = jj_gen;
+        jj_la1[118] = jj_gen;
         break label_30;
       }
     }
@@ -3563,7 +3523,7 @@ if ( lastCell != null )
         break;
         }
       default:
-        jj_la1[120] = jj_gen;
+        jj_la1[119] = jj_gen;
         break label_31;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -3582,7 +3542,7 @@ clearReifierId();
         break;
         }
       default:
-        jj_la1[121] = jj_gen;
+        jj_la1[120] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -3608,7 +3568,7 @@ clearReifierId();
         break;
         }
       default:
-        jj_la1[122] = jj_gen;
+        jj_la1[121] = jj_gen;
         break label_32;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -3627,7 +3587,7 @@ clearReifierId();
         break;
         }
       default:
-        jj_la1[123] = jj_gen;
+        jj_la1[122] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -3685,7 +3645,7 @@ clearReifierId();
       break;
       }
     default:
-      jj_la1[124] = jj_gen;
+      jj_la1[123] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3735,7 +3695,7 @@ clearReifierId();
       break;
       }
     default:
-      jj_la1[125] = jj_gen;
+      jj_la1[124] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3796,7 +3756,7 @@ clearReifierId();
       break;
       }
     default:
-      jj_la1[126] = jj_gen;
+      jj_la1[125] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3815,7 +3775,7 @@ clearReifierId();
       break;
       }
     default:
-      jj_la1[127] = jj_gen;
+      jj_la1[126] = jj_gen;
       ;
     }
 reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, 
tok.beginColumn) ;
@@ -3876,7 +3836,7 @@ s = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[128] = jj_gen;
+      jj_la1[127] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -3936,7 +3896,7 @@ o = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[129] = jj_gen;
+      jj_la1[128] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4005,7 +3965,7 @@ n = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[130] = jj_gen;
+      jj_la1[129] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4062,7 +4022,7 @@ n = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[131] = jj_gen;
+      jj_la1[130] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4088,7 +4048,7 @@ p = nRDFtype ;
       break;
       }
     default:
-      jj_la1[132] = jj_gen;
+      jj_la1[131] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4144,7 +4104,7 @@ n = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[133] = jj_gen;
+      jj_la1[132] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4178,7 +4138,7 @@ n = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[134] = jj_gen;
+      jj_la1[133] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4198,7 +4158,7 @@ n = createNode(iri) ;
       break;
       }
     default:
-      jj_la1[135] = jj_gen;
+      jj_la1[134] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4223,7 +4183,7 @@ n = createNode(iri) ;
         break;
         }
       default:
-        jj_la1[136] = jj_gen;
+        jj_la1[135] = jj_gen;
         break label_33;
       }
       jj_consume_token(SC_OR);
@@ -4244,7 +4204,7 @@ expr1 = new E_LogicalOr(expr1, expr2) ;
         break;
         }
       default:
-        jj_la1[137] = jj_gen;
+        jj_la1[136] = jj_gen;
         break label_34;
       }
       jj_consume_token(SC_AND);
@@ -4323,14 +4283,14 @@ expr1 = new E_NotOneOf(expr1, a) ;
         break;
         }
       default:
-        jj_la1[138] = jj_gen;
+        jj_la1[137] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
       break;
       }
     default:
-      jj_la1[139] = jj_gen;
+      jj_la1[138] = jj_gen;
       ;
     }
 {if ("" != null) return expr1 ;}
@@ -4360,7 +4320,7 @@ expr1 = new E_NotOneOf(expr1, a) ;
         break;
         }
       default:
-        jj_la1[140] = jj_gen;
+        jj_la1[139] = jj_gen;
         break label_35;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -4402,7 +4362,7 @@ n = stripSign(n) ;
           break;
           }
         default:
-          jj_la1[141] = jj_gen;
+          jj_la1[140] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
@@ -4415,7 +4375,7 @@ n = stripSign(n) ;
             break;
             }
           default:
-            jj_la1[142] = jj_gen;
+            jj_la1[141] = jj_gen;
             break label_36;
           }
           switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -4432,7 +4392,7 @@ expr2 = new E_Divide(expr2, expr3) ;
             break;
             }
           default:
-            jj_la1[143] = jj_gen;
+            jj_la1[142] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
           }
@@ -4444,7 +4404,7 @@ if ( addition )
         break;
         }
       default:
-        jj_la1[144] = jj_gen;
+        jj_la1[143] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -4464,7 +4424,7 @@ if ( addition )
         break;
         }
       default:
-        jj_la1[145] = jj_gen;
+        jj_la1[144] = jj_gen;
         break label_37;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -4481,7 +4441,7 @@ expr1 = new E_Divide(expr1, expr2) ;
         break;
         }
       default:
-        jj_la1[146] = jj_gen;
+        jj_la1[145] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -4607,7 +4567,7 @@ expr1 = new E_Divide(expr1, expr2) ;
       break;
       }
     default:
-      jj_la1[147] = jj_gen;
+      jj_la1[146] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4741,7 +4701,7 @@ expr1 = new E_Divide(expr1, expr2) ;
       break;
       }
     default:
-      jj_la1[148] = jj_gen;
+      jj_la1[147] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4785,7 +4745,7 @@ n = createNode(iri);
       break;
       }
     default:
-      jj_la1[149] = jj_gen;
+      jj_la1[148] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4836,7 +4796,7 @@ n = createNode(iri);
       break;
       }
     default:
-      jj_la1[150] = jj_gen;
+      jj_la1[149] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -4949,7 +4909,7 @@ n = createNode(iri);
         break;
         }
       default:
-        jj_la1[151] = jj_gen;
+        jj_la1[150] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -5390,7 +5350,7 @@ n = createNode(iri);
       break;
       }
     default:
-      jj_la1[152] = jj_gen;
+      jj_la1[151] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5410,7 +5370,7 @@ n = createNode(iri);
       break;
       }
     default:
-      jj_la1[153] = jj_gen;
+      jj_la1[152] = jj_gen;
       ;
     }
     jj_consume_token(RPAREN);
@@ -5431,7 +5391,7 @@ n = createNode(iri);
       break;
       }
     default:
-      jj_la1[154] = jj_gen;
+      jj_la1[153] = jj_gen;
       ;
     }
     jj_consume_token(RPAREN);
@@ -5454,7 +5414,7 @@ n = createNode(iri);
       break;
       }
     default:
-      jj_la1[155] = jj_gen;
+      jj_la1[154] = jj_gen;
       ;
     }
     jj_consume_token(RPAREN);
@@ -5494,7 +5454,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[156] = jj_gen;
+        jj_la1[155] = jj_gen;
         ;
       }
       switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -5601,7 +5561,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[157] = jj_gen;
+        jj_la1[156] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -5620,7 +5580,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[158] = jj_gen;
+        jj_la1[157] = jj_gen;
         ;
       }
       expr = Expression();
@@ -5638,7 +5598,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[159] = jj_gen;
+        jj_la1[158] = jj_gen;
         ;
       }
       expr = Expression();
@@ -5656,7 +5616,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[160] = jj_gen;
+        jj_la1[159] = jj_gen;
         ;
       }
       expr = Expression();
@@ -5674,7 +5634,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[161] = jj_gen;
+        jj_la1[160] = jj_gen;
         ;
       }
       expr = Expression();
@@ -5692,7 +5652,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[162] = jj_gen;
+        jj_la1[161] = jj_gen;
         ;
       }
       expr = Expression();
@@ -5710,7 +5670,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[163] = jj_gen;
+        jj_la1[162] = jj_gen;
         ;
       }
       expr = Expression();
@@ -5723,7 +5683,7 @@ distinct = true ;
         break;
         }
       default:
-        jj_la1[164] = jj_gen;
+        jj_la1[163] = jj_gen;
         ;
       }
       jj_consume_token(RPAREN);
@@ -5731,7 +5691,7 @@ agg = AggregatorFactory.createGroupConcat(distinct, expr, 
sep, ordered) ;
       break;
       }
     default:
-      jj_la1[165] = jj_gen;
+      jj_la1[164] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5758,7 +5718,7 @@ Expr exprAgg = getQuery().allocAggregate(agg) ;
       break;
       }
     default:
-      jj_la1[166] = jj_gen;
+      jj_la1[165] = jj_gen;
       ;
     }
 if ( a == null )
@@ -5793,14 +5753,14 @@ if ( a == null )
         break;
         }
       default:
-        jj_la1[167] = jj_gen;
+        jj_la1[166] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
       break;
       }
     default:
-      jj_la1[168] = jj_gen;
+      jj_la1[167] = jj_gen;
       ;
     }
 {if ("" != null) return createLiteralString(lex, token.beginLine, 
token.beginColumn) ;}
@@ -5828,7 +5788,7 @@ if ( a == null )
       break;
       }
     default:
-      jj_la1[169] = jj_gen;
+      jj_la1[168] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5854,7 +5814,7 @@ if ( a == null )
       break;
       }
     default:
-      jj_la1[170] = jj_gen;
+      jj_la1[169] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5879,7 +5839,7 @@ if ( a == null )
       break;
       }
     default:
-      jj_la1[171] = jj_gen;
+      jj_la1[170] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5904,7 +5864,7 @@ if ( a == null )
       break;
       }
     default:
-      jj_la1[172] = jj_gen;
+      jj_la1[171] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5924,7 +5884,7 @@ if ( a == null )
       break;
       }
     default:
-      jj_la1[173] = jj_gen;
+      jj_la1[172] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5954,7 +5914,7 @@ lex = stripQuotes3(t.image) ;
       break;
       }
     default:
-      jj_la1[174] = jj_gen;
+      jj_la1[173] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5978,7 +5938,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
       break;
       }
     default:
-      jj_la1[175] = jj_gen;
+      jj_la1[174] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -5998,7 +5958,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
       break;
       }
     default:
-      jj_la1[176] = jj_gen;
+      jj_la1[175] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -6019,7 +5979,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
       break;
       }
     default:
-      jj_la1[177] = jj_gen;
+      jj_la1[176] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -6041,7 +6001,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
   public Token jj_nt;
   private int jj_ntk;
   private int jj_gen;
-  final private int[] jj_la1 = new int[178];
+  final private int[] jj_la1 = new int[177];
   static private int[] jj_la1_0;
   static private int[] jj_la1_1;
   static private int[] jj_la1_2;
@@ -6059,25 +6019,25 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
           jj_la1_init_6();
        }
        private static void jj_la1_init_0() {
-          jj_la1_0 = new int[] 
{0xe400000,0x380000,0x380000,0x0,0x0,0x1800000,0x1800000,0x6000,0x6000,0x6000,0x0,0x0,0x7e00,0x0,0x6e00,0x6e00,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x40000000,0x30000000,0x6e00,0x0,0x6e00,0xe00,0x6e00,0x0,0x6e00,0x6e00,0x20000000,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0xe00,0x0,0x7e00,0x0,0x0,0x7e00,0x7e00,0x7e00,0x0,0x400000,0x7e00,0x0,0x0,0x7e00,0x7e00,0x0,0x0,0x0,0x6000,0xe00,0x6000,0x0,0x0,0xe00,0x0,0xe00,0x7e
 [...]
+          jj_la1_0 = new int[] 
{0xe400000,0x380000,0x380000,0x0,0x0,0x1800000,0x1800000,0x6000,0x6000,0x6000,0x0,0x0,0x0,0x6e00,0x6e00,0x0,0x0,0x0,0xe00,0x0,0x0,0x0,0x40000000,0x30000000,0x6e00,0x0,0x6e00,0xe00,0x6e00,0x0,0x6e00,0x6e00,0x20000000,0x10000000,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0x0,0xe00,0x0,0x7e00,0x0,0x0,0x7e00,0x7e00,0x7e00,0x0,0x400000,0x7e00,0x0,0x0,0x7e00,0x7e00,0x0,0x0,0x0,0x6000,0xe00,0x6000,0x0,0x0,0xe00,0x0,0xe00,0x7e00,0x7e
 [...]
        }
        private static void jj_la1_init_1() {
-          jj_la1_1 = new int[] 
{0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x0,0x60,0x0,0x0,0x20,0x40,0x20,0x10,0x40,0x400000,0x800000,0x0,0x0,0xfc1fc000,0x200000,0xfc1fc000,0xfc1fc000,0xfc1fc00c,0xc,0xfc1fc000,0xfc1fc00c,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x100,0x100,0x110,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x400,0xfc1fc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 [...]
+          jj_la1_1 = new int[] 
{0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x20,0x20,0x60,0x0,0x0,0x20,0x40,0x20,0x10,0x40,0x400000,0x800000,0x0,0x0,0xfc1fc000,0x200000,0xfc1fc000,0xfc1fc000,0xfc1fc00c,0xc,0xfc1fc000,0xfc1fc00c,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x100,0x100,0x110,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x0,0x0,0x3b01,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x0,0x400,0xfc1fc000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 [...]
        }
        private static void jj_la1_init_2() {
-          jj_la1_2 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfbffffed,0x0,0xfbffffed,0xfbffffed,0xfbffffed,0x0,0xfbffffed,0xfbffffed,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfbffffed,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0
 [...]
+          jj_la1_2 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfbffffed,0x0,0xfbffffed,0xfbffffed,0xfbffffed,0x0,0xfbffffed,0xfbffffed,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfbffffed,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0
 [...]
        }
        private static void jj_la1_init_3() {
-          jj_la1_3 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1dffffff,0x0,0x1dffffff,0x1dffffff,0x1dffffff,0x0,0x1dffffff,0x1dffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x60000000,0x60000000,0x60000000,0x0,0x0,0x60000000,0x0,0x0,0x60000000,0x60000000,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x0,0x60000000,0x0,0x60000000,0x0,0x0,0x0,0x1dffffff,0x0,
 [...]
+          jj_la1_3 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1dffffff,0x0,0x1dffffff,0x1dffffff,0x1dffffff,0x0,0x1dffffff,0x1dffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x60000000,0x60000000,0x60000000,0x0,0x0,0x60000000,0x0,0x0,0x60000000,0x60000000,0x0,0x0,0x0,0x0,0x60000000,0x0,0x0,0x0,0x60000000,0x0,0x60000000,0x0,0x0,0x0,0x1dffffff,0x0,0x0,0x0,0x0
 [...]
        }
        private static void jj_la1_init_4() {
-          jj_la1_4 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7ee00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x427ff,0x427ff,0x1000,0x4000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x40000,0x1,0x3,0x80000,0x0,0x0,0x10000,0x30000,0x7ee00000,0x0,0x0,0x7ee00000,0x7ee00000,0x7ee00000,0x0,0x0,0x7ee00000,0x0,0x0,0x7ee00000,0x7ee00000,0x0,0x0,0x1000,0x0,0x7ee00000,0x0,0x0,0x0,0x7ee00000,0x0,0x7ee00000,0x0,0x0,0x0,0x0,0x
 [...]
+          jj_la1_4 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x427ff,0x427ff,0x1000,0x4000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x40000,0x1,0x3,0x80000,0x0,0x0,0x10000,0x30000,0x7ee00000,0x0,0x0,0x7ee00000,0x7ee00000,0x7ee00000,0x0,0x0,0x7ee00000,0x0,0x0,0x7ee00000,0x7ee00000,0x0,0x0,0x1000,0x0,0x7ee00000,0x0,0x0,0x0,0x7ee00000,0x0,0x7ee00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0
 [...]
        }
        private static void jj_la1_init_5() {
-          jj_la1_5 = new int[] 
{0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x200,0x200,0x200,0x0,0x0,0x14014be0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14014be0,0x0,0x80000,0x14014be0,0x14014be0,0x14014be0,0x80000,0x0,0x14014be0,0x1000,0x80000,0x14014be0,0x14014be0,0x80000,0x1000,0x0,0xa00,0x40001e0,0x0,0xa00,0xa00,0x40001e0,0xa00,0x40001e0,0x10000,0x100
 [...]
+          jj_la1_5 = new int[] 
{0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x200,0x200,0x200,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x200,0x200,0x0,0x200,0x200,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14014be0,0x0,0x80000,0x14014be0,0x14014be0,0x14014be0,0x80000,0x0,0x14014be0,0x1000,0x80000,0x14014be0,0x14014be0,0x80000,0x1000,0x0,0xa00,0x40001e0,0x0,0xa00,0xa00,0x40001e0,0xa00,0x40001e0,0x10000,0x10000,0x0,0x20
 [...]
        }
        private static void jj_la1_init_6() {
-          jj_la1_6 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1002,0x1002,0x0,0x1002,0x1002,0x0,0x800,0x100,0x20a0,0x1002,0x20a0
 [...]
+          jj_la1_6 = new int[] 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1002,0x1002,0x0,0x1002,0x1002,0x0,0x800,0x100,0x20a0,0x1002,0x20a0,0x2
 [...]
        }
 
   /** Constructor with InputStream. */
@@ -6091,7 +6051,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 178; i++) jj_la1[i] = -1;
+        for (int i = 0; i < 177; i++) jj_la1[i] = -1;
   }
 
   /** Reinitialise. */
@@ -6105,7 +6065,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 178; i++) jj_la1[i] = -1;
+        for (int i = 0; i < 177; i++) jj_la1[i] = -1;
   }
 
   /** Constructor. */
@@ -6115,7 +6075,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 178; i++) jj_la1[i] = -1;
+        for (int i = 0; i < 177; i++) jj_la1[i] = -1;
   }
 
   /** Reinitialise. */
@@ -6133,7 +6093,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 178; i++) jj_la1[i] = -1;
+        for (int i = 0; i < 177; i++) jj_la1[i] = -1;
   }
 
   /** Constructor with generated Token Manager. */
@@ -6142,7 +6102,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 178; i++) jj_la1[i] = -1;
+        for (int i = 0; i < 177; i++) jj_la1[i] = -1;
   }
 
   /** Reinitialise. */
@@ -6151,7 +6111,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 178; i++) jj_la1[i] = -1;
+        for (int i = 0; i < 177; i++) jj_la1[i] = -1;
   }
 
   private Token jj_consume_token(int kind) throws ParseException {
@@ -6207,7 +6167,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
           la1tokens[jj_kind] = true;
           jj_kind = -1;
         }
-        for (int i = 0; i < 178; i++) {
+        for (int i = 0; i < 177; i++) {
           if (jj_la1[i] == jj_gen) {
                 for (int j = 0; j < 32; j++) {
                   if ((jj_la1_0[i] & (1<<j)) != 0) {

Reply via email to