All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.vxquery.xmlquery.query.XMLQuery Maven / Gradle / Ivy

/* Generated By:JavaCC: Do not edit this line. XMLQuery.java */
package org.apache.vxquery.xmlquery.query;

import org.apache.commons.lang3.tuple.Pair;

import org.apache.vxquery.xmlquery.ast.*;
import org.apache.vxquery.context.*;
import org.apache.vxquery.exceptions.*;
import org.apache.vxquery.util.SourceLocation;

import java.math.*;
import java.util.*;

public class XMLQuery implements XMLQueryConstants {
    boolean m_isMatchPattern = false;

    private String sourceName;

    Stack _elementStack = new Stack();

    Stack binaryTokenStack = new Stack();

    private List exceptions = new ArrayList();

    private SourceLocation createSourceLocation(Token t) {
        return new SourceLocation(sourceName, t.beginLine, t.beginColumn);
    }

    private QNameNode createQName(Token t) {
        QNameNode qname = new QNameNode(createSourceLocation(t));
        int idx = t.image.indexOf(':');
        String prefix = "";
        String local = t.image;
        if (idx >= 0) {
            prefix = t.image.substring(0, idx);
            local = t.image.substring(idx + 1);
        }
        qname.setPrefix(prefix);
        qname.setLocalName(local);
        return qname;
    }

    private NCNameNode createNCName(Token t) {
        NCNameNode ncname = new NCNameNode(createSourceLocation(t));
        ncname.setName(t.image);
        return ncname;
    }

    private InfixExprNode createInfixExpr(Token t, ASTNode left, ASTNode right, InfixExprNode.InfixOperator op) {
        InfixExprNode ie = new InfixExprNode(createSourceLocation(t));
        ie.setLeftExpr(left);
        ie.setRightExpr(right);
        ie.setOperator(op);
        return ie;
    }

    private TypeExprNode createTypeExpr(Token t, ASTNode expr, ASTNode type, TypeExprNode.TypeOperator op) {
        TypeExprNode te = new TypeExprNode(createSourceLocation(t));
        te.setExpr(expr);
        te.setType(type);
        te.setOperator(op);
        return te;
    }

    public void setSourceName(String sourceName) {
        this.sourceName = sourceName;
    }

    public List getExceptions() {
        return exceptions;
    }

  final public ModuleNode CUnit() throws ParseException {
    ModuleNode module;
    module = Module();
    jj_consume_token(0);
        {if (true) return module;}
    throw new Error("Missing return statement in function");
  }

  final public ModuleNode Module() throws ParseException {
    VersionDeclNode verDecl = null;
    ModuleNode module;
    if (jj_2_1(2)) {
      verDecl = VersionDecl();
    } else {
      ;
    }
    if (jj_2_2(2)) {
      module = LibraryModule(verDecl);
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 33:
      case 35:
      case 36:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 102:
      case 105:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case IntegerLiteral:
      case DecimalLiteral:
      case DoubleLiteral:
      case StringLiteral:
      case Minus:
      case Plus:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case LessThanOpOrTagO:
      case StartTagOpen:
      case PragmaOpen:
      case ProcessingInstructionStart:
      case ProcessingInstructionStartForElementContent:
      case XmlCommentStart:
      case XmlCommentStartForElementContent:
      case Slash:
      case SlashSlash:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        module = MainModule(verDecl);
        break;
      default:
        jj_la1[0] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return module;}
    throw new Error("Missing return statement in function");
  }

  final public VersionDeclNode VersionDecl() throws ParseException {
    Token ver;
    Token enc = null;
    Token start;
    start = jj_consume_token(1);
    jj_consume_token(2);
    ver = jj_consume_token(StringLiteral);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 3:
      jj_consume_token(3);
      enc = jj_consume_token(StringLiteral);
      break;
    default:
      jj_la1[1] = jj_gen;
      ;
    }
    Separator();
        VersionDeclNode result = new VersionDeclNode(createSourceLocation(start));
        result.setVersion(ver.image);
        result.setEncoding(enc == null ? null : enc.image);
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ModuleNode MainModule(VersionDeclNode verDecl) throws ParseException {
    SourceLocation srcLoc;
    PrologNode prolog = null;
    QueryBodyNode qBody = null;
    prolog = Prolog();
    qBody = QueryBody();
        if (verDecl != null) {
            srcLoc = verDecl.getSourceLocation();
        } else if (prolog != null) {
            srcLoc = prolog.getSourceLocation();
        } else {
            srcLoc = qBody.getSourceLocation();
        }
        MainModuleNode module = new MainModuleNode(srcLoc);
        module.setProlog(prolog);
        module.setQueryBody(qBody);
        {if (true) return module;}
    throw new Error("Missing return statement in function");
  }

  final public ModuleNode LibraryModule(VersionDeclNode verDecl) throws ParseException {
    ModuleDeclNode moduleDecl;
    PrologNode prolog;
    moduleDecl = ModuleDecl();
    prolog = Prolog();
        LibraryModuleNode module = new LibraryModuleNode(moduleDecl.getSourceLocation());
        module.setModuleDecl(moduleDecl);
        module.setProlog(prolog);
        {if (true) return module;}
    throw new Error("Missing return statement in function");
  }

  final public ModuleDeclNode ModuleDecl() throws ParseException {
    Token start;
    NCNameNode prefix;
    String uri;
    start = jj_consume_token(4);
    jj_consume_token(5);
    prefix = NCName();
    jj_consume_token(6);
    uri = URILiteral();
    Separator();
        ModuleDeclNode moduleDecl = new ModuleDeclNode(createSourceLocation(start));
        moduleDecl.setPrefix(prefix.getName());
        moduleDecl.setTargetNS(uri);
        {if (true) return moduleDecl;}
    throw new Error("Missing return statement in function");
  }

  final public PrologNode Prolog() throws ParseException {
    List decls = new ArrayList();
    ASTNode decl;
    label_1:
    while (true) {
      if (jj_2_3(2)) {
        ;
      } else {
        break label_1;
      }
      if (jj_2_4(3)) {
        decl = DefaultNamespaceDecl();
                decls.add(decl);
      } else if (jj_2_5(3)) {
        decl = Setter();
                decls.add(decl);
      } else if (jj_2_6(2)) {
        decl = NamespaceDecl();
                decls.add(decl);
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 29:
          decl = Import();
                decls.add(decl);
          break;
        default:
          jj_la1[2] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      Separator();
    }
    label_2:
    while (true) {
      if (jj_2_7(2)) {
        ;
      } else {
        break label_2;
      }
      if (jj_2_8(2)) {
        decl = VarDecl();
                decls.add(decl);
      } else if (jj_2_9(2)) {
        decl = FunctionDecl();
                decls.add(decl);
      } else if (jj_2_10(2)) {
        decl = OptionDecl();
                decls.add(decl);
      } else if (jj_2_11(2)) {
        FTOptionDecl();

      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      Separator();
    }
        if (decls.isEmpty()) {
            {if (true) return null;}
        }
        PrologNode prolog = new PrologNode(decls.get(0).getSourceLocation());
        prolog.setDecls(decls);
        {if (true) return prolog;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode Setter() throws ParseException {
    ASTNode result;
    if (jj_2_12(2)) {
      result = BoundarySpaceDecl();
    } else if (jj_2_13(3)) {
      result = DefaultCollationDecl();
    } else if (jj_2_14(2)) {
      result = BaseURIDecl();
    } else if (jj_2_15(2)) {
      result = ConstructionDecl();
    } else if (jj_2_16(2)) {
      result = OrderingModeDecl();
    } else if (jj_2_17(3)) {
      result = EmptyOrderDecl();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 8:
        result = CopyNamespacesDecl();
        break;
      default:
        jj_la1[3] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode Import() throws ParseException {
    ASTNode result;
    if (jj_2_18(2)) {
      result = SchemaImport();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 29:
        result = ModuleImport();
        break;
      default:
        jj_la1[4] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public void Separator() throws ParseException {
    jj_consume_token(7);
  }

  final public ASTNode NamespaceDecl() throws ParseException {
    Token start;
    NCNameNode prefix;
    String uri;
    start = jj_consume_token(8);
    jj_consume_token(5);
    prefix = NCName();
    jj_consume_token(6);
    uri = URILiteral();
        NamespaceDeclNode result = new NamespaceDeclNode(createSourceLocation(start));
        result.setPrefix(prefix.getName());
        result.setUri(uri);
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode BoundarySpaceDecl() throws ParseException {
    Token start;
    Token p = null;
    start = jj_consume_token(8);
    jj_consume_token(9);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 10:
      p = jj_consume_token(10);
      break;
    case 11:
      jj_consume_token(11);
      break;
    default:
      jj_la1[5] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        BoundarySpaceDeclNode result = new BoundarySpaceDeclNode(createSourceLocation(start));
        result.setMode(p == null ? StaticContext.BoundarySpaceProperty.STRIP : StaticContext.BoundarySpaceProperty.PRESERVE);
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode DefaultNamespaceDecl() throws ParseException {
    Token start;
    Token e = null;
    String uri;
    start = jj_consume_token(8);
    jj_consume_token(12);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 13:
      e = jj_consume_token(13);
      break;
    case 14:
      jj_consume_token(14);
      break;
    default:
      jj_la1[6] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(5);
    uri = URILiteral();
        if (e != null) {
            DefaultElementNamespaceDeclNode result = new DefaultElementNamespaceDeclNode(createSourceLocation(start));
            result.setUri(uri);
            {if (true) return result;}
        } else {
            DefaultFunctionNamespaceDeclNode result = new DefaultFunctionNamespaceDeclNode(createSourceLocation(start));
            result.setUri(uri);
            {if (true) return result;}
        }
    throw new Error("Missing return statement in function");
  }

  final public ASTNode OptionDecl() throws ParseException {
    Token start;
    QNameNode qname;
    Token value;
    start = jj_consume_token(8);
    jj_consume_token(15);
    qname = QName();
    value = jj_consume_token(StringLiteral);
        OptionDeclNode option = new OptionDeclNode(createSourceLocation(start));
        option.setName(qname);
        option.setValue(value.image);
        {if (true) return option;}
    throw new Error("Missing return statement in function");
  }

  final public void FTOptionDecl() throws ParseException {
    jj_consume_token(8);
    jj_consume_token(16);
    FTMatchOptions();
  }

  final public ASTNode OrderingModeDecl() throws ParseException {
    Token o = null;
    Token start;
    start = jj_consume_token(8);
    jj_consume_token(17);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 18:
      o = jj_consume_token(18);
      break;
    case 19:
      jj_consume_token(19);
      break;
    default:
      jj_la1[7] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        OrderingModeDeclNode oDecl = new OrderingModeDeclNode(createSourceLocation(start));
        oDecl.setMode(o == null ? StaticContext.OrderingModeProperty.UNORDERED : StaticContext.OrderingModeProperty.ORDERED);
        {if (true) return oDecl;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode EmptyOrderDecl() throws ParseException {
    Token start;
    Token g = null;
    start = jj_consume_token(8);
    jj_consume_token(12);
    jj_consume_token(20);
    jj_consume_token(21);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case Greatest:
      g = jj_consume_token(Greatest);
      break;
    case Least:
      jj_consume_token(Least);
      break;
    default:
      jj_la1[8] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        EmptyOrderDeclNode eDecl = new EmptyOrderDeclNode(createSourceLocation(start));
        eDecl.setMode(g == null ? StaticContext.EmptyOrderProperty.LEAST : StaticContext.EmptyOrderProperty.GREATEST);
        {if (true) return eDecl;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CopyNamespacesDecl() throws ParseException {
    boolean preserve;
    boolean inherit;
    Token start;
    start = jj_consume_token(8);
    jj_consume_token(22);
    preserve = PreserveMode();
    jj_consume_token(23);
    inherit = InheritMode();
        CopyNamespacesDeclNode cDecl = new CopyNamespacesDeclNode(createSourceLocation(start));
        cDecl.setMode(preserve ? (
            inherit ? StaticContext.CopyNamespacesModeProperty.PRESERVE_INHERIT : StaticContext.CopyNamespacesModeProperty.PRESERVE_NOINHERIT
            ) : (
                inherit ? StaticContext.CopyNamespacesModeProperty.NOPRESERVE_INHERIT : StaticContext.CopyNamespacesModeProperty.NOPRESERVE_NOINHERIT));
        {if (true) return cDecl;}
    throw new Error("Missing return statement in function");
  }

  final public boolean PreserveMode() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 10:
      jj_consume_token(10);
        {if (true) return true;}
      break;
    case 24:
      jj_consume_token(24);
        {if (true) return false;}
      break;
    default:
      jj_la1[9] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public boolean InheritMode() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 25:
      jj_consume_token(25);
        {if (true) return true;}
      break;
    case 26:
      jj_consume_token(26);
        {if (true) return false;}
      break;
    default:
      jj_la1[10] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public ASTNode DefaultCollationDecl() throws ParseException {
    Token start;
    String defaultCollation;
    start = jj_consume_token(8);
    jj_consume_token(12);
    jj_consume_token(27);
    defaultCollation = URILiteral();
        DefaultCollationDeclNode dDecl = new DefaultCollationDeclNode(createSourceLocation(start));
        dDecl.setCollation(defaultCollation);
        {if (true) return dDecl;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode BaseURIDecl() throws ParseException {
    Token start;
    String uri;
    start = jj_consume_token(8);
    jj_consume_token(28);
    uri = URILiteral();
        BaseUriDeclNode bDecl = new BaseUriDeclNode(createSourceLocation(start));
        bDecl.setUri(uri);
        {if (true) return bDecl;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode SchemaImport() throws ParseException {
    Token start;
    String[] prefix = null;
    String targetNS;
    String location;
    List locations = new ArrayList();
    start = jj_consume_token(29);
    jj_consume_token(30);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 5:
    case 12:
      prefix = SchemaPrefix();
      break;
    default:
      jj_la1[11] = jj_gen;
      ;
    }
    targetNS = URILiteral();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 31:
      jj_consume_token(31);
      location = URILiteral();
            locations.add(location);
      label_3:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 23:
          ;
          break;
        default:
          jj_la1[12] = jj_gen;
          break label_3;
        }
        jj_consume_token(23);
        location = URILiteral();
                locations.add(location);
      }
      break;
    default:
      jj_la1[13] = jj_gen;
      ;
    }
        SchemaImportNode si = new SchemaImportNode(createSourceLocation(start));
        if (prefix != null) {
            si.setPrefix(prefix[0]);
        } else {
            si.setDefaultElementNamespace(true);
        }
        si.setTargetNS(targetNS);
        si.setLocations(locations);
        {if (true) return si;}
    throw new Error("Missing return statement in function");
  }

  final public String[] SchemaPrefix() throws ParseException {
    NCNameNode prefix = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 5:
      jj_consume_token(5);
      prefix = NCName();
      jj_consume_token(6);
      break;
    case 12:
      jj_consume_token(12);
      jj_consume_token(13);
      jj_consume_token(5);
      break;
    default:
      jj_la1[14] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return new String[] { prefix == null ? null : prefix.getName() };}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ModuleImport() throws ParseException {
    Token start;
    NCNameNode prefix = null;
    String targetNS;
    List locations = new ArrayList();
    String location;
    start = jj_consume_token(29);
    jj_consume_token(4);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 5:
      jj_consume_token(5);
      prefix = NCName();
      jj_consume_token(6);
      break;
    default:
      jj_la1[15] = jj_gen;
      ;
    }
    targetNS = URILiteral();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 31:
      jj_consume_token(31);
      location = URILiteral();
            locations.add(location);
      label_4:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 23:
          ;
          break;
        default:
          jj_la1[16] = jj_gen;
          break label_4;
        }
        jj_consume_token(23);
        location = URILiteral();
                locations.add(location);
      }
      break;
    default:
      jj_la1[17] = jj_gen;
      ;
    }
        ModuleImportNode mi = new ModuleImportNode(createSourceLocation(start));
        mi.setPrefix(prefix == null ? null : prefix.getName());
        mi.setTargetNS(targetNS);
        mi.setLocations(locations);
        {if (true) return mi;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode VarDecl() throws ParseException {
    Token start;
    QNameNode name;
    TypeDeclNode type = null;
    ASTNode expr = null;
    start = jj_consume_token(8);
    jj_consume_token(32);
    jj_consume_token(33);
    name = QName();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 38:
      type = TypeDeclaration();
      break;
    default:
      jj_la1[18] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 34:
      jj_consume_token(34);
      expr = ExprSingle();
      break;
    case External:
      jj_consume_token(External);
      break;
    default:
      jj_la1[19] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        VarDeclNode vDecl = new VarDeclNode(createSourceLocation(start));
        vDecl.setName(name);
        vDecl.setType(type);
        vDecl.setValue(expr);
        {if (true) return vDecl;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ConstructionDecl() throws ParseException {
    Token start;
    Token s = null;
    start = jj_consume_token(8);
    jj_consume_token(35);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 11:
      s = jj_consume_token(11);
      break;
    case 10:
      jj_consume_token(10);
      break;
    default:
      jj_la1[20] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        ConstructionDeclNode cDecl = new ConstructionDeclNode(createSourceLocation(start));
        cDecl.setMode(s == null ? StaticContext.ConstructionModeProperty.PRESERVE : StaticContext.ConstructionModeProperty.STRIP);
        {if (true) return cDecl;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode FunctionDecl() throws ParseException {
    Token start;
    QNameNode name;
    List params = new ArrayList();
    SequenceTypeNode rType = null;
    ASTNode body = null;
    start = jj_consume_token(8);
    jj_consume_token(14);
    name = QName();
    jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 33:
      ParamList(params);
      break;
    default:
      jj_la1[21] = jj_gen;
      ;
    }
    jj_consume_token(37);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 38:
      jj_consume_token(38);
      rType = SequenceType();
      break;
    default:
      jj_la1[22] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case Lbrace:
    case LbraceExprEnclosure:
      body = EnclosedExpr();
      break;
    case External:
      jj_consume_token(External);
      break;
    default:
      jj_la1[23] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        FunctionDeclNode fDecl = new FunctionDeclNode(createSourceLocation(start));
        fDecl.setName(name);
        fDecl.setParameters(params);
        fDecl.setReturnType(rType);
        fDecl.setBody(body);
        {if (true) return fDecl;}
    throw new Error("Missing return statement in function");
  }

  final public void ParamList(List params) throws ParseException {
    ParamNode var = null;
    var = Param();
        params.add(var);
    label_5:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        ;
        break;
      default:
        jj_la1[24] = jj_gen;
        break label_5;
      }
      jj_consume_token(23);
      var = Param();
        params.add(var);
    }
  }

  final public ParamNode Param() throws ParseException {
    QNameNode qname;
    TypeDeclNode type = null;
    Token start;
    start = jj_consume_token(33);
    qname = QName();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 38:
      type = TypeDeclaration();
      break;
    default:
      jj_la1[25] = jj_gen;
      ;
    }
        ParamNode var = new ParamNode(createSourceLocation(start));
        var.setName(qname);
        var.setType(type);
        {if (true) return var;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode EnclosedExpr() throws ParseException {
    ASTNode expr;
    Token start;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case Lbrace:
      start = jj_consume_token(Lbrace);
      break;
    case LbraceExprEnclosure:
      start = jj_consume_token(LbraceExprEnclosure);
      break;
    default:
      jj_la1[26] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    expr = Expr();
    jj_consume_token(Rbrace);
        EnclosedExprNode ee = new EnclosedExprNode(createSourceLocation(start));
        ee.setExpression(expr);
        {if (true) return ee;}
    throw new Error("Missing return statement in function");
  }

  final public QueryBodyNode QueryBody() throws ParseException {
    ASTNode expr;
    expr = Expr();
        QueryBodyNode qb = new QueryBodyNode(expr.getSourceLocation());
        qb.setExpression(expr);
        {if (true) return qb;}
    throw new Error("Missing return statement in function");
  }

  final public ExprNode Expr() throws ParseException {
    List eList = new ArrayList();
    ASTNode e;
    e = ExprSingle();
        eList.add(e);
    label_6:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        ;
        break;
      default:
        jj_la1[27] = jj_gen;
        break label_6;
      }
      jj_consume_token(23);
      e = ExprSingle();
            eList.add(e);
    }
        ExprNode expr = new ExprNode(eList.get(0).getSourceLocation());
        expr.setExpressions(eList);
        {if (true) return expr;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ExprSingle() throws ParseException {
    ASTNode expr;
    if (jj_2_19(2)) {
      expr = FLWORExpr();
    } else if (jj_2_20(2)) {
      expr = QuantifiedExpr();
    } else if (jj_2_21(2)) {
      expr = TypeswitchExpr();
    } else if (jj_2_22(2)) {
      expr = IfExpr();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 33:
      case 35:
      case 36:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 102:
      case 105:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case IntegerLiteral:
      case DecimalLiteral:
      case DoubleLiteral:
      case StringLiteral:
      case Minus:
      case Plus:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case LessThanOpOrTagO:
      case StartTagOpen:
      case PragmaOpen:
      case ProcessingInstructionStart:
      case ProcessingInstructionStartForElementContent:
      case XmlCommentStart:
      case XmlCommentStartForElementContent:
      case Slash:
      case SlashSlash:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        expr = OrExpr();
        break;
      default:
        jj_la1[28] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return expr;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode FLWORExpr() throws ParseException {
    List clauses = new ArrayList();
    ASTNode rExpr;
    label_7:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 40:
        ForClause(clauses);
        break;
      case 43:
        LetClause(clauses);
        break;
      default:
        jj_la1[29] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 40:
      case 43:
        ;
        break;
      default:
        jj_la1[30] = jj_gen;
        break label_7;
      }
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 44:
      WhereClause(clauses);
      break;
    default:
      jj_la1[31] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 20:
    case 46:
      OrderByClause(clauses);
      break;
    default:
      jj_la1[32] = jj_gen;
      ;
    }
    jj_consume_token(39);
    rExpr = ExprSingle();
        FLWORExprNode flwor = new FLWORExprNode(clauses.get(0).getSourceLocation());
        flwor.setClauses(clauses);
        flwor.setReturnExpr(rExpr);
        {if (true) return flwor;}
    throw new Error("Missing return statement in function");
  }

  final public void ForClause(List clauses) throws ParseException {
    QNameNode forVarName;
    TypeDeclNode type = null;
    QNameNode posVarName = null;
    QNameNode scoreVarName = null;
    ASTNode sequence;
    List fors = new ArrayList();
    Token start;
    start = jj_consume_token(40);
    jj_consume_token(33);
    forVarName = VarName();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 38:
      type = TypeDeclaration();
      break;
    default:
      jj_la1[33] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 31:
      posVarName = PositionalVar();
      break;
    default:
      jj_la1[34] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 42:
      scoreVarName = FTScoreVar();
      break;
    default:
      jj_la1[35] = jj_gen;
      ;
    }
    jj_consume_token(41);
    sequence = ExprSingle();
        ForVarDeclNode fvd = new ForVarDeclNode(createSourceLocation(start));
        fvd.setForVar(forVarName);
        fvd.setType(type);
        fvd.setSequence(sequence);
        fvd.setPosVar(posVarName);
        fvd.setScoreVar(scoreVarName);
        fors.add(fvd);
    label_8:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        ;
        break;
      default:
        jj_la1[36] = jj_gen;
        break label_8;
      }
            type = null;
            posVarName = null;
            scoreVarName = null;
      jj_consume_token(23);
      start = jj_consume_token(33);
      forVarName = VarName();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 38:
        type = TypeDeclaration();
        break;
      default:
        jj_la1[37] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 31:
        posVarName = PositionalVar();
        break;
      default:
        jj_la1[38] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 42:
        scoreVarName = FTScoreVar();
        break;
      default:
        jj_la1[39] = jj_gen;
        ;
      }
      jj_consume_token(41);
      sequence = ExprSingle();
            fvd = new ForVarDeclNode(createSourceLocation(start));
            fvd.setForVar(forVarName);
            fvd.setType(type);
            fvd.setSequence(sequence);
            fvd.setPosVar(posVarName);
            fvd.setScoreVar(scoreVarName);
            fors.add(fvd);
    }
        ForClauseNode fc = new ForClauseNode(fors.get(0).getSourceLocation());
        fc.setVariables(fors);
        clauses.add(fc);
  }

  final public QNameNode PositionalVar() throws ParseException {
    QNameNode qname;
    jj_consume_token(31);
    jj_consume_token(33);
    qname = VarName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode FTScoreVar() throws ParseException {
    QNameNode qname;
    jj_consume_token(42);
    jj_consume_token(33);
    qname = VarName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public void LetClause(List clauses) throws ParseException {
    QNameNode letVarName = null;
    QNameNode scoreVarName = null;
    TypeDeclNode type = null;
    ASTNode sequence;
    Token start;
    List lets = new ArrayList();
    if (jj_2_23(2)) {
      start = jj_consume_token(43);
      jj_consume_token(33);
      letVarName = VarName();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 38:
        type = TypeDeclaration();
        break;
      default:
        jj_la1[40] = jj_gen;
        ;
      }
    } else if (jj_2_24(2)) {
      start = jj_consume_token(43);
      jj_consume_token(42);
      jj_consume_token(33);
      scoreVarName = VarName();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(34);
    sequence = ExprSingle();
        LetVarDeclNode lvd = new LetVarDeclNode(createSourceLocation(start));
        lvd.setLetVar(letVarName);
        lvd.setScoreVar(scoreVarName);
        lvd.setType(type);
        lvd.setSequence(sequence);
        lets.add(lvd);
    label_9:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        ;
        break;
      default:
        jj_la1[41] = jj_gen;
        break label_9;
      }
            letVarName = null;
            scoreVarName = null;
            type = null;
            start = null;
      jj_consume_token(23);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 33:
        start = jj_consume_token(33);
        letVarName = VarName();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 38:
          type = TypeDeclaration();
          break;
        default:
          jj_la1[42] = jj_gen;
          ;
        }
        break;
      case 42:
        scoreVarName = FTScoreVar();
        break;
      default:
        jj_la1[43] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(34);
      sequence = ExprSingle();
            lvd = new LetVarDeclNode(start == null ? scoreVarName.getSourceLocation() : createSourceLocation(start));
            lvd.setLetVar(letVarName);
            lvd.setScoreVar(scoreVarName);
            lvd.setType(type);
            lvd.setSequence(sequence);
            lets.add(lvd);
    }
        LetClauseNode lc = new LetClauseNode(lets.get(0).getSourceLocation());
        lc.setVariables(lets);
        clauses.add(lc);
  }

  final public void WhereClause(List clauses) throws ParseException {
    ASTNode expr;
    Token start;
    start = jj_consume_token(44);
    expr = ExprSingle();
        WhereClauseNode wc = new WhereClauseNode(createSourceLocation(start));
        wc.setCondition(expr);
        clauses.add(wc);
  }

  final public void OrderByClause(List clauses) throws ParseException {
    Token stable = null;
    List osList;
    Token start = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 20:
      start = jj_consume_token(20);
      jj_consume_token(45);
      break;
    case 46:
      stable = jj_consume_token(46);
      jj_consume_token(20);
      jj_consume_token(45);
      break;
    default:
      jj_la1[44] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    osList = OrderSpecList();
        if (start == null) {
            start = stable;
        }
        OrderbyClauseNode oc = new OrderbyClauseNode(createSourceLocation(start));
        oc.setStable(stable != null);
        oc.setOrderSpec(osList);
        clauses.add(oc);
  }

  final public List OrderSpecList() throws ParseException {
    List osList = new ArrayList();
    OrderSpecNode os;
    os = OrderSpec();
        osList.add(os);
    label_10:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        ;
        break;
      default:
        jj_la1[45] = jj_gen;
        break label_10;
      }
      jj_consume_token(23);
      os = OrderSpec();
            osList.add(os);
    }
        {if (true) return osList;}
    throw new Error("Missing return statement in function");
  }

  final public OrderSpecNode OrderSpec() throws ParseException {
    ASTNode expr;
    OrderSpecNode os;
    expr = ExprSingle();
        os = new OrderSpecNode(expr.getSourceLocation());
        os.setExpression(expr);
    OrderModifier(os);
        {if (true) return os;}
    throw new Error("Missing return statement in function");
  }

  final public void OrderModifier(OrderSpecNode os) throws ParseException {
    Token desc = null;
    Token greatest = null;
    Token least = null;
    String collation = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case Ascending:
    case Descending:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Ascending:
        jj_consume_token(Ascending);
        break;
      case Descending:
        desc = jj_consume_token(Descending);
        break;
      default:
        jj_la1[46] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[47] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 21:
      jj_consume_token(21);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Greatest:
        greatest = jj_consume_token(Greatest);
        break;
      case Least:
        least = jj_consume_token(Least);
        break;
      default:
        jj_la1[48] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[49] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 27:
      jj_consume_token(27);
      collation = URILiteral();
      break;
    default:
      jj_la1[50] = jj_gen;
      ;
    }
        os.setDirection(desc != null ? XQueryConstants.OrderDirection.DESCENDING : XQueryConstants.OrderDirection.ASCENDING);
        os.setEmptyOrder(greatest != null ? StaticContext.EmptyOrderProperty.GREATEST : (least != null ? StaticContext.EmptyOrderProperty.LEAST : null));
        os.setCollation(collation);
  }

  final public QuantifiedExprNode QuantifiedExpr() throws ParseException {
    Token some = null;
    Token every = null;
    Token start;
    QNameNode varName;
    TypeDeclNode type = null;
    ASTNode expr;
    ASTNode satExpr;
    List quantVars = new ArrayList();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 47:
      some = jj_consume_token(47);
      break;
    case 48:
      every = jj_consume_token(48);
      break;
    default:
      jj_la1[51] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    start = jj_consume_token(33);
    varName = VarName();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 38:
      type = TypeDeclaration();
      break;
    default:
      jj_la1[52] = jj_gen;
      ;
    }
    jj_consume_token(41);
    expr = ExprSingle();
        QuantifiedVarDeclNode qv = new QuantifiedVarDeclNode(createSourceLocation(start));
        qv.setVariable(varName);
        qv.setType(type);
        qv.setSequence(expr);
        quantVars.add(qv);
    label_11:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        ;
        break;
      default:
        jj_la1[53] = jj_gen;
        break label_11;
      }
            type = null;
      jj_consume_token(23);
      jj_consume_token(33);
      varName = VarName();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 38:
        type = TypeDeclaration();
        break;
      default:
        jj_la1[54] = jj_gen;
        ;
      }
      jj_consume_token(41);
      expr = ExprSingle();
            qv = new QuantifiedVarDeclNode(createSourceLocation(start));
            qv.setVariable(varName);
            qv.setType(type);
            qv.setSequence(expr);
            quantVars.add(qv);
    }
    jj_consume_token(49);
    satExpr = ExprSingle();
        QuantifiedExprNode qe = new QuantifiedExprNode(createSourceLocation(some != null ? some : every));
        qe.setQuant(some != null ? QuantifiedExprNode.QuantifierType.SOME : QuantifiedExprNode.QuantifierType.EVERY);
        qe.setVariables(quantVars);
        qe.setSatisfiesExpr(satExpr);
        {if (true) return qe;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode TypeswitchExpr() throws ParseException {
    QNameNode varName = null;
    ASTNode switchExpr;
    ASTNode defaultExpr;
    List cases = new ArrayList();
    Token start;
    start = jj_consume_token(50);
    jj_consume_token(36);
    switchExpr = Expr();
    jj_consume_token(37);
    label_12:
    while (true) {
      CaseClause(cases);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 51:
        ;
        break;
      default:
        jj_la1[55] = jj_gen;
        break label_12;
      }
    }
    jj_consume_token(12);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 33:
      jj_consume_token(33);
      varName = VarName();
      break;
    default:
      jj_la1[56] = jj_gen;
      ;
    }
    jj_consume_token(39);
    defaultExpr = ExprSingle();
        TypeswitchExprNode te = new TypeswitchExprNode(createSourceLocation(start));
        te.setSwitchExpr(switchExpr);
        te.setCaseClauses(cases);
        te.setDefaultVar(varName);
        te.setDefaultClause(defaultExpr);
        {if (true) return te;}
    throw new Error("Missing return statement in function");
  }

  final public void CaseClause(List cases) throws ParseException {
    QNameNode varName = null;
    ASTNode expr;
    SequenceTypeNode type;
    Token start;
    start = jj_consume_token(51);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 33:
      jj_consume_token(33);
      varName = VarName();
      jj_consume_token(38);
      break;
    default:
      jj_la1[57] = jj_gen;
      ;
    }
    type = SequenceType();
    jj_consume_token(39);
    expr = ExprSingle();
        CaseClauseNode cc = new CaseClauseNode(createSourceLocation(start));
        cc.setCaseVar(varName);
        cc.setType(type);
        cc.setValueExpr(expr);
        cases.add(cc);
  }

  final public ASTNode IfExpr() throws ParseException {
    ASTNode cond;
    ASTNode thenExpr;
    ASTNode elseExpr;
    Token start;
    start = jj_consume_token(52);
    jj_consume_token(36);
    cond = Expr();
    jj_consume_token(37);
    jj_consume_token(53);
    thenExpr = ExprSingle();
    jj_consume_token(54);
    elseExpr = ExprSingle();
        IfExprNode ie = new IfExprNode(createSourceLocation(start));
        ie.setIfExpr(cond);
        ie.setThenExpr(thenExpr);
        ie.setElseExpr(elseExpr);
        {if (true) return ie;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode OrExpr() throws ParseException {
    ASTNode result;
    ASTNode temp;
    Token start;
    result = AndExpr();
    label_13:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 55:
        ;
        break;
      default:
        jj_la1[58] = jj_gen;
        break label_13;
      }
      start = jj_consume_token(55);
            binaryTokenStack.push(token);
      temp = AndExpr();
            result = createInfixExpr(start, result, temp, InfixExprNode.InfixOperator.OR);
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode AndExpr() throws ParseException {
    ASTNode result;
    ASTNode temp;
    Token start;
    result = ComparisonExpr();
    label_14:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 56:
        ;
        break;
      default:
        jj_la1[59] = jj_gen;
        break label_14;
      }
      start = jj_consume_token(56);
            binaryTokenStack.push(token);
      temp = ComparisonExpr();
            result = createInfixExpr(start, result, temp, InfixExprNode.InfixOperator.AND);
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ComparisonExpr() throws ParseException {
    ASTNode result;
    ASTNode temp;
    Pair opPair;
    result = FTContainsExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 6:
    case 72:
    case 73:
    case 74:
    case 75:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 83:
    case 84:
    case LessThanOpOrTagO:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
        opPair = ValueComp();
        break;
      case 6:
      case 72:
      case 73:
      case 74:
      case 75:
      case LessThanOpOrTagO:
        opPair = GeneralComp();
        break;
      case 82:
      case 83:
      case 84:
        opPair = NodeComp();
        break;
      default:
        jj_la1[60] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      temp = FTContainsExpr();
            result = createInfixExpr(opPair.getLeft(), result, temp, opPair.getRight());
      break;
    default:
      jj_la1[61] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

// TODO - Not yet implemented.
  final public ASTNode FTContainsExpr() throws ParseException {
    ASTNode result;
    result = RangeExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 57:
      jj_consume_token(57);
      FTSelection();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 151:
        FTIgnoreOption();
        break;
      default:
        jj_la1[62] = jj_gen;
        ;
      }
      break;
    default:
      jj_la1[63] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode RangeExpr() throws ParseException {
    ASTNode result;
    ASTNode temp;
    Token start;
    result = AdditiveExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 58:
      start = jj_consume_token(58);
            binaryTokenStack.push(token);
      temp = AdditiveExpr();
            result = createInfixExpr(start, result, temp, InfixExprNode.InfixOperator.RANGE);
      break;
    default:
      jj_la1[64] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode AdditiveExpr() throws ParseException {
    ASTNode result;
    ASTNode temp;
    InfixExprNode.InfixOperator op;
    Token start;
    result = MultiplicativeExpr();
    label_15:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Minus:
      case Plus:
        ;
        break;
      default:
        jj_la1[65] = jj_gen;
        break label_15;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Plus:
        start = jj_consume_token(Plus);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.PLUS;
        break;
      case Minus:
        start = jj_consume_token(Minus);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.MINUS;
        break;
      default:
        jj_la1[66] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      temp = MultiplicativeExpr();
            result = createInfixExpr(start, result, temp, op);
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode MultiplicativeExpr() throws ParseException {
    ASTNode result = null;
    ASTNode temp;
    InfixExprNode.InfixOperator op;
    Token start;
    result = UnionExpr();
    label_16:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 59:
      case 60:
      case 61:
      case 62:
        ;
        break;
      default:
        jj_la1[67] = jj_gen;
        break label_16;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 59:
        start = jj_consume_token(59);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.MULTIPLY;
        break;
      case 60:
        start = jj_consume_token(60);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.DIV;
        break;
      case 61:
        start = jj_consume_token(61);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.IDIV;
        break;
      case 62:
        start = jj_consume_token(62);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.MOD;
        break;
      default:
        jj_la1[68] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      temp = UnionExpr();
            result = createInfixExpr(start, result, temp, op);
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode UnionExpr() throws ParseException {
    ASTNode result = null;
    ASTNode temp;
    Token start;
    result = IntersectExceptExpr();
    label_17:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 63:
      case 64:
        ;
        break;
      default:
        jj_la1[69] = jj_gen;
        break label_17;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 63:
        start = jj_consume_token(63);
                binaryTokenStack.push(token);
        break;
      case 64:
        start = jj_consume_token(64);
                binaryTokenStack.push(token);
        break;
      default:
        jj_la1[70] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      temp = IntersectExceptExpr();
            result = createInfixExpr(start, result, temp, InfixExprNode.InfixOperator.UNION);
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode IntersectExceptExpr() throws ParseException {
    ASTNode result = null;
    ASTNode temp;
    InfixExprNode.InfixOperator op;
    Token start;
    result = InstanceofExpr();
    label_18:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 65:
      case 66:
        ;
        break;
      default:
        jj_la1[71] = jj_gen;
        break label_18;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 65:
        start = jj_consume_token(65);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.INTERSECT;
        break;
      case 66:
        start = jj_consume_token(66);
                binaryTokenStack.push(token);
                op = InfixExprNode.InfixOperator.EXCEPT;
        break;
      default:
        jj_la1[72] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      temp = InstanceofExpr();
            result = createInfixExpr(start, result, temp, op);
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode InstanceofExpr() throws ParseException {
    ASTNode result;
    SequenceTypeNode type;
    Token start;
    result = TreatExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 67:
      start = jj_consume_token(67);
      jj_consume_token(68);
      type = SequenceType();
            result = createTypeExpr(start, result, type, TypeExprNode.TypeOperator.INSTANCEOF);
      break;
    default:
      jj_la1[73] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode TreatExpr() throws ParseException {
    ASTNode result;
    SequenceTypeNode type;
    Token start;
    result = CastableExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 69:
      start = jj_consume_token(69);
      jj_consume_token(38);
      type = SequenceType();
            result = createTypeExpr(start, result, type, TypeExprNode.TypeOperator.TREAT);
      break;
    default:
      jj_la1[74] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CastableExpr() throws ParseException {
    ASTNode result;
    SingleTypeNode type;
    Token start;
    result = CastExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 70:
      start = jj_consume_token(70);
      jj_consume_token(38);
      type = SingleType();
            result = createTypeExpr(start, result, type, TypeExprNode.TypeOperator.CASTABLE);
      break;
    default:
      jj_la1[75] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CastExpr() throws ParseException {
    ASTNode result;
    SingleTypeNode type;
    Token start;
    result = UnaryExpr();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 71:
      start = jj_consume_token(71);
      jj_consume_token(38);
      type = SingleType();
            result = createTypeExpr(start, result, type, TypeExprNode.TypeOperator.CAST);
      break;
    default:
      jj_la1[76] = jj_gen;
      ;
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode UnaryExpr() throws ParseException {
    ASTNode expr;
    List signs = new ArrayList();
    Token start = null;
    label_19:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Minus:
      case Plus:
        ;
        break;
      default:
        jj_la1[77] = jj_gen;
        break label_19;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Minus:
        start = jj_consume_token(Minus);
            signs.add(UnaryExprNode.Sign.MINUS);
        break;
      case Plus:
        start = jj_consume_token(Plus);
            signs.add(UnaryExprNode.Sign.PLUS);
        break;
      default:
        jj_la1[78] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
    expr = ValueExpr();
        if (start != null) {
            UnaryExprNode ue = new UnaryExprNode(createSourceLocation(start));
            ue.setSigns(signs);
            ue.setExpr(expr);
            expr = ue;
        }
        {if (true) return expr;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ValueExpr() throws ParseException {
    ASTNode expr;
    if (jj_2_25(2)) {
      expr = ValidateExpr();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 33:
      case 35:
      case 36:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 102:
      case 105:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case IntegerLiteral:
      case DecimalLiteral:
      case DoubleLiteral:
      case StringLiteral:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case LessThanOpOrTagO:
      case StartTagOpen:
      case ProcessingInstructionStart:
      case ProcessingInstructionStartForElementContent:
      case XmlCommentStart:
      case XmlCommentStartForElementContent:
      case Slash:
      case SlashSlash:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        expr = PathExpr();
        break;
      case PragmaOpen:
        expr = ExtensionExpr();
        break;
      default:
        jj_la1[79] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return expr;}
    throw new Error("Missing return statement in function");
  }

  final public Pair GeneralComp() throws ParseException {
    Token start;
    InfixExprNode.InfixOperator op;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 6:
      start = jj_consume_token(6);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.GENERAL_EQ;
      break;
    case 72:
      start = jj_consume_token(72);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.GENERAL_NE;
      break;
    case LessThanOpOrTagO:
      start = jj_consume_token(LessThanOpOrTagO);
            /* Careful! */
            token_source.SwitchTo(DEFAULT); token_source.stateStack.pop();
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.GENERAL_LT;
      break;
    case 73:
      start = jj_consume_token(73);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.GENERAL_LE;
      break;
    case 74:
      start = jj_consume_token(74);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.GENERAL_GT;
      break;
    case 75:
      start = jj_consume_token(75);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.GENERAL_GE;
      break;
    default:
      jj_la1[80] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return Pair. of(start, op);}
    throw new Error("Missing return statement in function");
  }

  final public Pair ValueComp() throws ParseException {
    Token start;
    InfixExprNode.InfixOperator op;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 76:
      start = jj_consume_token(76);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.VALUE_EQ;
      break;
    case 77:
      start = jj_consume_token(77);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.VALUE_NE;
      break;
    case 78:
      start = jj_consume_token(78);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.VALUE_LT;
      break;
    case 79:
      start = jj_consume_token(79);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.VALUE_LE;
      break;
    case 80:
      start = jj_consume_token(80);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.VALUE_GT;
      break;
    case 81:
      start = jj_consume_token(81);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.VALUE_GE;
      break;
    default:
      jj_la1[81] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return Pair. of(start, op);}
    throw new Error("Missing return statement in function");
  }

  final public Pair NodeComp() throws ParseException {
    Token start;
    InfixExprNode.InfixOperator op;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 82:
      start = jj_consume_token(82);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.IS;
      break;
    case 83:
      start = jj_consume_token(83);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.PRECEDES;
      break;
    case 84:
      start = jj_consume_token(84);
            binaryTokenStack.push(token);
            op = InfixExprNode.InfixOperator.FOLLOWS;
      break;
    default:
      jj_la1[82] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return Pair. of(start, op);}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ValidateExpr() throws ParseException {
    ASTNode expr;
    XQueryConstants.ValidationMode mode = null;
    Token start;
    start = jj_consume_token(85);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 86:
    case 87:
      mode = ValidationMode();
      break;
    default:
      jj_la1[83] = jj_gen;
      ;
    }
    jj_consume_token(LbraceExprEnclosure);
    expr = Expr();
    jj_consume_token(Rbrace);
        ValidateExprNode ve = new ValidateExprNode(createSourceLocation(start));
        ve.setMode(mode);
        ve.setExpr(expr);
        {if (true) return ve;}
    throw new Error("Missing return statement in function");
  }

  final public XQueryConstants.ValidationMode ValidationMode() throws ParseException {
    Token l = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 86:
      l = jj_consume_token(86);
      break;
    case 87:
      jj_consume_token(87);
      break;
    default:
      jj_la1[84] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return l != null ? XQueryConstants.ValidationMode.LAX : XQueryConstants.ValidationMode.STRICT;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ExtensionExpr() throws ParseException {
    ASTNode expr = null;
    PragmaNode pragma;
    List pragmas = new ArrayList();
    label_20:
    while (true) {
      pragma = Pragma();
            pragmas.add(pragma);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PragmaOpen:
        ;
        break;
      default:
        jj_la1[85] = jj_gen;
        break label_20;
      }
    }
    jj_consume_token(LbraceExprEnclosure);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case Minus:
    case Plus:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case PragmaOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case Slash:
    case SlashSlash:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      expr = Expr();
      break;
    default:
      jj_la1[86] = jj_gen;
      ;
    }
    jj_consume_token(Rbrace);
        ExtensionExprNode ee = new ExtensionExprNode(pragmas.get(0).getSourceLocation());
        ee.setPragmas(pragmas);
        ee.setExpr(expr);
        {if (true) return ee;}
    throw new Error("Missing return statement in function");
  }

  final public PragmaNode Pragma() throws ParseException {
    Token qTok;
    String str = null;
    Token start;
    start = jj_consume_token(PragmaOpen);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case S:
      jj_consume_token(S);
      break;
    default:
      jj_la1[87] = jj_gen;
      ;
    }
    qTok = jj_consume_token(QNameForPragma);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case SForPragma:
      jj_consume_token(SForPragma);
      str = PragmaContents();
      break;
    default:
      jj_la1[88] = jj_gen;
      ;
    }
    jj_consume_token(PragmaClose);
        PragmaNode p = new PragmaNode(createSourceLocation(start));
        p.setQname(createQName(qTok));
        p.setPragmaValue(str);
        {if (true) return p;}
    throw new Error("Missing return statement in function");
  }

  final public String PragmaContents() throws ParseException {
    StringBuilder buffer = new StringBuilder();
    Token t;
    label_21:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case ExtensionContentChar:
        ;
        break;
      default:
        jj_la1[89] = jj_gen;
        break label_21;
      }
      t = jj_consume_token(ExtensionContentChar);
            buffer.append(t.image);
    }
        {if (true) return buffer.toString();}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode PathExpr() throws ParseException {
    List paths = null;
    Token s = null;
    Token ss = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case Slash:
      s = jj_consume_token(Slash);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 33:
      case 35:
      case 36:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 102:
      case 105:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case IntegerLiteral:
      case DecimalLiteral:
      case DoubleLiteral:
      case StringLiteral:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case LessThanOpOrTagO:
      case StartTagOpen:
      case ProcessingInstructionStart:
      case ProcessingInstructionStartForElementContent:
      case XmlCommentStart:
      case XmlCommentStartForElementContent:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        paths = RelativePathExpr();
        break;
      default:
        jj_la1[90] = jj_gen;
        ;
      }
      break;
    case SlashSlash:
      ss = jj_consume_token(SlashSlash);
      paths = RelativePathExpr();
      break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      paths = RelativePathExpr();
      break;
    default:
      jj_la1[91] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        SourceLocation loc = null;
        XQueryConstants.PathType pType;
        if (s != null) {
            loc = createSourceLocation(s);
            pType = XQueryConstants.PathType.SLASH;
        } else if (ss != null) {
            loc = createSourceLocation(ss);
            pType = XQueryConstants.PathType.SLASH_SLASH;
        } else {
            loc = paths.get(0).getSourceLocation();
            pType = null;
        }
        PathExprNode pe = new PathExprNode(loc);
        pe.setPathType(pType);
        pe.setPaths(paths);
        {if (true) return pe;}
    throw new Error("Missing return statement in function");
  }

  final public List RelativePathExpr() throws ParseException {
    ASTNode expr;
    Token start;
    XQueryConstants.PathType sep;
    List paths = new ArrayList();
    expr = StepExpr();
        RelativePathExprNode rp = new RelativePathExprNode(expr.getSourceLocation());
        rp.setPath(expr);
        paths.add(rp);
    label_22:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Slash:
      case SlashSlash:
        ;
        break;
      default:
        jj_la1[92] = jj_gen;
        break label_22;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case Slash:
        start = jj_consume_token(Slash);
                sep = XQueryConstants.PathType.SLASH;
        break;
      case SlashSlash:
        start = jj_consume_token(SlashSlash);
                sep = XQueryConstants.PathType.SLASH_SLASH;
        break;
      default:
        jj_la1[93] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      expr = StepExpr();
            rp = new RelativePathExprNode(createSourceLocation(start));
            rp.setPath(expr);
            rp.setPathType(sep);
            paths.add(rp);
    }
        {if (true) return paths;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode StepExpr() throws ParseException {
    ASTNode expr;
    if (jj_2_26(3)) {
      expr = FilterExpr();
        {if (true) return expr;}
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 102:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        expr = AxisStep();
        {if (true) return expr;}
        break;
      default:
        jj_la1[94] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
    throw new Error("Missing return statement in function");
  }

  final public ASTNode AxisStep() throws ParseException {
    AxisStepNode axis;
    List predicates;
    if (jj_2_27(2)) {
      axis = ReverseStep();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        axis = ForwardStep();
        break;
      default:
        jj_la1[95] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
    predicates = PredicateList();
        axis.setPredicates(predicates);
        {if (true) return axis;}
    throw new Error("Missing return statement in function");
  }

  final public AxisStepNode ForwardStep() throws ParseException {
    Pair aPair;
    AxisStepNode expr;
    ASTNode nt;
    if (jj_2_28(2)) {
      aPair = ForwardAxis();
      nt = NodeTest();
        AxisStepNode as = new AxisStepNode(createSourceLocation(aPair.getLeft()));
        as.setAxis(aPair.getRight());
        as.setNodeTest(nt);
        {if (true) return as;}
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        expr = AbbrevForwardStep();
        {if (true) return expr;}
        break;
      default:
        jj_la1[96] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
    throw new Error("Missing return statement in function");
  }

  final public Pair ForwardAxis() throws ParseException {
    AxisStepNode.Axis axis;
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 88:
      t = jj_consume_token(88);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.CHILD;
      break;
    case 90:
      t = jj_consume_token(90);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.DESCENDANT;
      break;
    case 91:
      t = jj_consume_token(91);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.ATTRIBUTE;
      break;
    case 92:
      t = jj_consume_token(92);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.SELF;
      break;
    case 93:
      t = jj_consume_token(93);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.DESCENDANT_OR_SELF;
      break;
    case 94:
      t = jj_consume_token(94);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.FOLLOWING_SIBLING;
      break;
    case 95:
      t = jj_consume_token(95);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.FOLLOWING;
      break;
    default:
      jj_la1[97] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return Pair. of(t, axis);}
    throw new Error("Missing return statement in function");
  }

  final public AxisStepNode AbbrevForwardStep() throws ParseException {
    Token t = null;
    ASTNode nodeTest;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 96:
      t = jj_consume_token(96);
      break;
    default:
      jj_la1[98] = jj_gen;
      ;
    }
    nodeTest = NodeTest();
        AxisStepNode.Axis axis = t == null ? AxisStepNode.Axis.ABBREV : AxisStepNode.Axis.ABBREV_ATTRIBUTE;
        AxisStepNode as = new AxisStepNode(t != null ? createSourceLocation(t) : nodeTest.getSourceLocation());
        as.setAxis(axis);
        as.setNodeTest(nodeTest);
        {if (true) return as;}
    throw new Error("Missing return statement in function");
  }

  final public AxisStepNode ReverseStep() throws ParseException {
    Pair aPair;
    ASTNode nt;
    AxisStepNode expr;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
      aPair = ReverseAxis();
      nt = NodeTest();
        AxisStepNode as = new AxisStepNode(createSourceLocation(aPair.getLeft()));
        as.setAxis(aPair.getRight());
        as.setNodeTest(nt);
        {if (true) return as;}
      break;
    case 102:
      expr = AbbrevReverseStep();
        {if (true) return expr;}
      break;
    default:
      jj_la1[99] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public Pair ReverseAxis() throws ParseException {
    AxisStepNode.Axis axis;
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 97:
      t = jj_consume_token(97);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.PARENT;
      break;
    case 98:
      t = jj_consume_token(98);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.ANCESTOR;
      break;
    case 99:
      t = jj_consume_token(99);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.PRECEDING_SIBLING;
      break;
    case 100:
      t = jj_consume_token(100);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.PRECEDING;
      break;
    case 101:
      t = jj_consume_token(101);
      jj_consume_token(89);
            axis = AxisStepNode.Axis.ANCESTOR_OR_SELF;
      break;
    default:
      jj_la1[100] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return Pair. of(t, axis);}
    throw new Error("Missing return statement in function");
  }

  final public AxisStepNode AbbrevReverseStep() throws ParseException {
    Token start;
    start = jj_consume_token(102);
        AxisStepNode as = new AxisStepNode(createSourceLocation(start));
        as.setAxis(AxisStepNode.Axis.DOT_DOT);
        {if (true) return as;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode NodeTest() throws ParseException {
    ASTNode test;
    if (jj_2_29(2)) {
      test = KindTest();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
      case NCNameColonStar:
      case StarColonNCName:
        test = NameTest();
        break;
      default:
        jj_la1[101] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return test;}
    throw new Error("Missing return statement in function");
  }

  final public NameTestNode NameTest() throws ParseException {
    QNameNode name;
    NameTestNode nt;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      name = QName();
            nt = new NameTestNode(name.getSourceLocation());
            nt.setPrefix(name.getPrefix());
            nt.setLocalName(name.getLocalName());
      break;
    case 59:
    case NCNameColonStar:
    case StarColonNCName:
      nt = Wildcard();
      break;
    default:
      jj_la1[102] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return nt;}
    throw new Error("Missing return statement in function");
  }

  final public NameTestNode Wildcard() throws ParseException {
    Token t;
    String prefix = null;
    String local = null;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 59:
      t = jj_consume_token(59);
      break;
    case NCNameColonStar:
      t = jj_consume_token(NCNameColonStar);
            int idx = t.image.indexOf(':');
            prefix = t.image.substring(0, idx);
      break;
    case StarColonNCName:
      t = jj_consume_token(StarColonNCName);
            idx = t.image.indexOf(':');
            local = t.image.substring(idx + 1);
      break;
    default:
      jj_la1[103] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        NameTestNode nt = new NameTestNode(createSourceLocation(t));
        nt.setPrefix(prefix);
        nt.setLocalName(local);
        {if (true) return nt;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode FilterExpr() throws ParseException {
    ASTNode expr;
    List pList;
    expr = PrimaryExpr();
    pList = PredicateList();
        FilterExprNode fe = new FilterExprNode(expr.getSourceLocation());
        fe.setExpr(expr);
        fe.setPredicates(pList);
        {if (true) return fe;}
    throw new Error("Missing return statement in function");
  }

  final public List PredicateList() throws ParseException {
    ASTNode predicate;
    List predicates = new ArrayList();
    label_23:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 103:
        ;
        break;
      default:
        jj_la1[104] = jj_gen;
        break label_23;
      }
      predicate = Predicate();
            predicates.add(predicate);
    }
        {if (true) return predicates;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode Predicate() throws ParseException {
    ASTNode expr;
    jj_consume_token(103);
    expr = Expr();
    jj_consume_token(104);
        {if (true) return expr;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode PrimaryExpr() throws ParseException {
    ASTNode expr;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
      expr = Literal();
      break;
    case 33:
      expr = VarRef();
      break;
    case 36:
      expr = ParenthesizedExpr();
      break;
    case 105:
      expr = ContextItemExpr();
      break;
    default:
      jj_la1[105] = jj_gen;
      if (jj_2_30(2)) {
        expr = FunctionCall();
      } else if (jj_2_31(2)) {
        expr = OrderedExpr();
      } else if (jj_2_32(2)) {
        expr = UnorderedExpr();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 13:
        case 91:
        case 106:
        case 107:
        case 108:
        case 109:
        case LessThanOpOrTagO:
        case StartTagOpen:
        case ProcessingInstructionStart:
        case ProcessingInstructionStartForElementContent:
        case XmlCommentStart:
        case XmlCommentStartForElementContent:
          expr = Constructor();
          break;
        default:
          jj_la1[106] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
    }
        {if (true) return expr;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode Literal() throws ParseException {
    ASTNode expr;
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
      expr = NumericLiteral();
        {if (true) return expr;}
      break;
    case StringLiteral:
      t = jj_consume_token(StringLiteral);
        LiteralNode l = new LiteralNode(createSourceLocation(t));
        l.setImage(t.image);
        l.setType(LiteralNode.LiteralType.STRING);
        {if (true) return l;}
      break;
    default:
      jj_la1[107] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public ASTNode NumericLiteral() throws ParseException {
    Token t;
    LiteralNode.LiteralType type;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IntegerLiteral:
      t = jj_consume_token(IntegerLiteral);
            type = LiteralNode.LiteralType.INTEGER;
      break;
    case DecimalLiteral:
      t = jj_consume_token(DecimalLiteral);
            type = LiteralNode.LiteralType.DECIMAL;
      break;
    case DoubleLiteral:
      t = jj_consume_token(DoubleLiteral);
            type = LiteralNode.LiteralType.DOUBLE;
      break;
    default:
      jj_la1[108] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        LiteralNode l = new LiteralNode(createSourceLocation(t));
        l.setImage(t.image);
        l.setType(type);
        {if (true) return l;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode VarRef() throws ParseException {
    QNameNode name;
    Token start;
    start = jj_consume_token(33);
    name = VarName();
        VarRefNode vr = new VarRefNode(createSourceLocation(start));
        vr.setVariable(name);
        {if (true) return vr;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode VarName() throws ParseException {
    QNameNode qname;
    qname = QName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ParenthesizedExpr() throws ParseException {
    ASTNode expr = null;
    Token start;
    start = jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case Minus:
    case Plus:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case PragmaOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case Slash:
    case SlashSlash:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      expr = Expr();
      break;
    default:
      jj_la1[109] = jj_gen;
      ;
    }
    jj_consume_token(37);
        ParenthesizedExprNode pe = new ParenthesizedExprNode(createSourceLocation(start));
        pe.setExpr(expr);
        {if (true) return pe;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ContextItemExpr() throws ParseException {
    Token start;
    start = jj_consume_token(105);
        {if (true) return new ContextItemExprNode(createSourceLocation(start));}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode OrderedExpr() throws ParseException {
    ASTNode expr;
    Token start;
    start = jj_consume_token(18);
    jj_consume_token(LbraceExprEnclosure);
    expr = Expr();
    jj_consume_token(Rbrace);
        OrderedExprNode ue = new OrderedExprNode(createSourceLocation(start));
        ue.setExpr(expr);
        {if (true) return ue;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode UnorderedExpr() throws ParseException {
    ASTNode expr;
    Token start;
    start = jj_consume_token(19);
    jj_consume_token(LbraceExprEnclosure);
    expr = Expr();
    jj_consume_token(Rbrace);
        UnorderedExprNode ue = new UnorderedExprNode(createSourceLocation(start));
        ue.setExpr(expr);
        {if (true) return ue;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode FunctionCall() throws ParseException {
    QNameNode qname;
    List args = new ArrayList();
    ASTNode expr;
    qname = FunctionQName();
    jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case Minus:
    case Plus:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case PragmaOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case Slash:
    case SlashSlash:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      expr = ExprSingle();
            args.add(expr);
      label_24:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 23:
          ;
          break;
        default:
          jj_la1[110] = jj_gen;
          break label_24;
        }
        jj_consume_token(23);
        expr = ExprSingle();
                args.add(expr);
      }
      break;
    default:
      jj_la1[111] = jj_gen;
      ;
    }
    jj_consume_token(37);
        FunctionExprNode fe = new FunctionExprNode(qname.getSourceLocation());
        fe.setName(qname);
        fe.setArguments(args);
        {if (true) return fe;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode Constructor() throws ParseException {
    ASTNode result;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LessThanOpOrTagO:
    case StartTagOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
      result = DirectConstructor();
      break;
    case 13:
    case 91:
    case 106:
    case 107:
    case 108:
    case 109:
      result = ComputedConstructor();
      break;
    default:
      jj_la1[112] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode DirectConstructor() throws ParseException {
    ASTNode result;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LessThanOpOrTagO:
    case StartTagOpen:
      result = DirElemConstructor();
      break;
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
      result = DirCommentConstructor();
      break;
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
      result = DirPIConstructor();
      break;
    default:
      jj_la1[113] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode DirElemConstructor() throws ParseException {
    Token start;
    Token startName;
    Token endName = null;
    List attrs;
    List contents = new ArrayList();
    ASTNode content;
    StringBuilder buffer = new StringBuilder();
    Token bufferStart = null;
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LessThanOpOrTagO:
      start = jj_consume_token(LessThanOpOrTagO);
      break;
    case StartTagOpen:
      start = jj_consume_token(StartTagOpen);
      break;
    default:
      jj_la1[114] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    startName = jj_consume_token(TagQName);
    attrs = DirAttributeList();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EmptyTagClose:
      jj_consume_token(EmptyTagClose);
      break;
    case StartTagClose:
      jj_consume_token(StartTagClose);
      label_25:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PredefinedEntityRef:
        case Lbrace:
        case LbraceExprEnclosure:
        case LCurlyBraceEscape:
        case RCurlyBraceEscape:
        case LessThanOpOrTagO:
        case StartTagOpen:
        case ElementContentChar:
        case ProcessingInstructionStart:
        case ProcessingInstructionStartForElementContent:
        case CdataSectionStart:
        case CdataSectionStartForElementContent:
        case XmlCommentStart:
        case XmlCommentStartForElementContent:
        case CharRef:
          ;
          break;
        default:
          jj_la1[115] = jj_gen;
          break label_25;
        }
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case Lbrace:
        case LbraceExprEnclosure:
        case LessThanOpOrTagO:
        case StartTagOpen:
        case ProcessingInstructionStart:
        case ProcessingInstructionStartForElementContent:
        case CdataSectionStart:
        case CdataSectionStartForElementContent:
        case XmlCommentStart:
        case XmlCommentStartForElementContent:
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case Lbrace:
          case LbraceExprEnclosure:
            content = EnclosedExpr();
            break;
          case LessThanOpOrTagO:
          case StartTagOpen:
          case ProcessingInstructionStart:
          case ProcessingInstructionStartForElementContent:
          case XmlCommentStart:
          case XmlCommentStartForElementContent:
            content = DirectConstructor();
            break;
          case CdataSectionStart:
          case CdataSectionStartForElementContent:
            content = CDataSection();
            break;
          default:
            jj_la1[116] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
                    if (bufferStart != null) {
                        ContentCharsNode c = new ContentCharsNode(createSourceLocation(bufferStart));
                        c.setContent(buffer.toString());
                        contents.add(c);
                        buffer = new StringBuilder();
                        bufferStart = null;
                    }
                    contents.add(content);
          break;
        case PredefinedEntityRef:
          t = jj_consume_token(PredefinedEntityRef);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    String ref = t.image;
                    if ("<".equals(ref)) {
                        buffer.append('<');
                    } else if (">".equals(ref)) {
                        buffer.append('>');
                    } else if ("&".equals(ref)) {
                        buffer.append('&');
                    } else if ("'".equals(ref)) {
                        buffer.append('\u005c'');
                    } else if (""".equals(ref)) {
                        buffer.append('"');
                    }
          break;
        case CharRef:
          t = jj_consume_token(CharRef);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    ref = t.image.substring(2, t.image.length() - 1);
                    try {
                        buffer.appendCodePoint(ref.charAt(0) == 'x' ? Integer.parseInt(ref.substring(1), 16) : Integer.parseInt(ref));
                    } catch(NumberFormatException e) {
                        exceptions.add(new SystemException(ErrorCode.XQST0090, createSourceLocation(t)));
                        {if (true) throw new ParseException();}
                    }
          break;
        case LCurlyBraceEscape:
          t = jj_consume_token(LCurlyBraceEscape);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append("{");
          break;
        case RCurlyBraceEscape:
          t = jj_consume_token(RCurlyBraceEscape);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append("}");
          break;
        case ElementContentChar:
          t = jj_consume_token(ElementContentChar);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append(t.image);
          break;
        default:
          jj_la1[117] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(EndTagOpen);
      endName = jj_consume_token(EndTagQName);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case S:
        jj_consume_token(S);
        break;
      default:
        jj_la1[118] = jj_gen;
        ;
      }
      jj_consume_token(EndTagClose);
      break;
    default:
      jj_la1[119] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        if (bufferStart != null) {
            ContentCharsNode c = new ContentCharsNode(createSourceLocation(bufferStart));
            c.setContent(buffer.toString());
            contents.add(c);
        }
        DirectElementConstructorNode elem = new DirectElementConstructorNode(createSourceLocation(start));
        elem.setStartTagName(createQName(startName));
        elem.setEndTagName(endName == null ? null : createQName(endName));
        elem.setAttributes(attrs);
        elem.setContent(contents);
        {if (true) return elem;}
    throw new Error("Missing return statement in function");
  }

  final public List DirAttributeList() throws ParseException {
    List attrs = new ArrayList();
    Token name;
    List value;
    label_26:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case S:
        ;
        break;
      default:
        jj_la1[120] = jj_gen;
        break label_26;
      }
      jj_consume_token(S);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TagQName:
        name = jj_consume_token(TagQName);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case S:
          jj_consume_token(S);
          break;
        default:
          jj_la1[121] = jj_gen;
          ;
        }
        jj_consume_token(ValueIndicator);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case S:
          jj_consume_token(S);
          break;
        default:
          jj_la1[122] = jj_gen;
          ;
        }
        value = DirAttributeValue();
                DirectAttributeConstructorNode attr = new DirectAttributeConstructorNode(createSourceLocation(name));
                attr.setName(createQName(name));
                attr.setValue(value);
                attrs.add(attr);
        break;
      default:
        jj_la1[123] = jj_gen;
        ;
      }
    }
        {if (true) return attrs;}
    throw new Error("Missing return statement in function");
  }

  final public List DirAttributeValue() throws ParseException {
    List contents = new ArrayList();
    ASTNode content;
    StringBuilder buffer = new StringBuilder();
    Token bufferStart = null;
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case OpenQuot:
      jj_consume_token(OpenQuot);
      label_27:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PredefinedEntityRef:
        case EscapeQuot:
        case Lbrace:
        case LbraceExprEnclosure:
        case LCurlyBraceEscape:
        case RCurlyBraceEscape:
        case QuotAttrContentChar:
        case CharRef:
          ;
          break;
        default:
          jj_la1[124] = jj_gen;
          break label_27;
        }
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case EscapeQuot:
          t = jj_consume_token(EscapeQuot);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append('"');
          break;
        case QuotAttrContentChar:
          t = jj_consume_token(QuotAttrContentChar);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append(t.image);
          break;
        case Lbrace:
        case LbraceExprEnclosure:
          content = EnclosedExpr();
                    if (bufferStart != null) {
                        ContentCharsNode c = new ContentCharsNode(createSourceLocation(bufferStart));
                        c.setContent(buffer.toString());
                        contents.add(c);
                        buffer = new StringBuilder();
                        bufferStart = null;
                    }
                    contents.add(content);
          break;
        case PredefinedEntityRef:
          t = jj_consume_token(PredefinedEntityRef);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    String ref = t.image;
                    if ("<".equals(ref)) {
                        buffer.append('<');
                    } else if (">".equals(ref)) {
                        buffer.append('>');
                    } else if ("&".equals(ref)) {
                        buffer.append('&');
                    } else if ("'".equals(ref)) {
                        buffer.append('\u005c'');
                    } else if (""".equals(ref)) {
                        buffer.append('"');
                    }
          break;
        case CharRef:
          t = jj_consume_token(CharRef);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    ref = t.image.substring(2, t.image.length() - 1);
                    buffer.appendCodePoint(ref.charAt(0) == 'x' ? Integer.parseInt(ref.substring(1), 16) : Integer.parseInt(ref));
          break;
        case LCurlyBraceEscape:
          t = jj_consume_token(LCurlyBraceEscape);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append("{");
          break;
        case RCurlyBraceEscape:
          t = jj_consume_token(RCurlyBraceEscape);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append("}");
          break;
        default:
          jj_la1[125] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(CloseQuot);
      break;
    case OpenApos:
      jj_consume_token(OpenApos);
      label_28:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PredefinedEntityRef:
        case EscapeApos:
        case Lbrace:
        case LbraceExprEnclosure:
        case LCurlyBraceEscape:
        case RCurlyBraceEscape:
        case AposAttrContentChar:
        case CharRef:
          ;
          break;
        default:
          jj_la1[126] = jj_gen;
          break label_28;
        }
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case EscapeApos:
          t = jj_consume_token(EscapeApos);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append('\u005c'');
          break;
        case AposAttrContentChar:
          t = jj_consume_token(AposAttrContentChar);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append(t.image);
          break;
        case Lbrace:
        case LbraceExprEnclosure:
          content = EnclosedExpr();
                    if (bufferStart != null) {
                        ContentCharsNode c = new ContentCharsNode(createSourceLocation(bufferStart));
                        c.setContent(buffer.toString());
                        contents.add(c);
                        buffer = new StringBuilder();
                        bufferStart = null;
                    }
                    contents.add(content);
          break;
        case PredefinedEntityRef:
          t = jj_consume_token(PredefinedEntityRef);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    String ref = t.image;
                    if ("<".equals(ref)) {
                        buffer.append('<');
                    } else if (">".equals(ref)) {
                        buffer.append('>');
                    } else if ("&".equals(ref)) {
                        buffer.append('&');
                    } else if ("'".equals(ref)) {
                        buffer.append('\u005c'');
                    } else if (""".equals(ref)) {
                        buffer.append('"');
                    }
          break;
        case CharRef:
          t = jj_consume_token(CharRef);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    ref = t.image.substring(2, t.image.length() - 1);
                    buffer.appendCodePoint(ref.charAt(0) == 'x' ? Integer.parseInt(ref.substring(1), 16) : Integer.parseInt(ref));
          break;
        case LCurlyBraceEscape:
          t = jj_consume_token(LCurlyBraceEscape);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append("{");
          break;
        case RCurlyBraceEscape:
          t = jj_consume_token(RCurlyBraceEscape);
                    if (bufferStart == null) {
                        bufferStart = t;
                    }
                    buffer.append("}");
          break;
        default:
          jj_la1[127] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(CloseApos);
      break;
    default:
      jj_la1[128] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        if (bufferStart != null) {
            ContentCharsNode c = new ContentCharsNode(createSourceLocation(bufferStart));
            c.setContent(buffer.toString());
            contents.add(c);
        }
        {if (true) return contents;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode DirCommentConstructor() throws ParseException {
    String contents;
    Token start;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case XmlCommentStartForElementContent:
      start = jj_consume_token(XmlCommentStartForElementContent);
      break;
    case XmlCommentStart:
      start = jj_consume_token(XmlCommentStart);
      break;
    default:
      jj_la1[129] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    contents = DirCommentContents();
    jj_consume_token(XmlCommentEnd);
        DirectCommentConstructorNode c = new DirectCommentConstructorNode(createSourceLocation(start));
        c.setContent(contents);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public String DirCommentContents() throws ParseException {
    StringBuilder buffer = new StringBuilder();
    Token t;
    label_29:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CommentContentChar:
      case CommentContentCharDash:
        ;
        break;
      default:
        jj_la1[130] = jj_gen;
        break label_29;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CommentContentChar:
        t = jj_consume_token(CommentContentChar);
        break;
      case CommentContentCharDash:
        t = jj_consume_token(CommentContentCharDash);
        break;
      default:
        jj_la1[131] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
            buffer.append(t.image);
    }
        {if (true) return buffer.toString();}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode DirPIConstructor() throws ParseException {
    Token target;
    String contents = null;
    Token start;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case ProcessingInstructionStartForElementContent:
      start = jj_consume_token(ProcessingInstructionStartForElementContent);
      break;
    case ProcessingInstructionStart:
      start = jj_consume_token(ProcessingInstructionStart);
      break;
    default:
      jj_la1[132] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    target = jj_consume_token(PITarget);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case SForPI:
      jj_consume_token(SForPI);
      contents = DirPIContents();
      break;
    default:
      jj_la1[133] = jj_gen;
      ;
    }
    jj_consume_token(ProcessingInstructionEnd);
        DirectPIConstructorNode n = new DirectPIConstructorNode(createSourceLocation(start));
        n.setTarget(target.image);
        n.setContent(contents);
        {if (true) return n;}
    throw new Error("Missing return statement in function");
  }

  final public String DirPIContents() throws ParseException {
    StringBuilder buffer = new StringBuilder();
    Token t;
    label_30:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PIContentChar:
        ;
        break;
      default:
        jj_la1[134] = jj_gen;
        break label_30;
      }
      t = jj_consume_token(PIContentChar);
            buffer.append(t.image);
    }
        {if (true) return buffer.toString();}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CDataSection() throws ParseException {
    String contents;
    Token start;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case CdataSectionStartForElementContent:
      start = jj_consume_token(CdataSectionStartForElementContent);
      break;
    case CdataSectionStart:
      start = jj_consume_token(CdataSectionStart);
      break;
    default:
      jj_la1[135] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    contents = CDataSectionContents();
    jj_consume_token(CdataSectionEnd);
        CDataSectionNode c = new CDataSectionNode(createSourceLocation(start));
        c.setContent(contents);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public String CDataSectionContents() throws ParseException {
    StringBuilder buffer = new StringBuilder();
    Token t;
    label_31:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CDataSectionChar:
        ;
        break;
      default:
        jj_la1[136] = jj_gen;
        break label_31;
      }
      t = jj_consume_token(CDataSectionChar);
            buffer.append(t.image);
    }
        {if (true) return buffer.toString();}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ComputedConstructor() throws ParseException {
    ASTNode result;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 106:
      result = CompDocConstructor();
      break;
    case 13:
      result = CompElemConstructor();
      break;
    case 91:
      result = CompAttrConstructor();
      break;
    case 107:
      result = CompTextConstructor();
      break;
    case 108:
      result = CompCommentConstructor();
      break;
    case 109:
      result = CompPIConstructor();
      break;
    default:
      jj_la1[137] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CompDocConstructor() throws ParseException {
    Token start;
    ASTNode content;
    start = jj_consume_token(106);
    jj_consume_token(LbraceExprEnclosure);
    content = Expr();
    jj_consume_token(Rbrace);
        ComputedDocumentConstructorNode c = new ComputedDocumentConstructorNode(createSourceLocation(start));
        c.setContent(content);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CompElemConstructor() throws ParseException {
    Token start;
    ASTNode name;
    ASTNode content = null;
    start = jj_consume_token(13);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      name = QName();
      break;
    case LbraceExprEnclosure:
      jj_consume_token(LbraceExprEnclosure);
      name = Expr();
      jj_consume_token(Rbrace);
      break;
    default:
      jj_la1[138] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(LbraceExprEnclosure);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case Minus:
    case Plus:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case PragmaOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case Slash:
    case SlashSlash:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      content = ContentExpr();
      break;
    default:
      jj_la1[139] = jj_gen;
      ;
    }
    jj_consume_token(Rbrace);
        ComputedElementConstructorNode c = new ComputedElementConstructorNode(createSourceLocation(start));
        c.setName(name);
        c.setContent(content);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ContentExpr() throws ParseException {
    ASTNode result;
    result = Expr();
        {if (true) return result;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CompAttrConstructor() throws ParseException {
    Token start;
    ASTNode name;
    ASTNode value = null;
    start = jj_consume_token(91);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      name = QName();
      break;
    case LbraceExprEnclosure:
      jj_consume_token(LbraceExprEnclosure);
      name = Expr();
      jj_consume_token(Rbrace);
      break;
    default:
      jj_la1[140] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(LbraceExprEnclosure);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case Minus:
    case Plus:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case PragmaOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case Slash:
    case SlashSlash:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      value = Expr();
      break;
    default:
      jj_la1[141] = jj_gen;
      ;
    }
    jj_consume_token(Rbrace);
        ComputedAttributeConstructorNode c = new ComputedAttributeConstructorNode(createSourceLocation(start));
        c.setName(name);
        c.setContent(value);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CompTextConstructor() throws ParseException {
    Token start;
    ASTNode value;
    start = jj_consume_token(107);
    jj_consume_token(LbraceExprEnclosure);
    value = Expr();
    jj_consume_token(Rbrace);
        ComputedTextConstructorNode c = new ComputedTextConstructorNode(createSourceLocation(start));
        c.setContent(value);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CompCommentConstructor() throws ParseException {
    Token start;
    ASTNode value;
    start = jj_consume_token(108);
    jj_consume_token(LbraceExprEnclosure);
    value = Expr();
    jj_consume_token(Rbrace);
        ComputedCommentConstructorNode c = new ComputedCommentConstructorNode(createSourceLocation(start));
        c.setContent(value);
        {if (true) return c;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode CompPIConstructor() throws ParseException {
    Token start;
    ASTNode target;
    ASTNode content = null;
    start = jj_consume_token(109);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      target = NCName();
      break;
    case LbraceExprEnclosure:
      jj_consume_token(LbraceExprEnclosure);
      target = Expr();
      jj_consume_token(Rbrace);
      break;
    default:
      jj_la1[142] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(LbraceExprEnclosure);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 35:
    case 36:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case Minus:
    case Plus:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case LessThanOpOrTagO:
    case StartTagOpen:
    case PragmaOpen:
    case ProcessingInstructionStart:
    case ProcessingInstructionStartForElementContent:
    case XmlCommentStart:
    case XmlCommentStartForElementContent:
    case Slash:
    case SlashSlash:
    case QNameToken:
    case NCNameColonStar:
    case StarColonNCName:
      content = Expr();
      break;
    default:
      jj_la1[143] = jj_gen;
      ;
    }
    jj_consume_token(Rbrace);
        ComputedPIConstructorNode pi = new ComputedPIConstructorNode(createSourceLocation(start));
        pi.setTarget(target);
        pi.setContent(content);
        {if (true) return pi;}
    throw new Error("Missing return statement in function");
  }

  final public SingleTypeNode SingleType() throws ParseException {
    AtomicTypeNode type;
    Token opt = null;
    type = AtomicType();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 110:
      opt = jj_consume_token(110);
      break;
    default:
      jj_la1[144] = jj_gen;
      ;
    }
        SingleTypeNode st = new SingleTypeNode(type.getSourceLocation());
        st.setAtomicType(type);
        st.setOptional(opt != null);
        {if (true) return st;}
    throw new Error("Missing return statement in function");
  }

  final public TypeDeclNode TypeDeclaration() throws ParseException {
    SequenceTypeNode type;
    Token start;
    start = jj_consume_token(38);
    type = SequenceType();
        TypeDeclNode td = new TypeDeclNode(createSourceLocation(start));
        td.setType(type);
        {if (true) return td;}
    throw new Error("Missing return statement in function");
  }

  final public SequenceTypeNode SequenceType() throws ParseException {
    ASTNode type;
    XQueryConstants.TypeQuantifier quant = null;
    Token start;
    if (jj_2_33(2)) {
      start = jj_consume_token(111);
      jj_consume_token(36);
      jj_consume_token(37);
            type = new EmptySequenceTypeNode(createSourceLocation(start));
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
        type = ItemType();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 59:
        case 110:
        case Plus:
          quant = OccurrenceIndicator();
          break;
        default:
          jj_la1[145] = jj_gen;
          ;
        }
        break;
      default:
        jj_la1[146] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        SequenceTypeNode st = new SequenceTypeNode(type.getSourceLocation());
        st.setItemType(type);
        st.setQuantifier(quant);
        {if (true) return st;}
    throw new Error("Missing return statement in function");
  }

  final public XQueryConstants.TypeQuantifier OccurrenceIndicator() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 110:
      jj_consume_token(110);
            {if (true) return XQueryConstants.TypeQuantifier.QUANT_QUESTION;}
      break;
    case 59:
      jj_consume_token(59);
            {if (true) return XQueryConstants.TypeQuantifier.QUANT_STAR;}
      break;
    case Plus:
      jj_consume_token(Plus);
            {if (true) return XQueryConstants.TypeQuantifier.QUANT_PLUS;}
      break;
    default:
      jj_la1[147] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public ASTNode ItemType() throws ParseException {
    ASTNode type;
    Token start;
    if (jj_2_34(2)) {
      type = KindTest();
    } else if (jj_2_35(2)) {
      start = jj_consume_token(112);
      jj_consume_token(36);
      jj_consume_token(37);
            type = new ItemTypeNode(createSourceLocation(start));
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
        type = AtomicType();
        break;
      default:
        jj_la1[148] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
        {if (true) return type;}
    throw new Error("Missing return statement in function");
  }

  final public AtomicTypeNode AtomicType() throws ParseException {
    QNameNode typeName;
    typeName = QName();
        AtomicTypeNode at = new AtomicTypeNode(typeName.getSourceLocation());
        at.setName(typeName);
        {if (true) return at;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode KindTest() throws ParseException {
    ASTNode type;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 114:
      type = DocumentTest();
      break;
    case 13:
      type = ElementTest();
      break;
    case 91:
      type = AttributeTest();
      break;
    case 116:
      type = SchemaElementTest();
      break;
    case 115:
      type = SchemaAttributeTest();
      break;
    case 109:
      type = PITest();
      break;
    case 108:
      type = CommentTest();
      break;
    case 107:
      type = TextTest();
      break;
    case 113:
      type = AnyKindTest();
      break;
    default:
      jj_la1[149] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
        {if (true) return type;}
    throw new Error("Missing return statement in function");
  }

  final public ASTNode AnyKindTest() throws ParseException {
    Token start;
    start = jj_consume_token(113);
    jj_consume_token(36);
    jj_consume_token(37);
        {if (true) return new AnyNodeTestNode(createSourceLocation(start));}
    throw new Error("Missing return statement in function");
  }

  final public DocumentTestNode DocumentTest() throws ParseException {
    Token start;
    ASTNode elementType = null;
    start = jj_consume_token(114);
    jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 13:
    case 116:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 13:
        elementType = ElementTest();
        break;
      case 116:
        elementType = SchemaElementTest();
        break;
      default:
        jj_la1[150] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[151] = jj_gen;
      ;
    }
    jj_consume_token(37);
        DocumentTestNode dt = new DocumentTestNode(createSourceLocation(start));
        dt.setElementTest(elementType);
        {if (true) return dt;}
    throw new Error("Missing return statement in function");
  }

  final public TextTestNode TextTest() throws ParseException {
    Token start;
    start = jj_consume_token(107);
    jj_consume_token(36);
    jj_consume_token(37);
        {if (true) return new TextTestNode(createSourceLocation(start));}
    throw new Error("Missing return statement in function");
  }

  final public CommentTestNode CommentTest() throws ParseException {
    Token start;
    start = jj_consume_token(108);
    jj_consume_token(36);
    jj_consume_token(37);
        {if (true) return new CommentTestNode(createSourceLocation(start));}
    throw new Error("Missing return statement in function");
  }

  final public PITestNode PITest() throws ParseException {
    NCNameNode tName;
    String target = null;
    Token t;
    Token start;
    start = jj_consume_token(109);
    jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case StringLiteral:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 8:
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 14:
      case 15:
      case 16:
      case 17:
      case 18:
      case 19:
      case 20:
      case 21:
      case 22:
      case 24:
      case 25:
      case 26:
      case 27:
      case 28:
      case 29:
      case 30:
      case 31:
      case 32:
      case 35:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 48:
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
      case 58:
      case 60:
      case 61:
      case 62:
      case 63:
      case 65:
      case 66:
      case 67:
      case 68:
      case 69:
      case 70:
      case 71:
      case 76:
      case 77:
      case 78:
      case 79:
      case 80:
      case 81:
      case 82:
      case 85:
      case 86:
      case 87:
      case 88:
      case 90:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 97:
      case 98:
      case 99:
      case 100:
      case 101:
      case 106:
      case 107:
      case 108:
      case 109:
      case 111:
      case 112:
      case 113:
      case 114:
      case 115:
      case 116:
      case 117:
      case 120:
      case 122:
      case 123:
      case 124:
      case 125:
      case 126:
      case 127:
      case 128:
      case 129:
      case 130:
      case 131:
      case 132:
      case 133:
      case 134:
      case 135:
      case 136:
      case 137:
      case 138:
      case 139:
      case 140:
      case 141:
      case 142:
      case 143:
      case 144:
      case 145:
      case 146:
      case 147:
      case 148:
      case 149:
      case 150:
      case 151:
      case 152:
      case 153:
      case 154:
      case 155:
      case 156:
      case 157:
      case 158:
      case External:
      case Ascending:
      case Descending:
      case Greatest:
      case Least:
      case QNameToken:
        tName = NCName();
                target = tName.getName();
        break;
      case StringLiteral:
        t = jj_consume_token(StringLiteral);
                target = t.image;
        break;
      default:
        jj_la1[152] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[153] = jj_gen;
      ;
    }
    jj_consume_token(37);
        PITestNode pit = new PITestNode(createSourceLocation(start));
        pit.setTarget(target);
        {if (true) return pit;}
    throw new Error("Missing return statement in function");
  }

  final public AttributeTestNode AttributeTest() throws ParseException {
    NameTestNode nt = null;
    QNameNode contentTypeName = null;
    Token start;
    start = jj_consume_token(91);
    jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      nt = AttribNameOrWildcard();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        jj_consume_token(23);
        contentTypeName = TypeName();
        break;
      default:
        jj_la1[154] = jj_gen;
        ;
      }
      break;
    default:
      jj_la1[155] = jj_gen;
      ;
    }
    jj_consume_token(37);
        AttributeTestNode at = new AttributeTestNode(createSourceLocation(start));
        at.setNameTest(nt);
        at.setTypeName(contentTypeName);
        {if (true) return at;}
    throw new Error("Missing return statement in function");
  }

  final public NameTestNode AttribNameOrWildcard() throws ParseException {
    QNameNode name;
    Token start;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      name = AttributeName();
            NameTestNode nt = new NameTestNode(name.getSourceLocation());
            nt.setPrefix(name.getPrefix());
            nt.setLocalName(name.getLocalName());
            {if (true) return nt;}
      break;
    case 59:
      start = jj_consume_token(59);
            {if (true) return new NameTestNode(createSourceLocation(start));}
      break;
    default:
      jj_la1[156] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public SchemaAttributeTestNode SchemaAttributeTest() throws ParseException {
    QNameNode name;
    Token start;
    start = jj_consume_token(115);
    jj_consume_token(36);
    name = AttributeDeclaration();
    jj_consume_token(37);
        SchemaAttributeTestNode sat = new SchemaAttributeTestNode(createSourceLocation(start));
        sat.setName(name);
        {if (true) return sat;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode AttributeDeclaration() throws ParseException {
    QNameNode name;
    name = AttributeName();
        {if (true) return name;}
    throw new Error("Missing return statement in function");
  }

  final public ElementTestNode ElementTest() throws ParseException {
    NameTestNode nt = null;
    QNameNode contentTypeName = null;
    Token nilled = null;
    Token start;
    start = jj_consume_token(13);
    jj_consume_token(36);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      nt = ElementNameOrWildcard();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 23:
        jj_consume_token(23);
        contentTypeName = TypeName();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 110:
          nilled = jj_consume_token(110);
          break;
        default:
          jj_la1[157] = jj_gen;
          ;
        }
        break;
      default:
        jj_la1[158] = jj_gen;
        ;
      }
      break;
    default:
      jj_la1[159] = jj_gen;
      ;
    }
    jj_consume_token(37);
        ElementTestNode et = new ElementTestNode(createSourceLocation(start));
        et.setNameTest(nt);
        et.setTypeName(contentTypeName);
        et.setNillable(nilled != null);
        {if (true) return et;}
    throw new Error("Missing return statement in function");
  }

  final public NameTestNode ElementNameOrWildcard() throws ParseException {
    QNameNode name;
    Token start;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 91:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 107:
    case 108:
    case 109:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      name = ElementName();
            NameTestNode nt = new NameTestNode(name.getSourceLocation());
            nt.setPrefix(name.getPrefix());
            nt.setLocalName(name.getLocalName());
            {if (true) return nt;}
      break;
    case 59:
      start = jj_consume_token(59);
            {if (true) return new NameTestNode(createSourceLocation(start));}
      break;
    default:
      jj_la1[160] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public SchemaElementTestNode SchemaElementTest() throws ParseException {
    QNameNode name;
    Token start;
    start = jj_consume_token(116);
    jj_consume_token(36);
    name = ElementDeclaration();
    jj_consume_token(37);
        SchemaElementTestNode set = new SchemaElementTestNode(createSourceLocation(start));
        set.setName(name);
        {if (true) return set;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode ElementDeclaration() throws ParseException {
    QNameNode qname;
    qname = ElementName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode AttributeName() throws ParseException {
    QNameNode qname;
    qname = QName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode ElementName() throws ParseException {
    QNameNode qname;
    qname = QName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode TypeName() throws ParseException {
    QNameNode qname;
    qname = QName();
        {if (true) return qname;}
    throw new Error("Missing return statement in function");
  }

  final public String URILiteral() throws ParseException {
    Token t;
    t = jj_consume_token(StringLiteral);
        {if (true) return t.image;}
    throw new Error("Missing return statement in function");
  }

  final public void FTSelection() throws ParseException {
    FTOr();
    label_32:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 18:
      case 31:
      case 132:
      case 133:
      case 136:
      case 137:
      case 142:
        ;
        break;
      default:
        jj_la1[161] = jj_gen;
        break label_32;
      }
      FTPosFilter();
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 117:
      jj_consume_token(117);
      RangeExpr();
      break;
    default:
      jj_la1[162] = jj_gen;
      ;
    }
  }

  final public void FTOrExpr() throws ParseException {
    FTOr();
  }

  final public void FTOr() throws ParseException {
    FTAnd();
    label_33:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 118:
        ;
        break;
      default:
        jj_la1[163] = jj_gen;
        break label_33;
      }
      jj_consume_token(118);
                     binaryTokenStack.push(token);
      FTAnd();
    }
  }

  final public void FTAnd() throws ParseException {
    FTMildNot();
    label_34:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 119:
        ;
        break;
      default:
        jj_la1[164] = jj_gen;
        break label_34;
      }
      jj_consume_token(119);
                          binaryTokenStack.push(token);
      FTMildNot();
    }
  }

  final public void FTMildNot() throws ParseException {
    FTUnaryNot();
    label_35:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 120:
        ;
        break;
      default:
        jj_la1[165] = jj_gen;
        break label_35;
      }
      jj_consume_token(120);
                            binaryTokenStack.push(token);
      jj_consume_token(41);
                                                                  binaryTokenStack.push(token);
      FTUnaryNot();
    }
  }

  final public void FTUnaryNot() throws ParseException {
 boolean keepUnary=false;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 121:
      jj_consume_token(121);
        keepUnary=true;
      break;
    default:
      jj_la1[166] = jj_gen;
      ;
    }
    FTPrimaryWithOptions();
  }

  final public void FTPrimaryWithOptions() throws ParseException {
    FTPrimary();
    if (jj_2_36(2)) {
      FTMatchOptions();
    } else {
      ;
    }
  }

  final public void FTPrimary() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case LbraceExprEnclosure:
      FTWords();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 127:
        FTTimes();
        break;
      default:
        jj_la1[167] = jj_gen;
        ;
      }
      break;
    case 36:
      jj_consume_token(36);
      FTSelection();
      jj_consume_token(37);
      break;
    case PragmaOpen:
      FTExtensionSelection();
      break;
    default:
      jj_la1[168] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTWords() throws ParseException {
    FTWordsValue();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 122:
    case 124:
    case 126:
      FTAnyallOption();
      break;
    default:
      jj_la1[169] = jj_gen;
      ;
    }
  }

  final public void FTWordsValue() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
      Literal();
      break;
    case LbraceExprEnclosure:
      jj_consume_token(LbraceExprEnclosure);
      Expr();
      jj_consume_token(Rbrace);
      break;
    default:
      jj_la1[170] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTExtensionSelection() throws ParseException {
    label_36:
    while (true) {
      Pragma();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PragmaOpen:
        ;
        break;
      default:
        jj_la1[171] = jj_gen;
        break label_36;
      }
    }
    jj_consume_token(LbraceExprEnclosure);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 36:
    case 121:
    case IntegerLiteral:
    case DecimalLiteral:
    case DoubleLiteral:
    case StringLiteral:
    case LbraceExprEnclosure:
    case PragmaOpen:
      FTSelection();
      break;
    default:
      jj_la1[172] = jj_gen;
      ;
    }
    jj_consume_token(Rbrace);
  }

  final public void FTAnyallOption() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 122:
      jj_consume_token(122);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 123:
        jj_consume_token(123);
        break;
      default:
        jj_la1[173] = jj_gen;
        ;
      }
      break;
    case 124:
      jj_consume_token(124);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 125:
        jj_consume_token(125);
        break;
      default:
        jj_la1[174] = jj_gen;
        ;
      }
      break;
    case 126:
      jj_consume_token(126);
      break;
    default:
      jj_la1[175] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTTimes() throws ParseException {
    jj_consume_token(127);
    FTRange();
    jj_consume_token(128);
  }

  final public void FTRange() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 129:
      jj_consume_token(129);
      AdditiveExpr();
      break;
    default:
      jj_la1[176] = jj_gen;
      if (jj_2_37(2)) {
        jj_consume_token(31);
        jj_consume_token(Least);
        AdditiveExpr();
      } else if (jj_2_38(2)) {
        jj_consume_token(31);
        jj_consume_token(130);
        AdditiveExpr();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 131:
          jj_consume_token(131);
          AdditiveExpr();
          jj_consume_token(58);
          AdditiveExpr();
          break;
        default:
          jj_la1[177] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
    }
  }

  final public void FTPosFilter() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 18:
      FTOrder();
      break;
    case 132:
      FTWindow();
      break;
    case 133:
      FTDistance();
      break;
    case 136:
    case 137:
      FTScope();
      break;
    case 31:
    case 142:
      FTContent();
      break;
    default:
      jj_la1[178] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTOrder() throws ParseException {
    jj_consume_token(18);
  }

  final public void FTWindow() throws ParseException {
    jj_consume_token(132);
    AdditiveExpr();
    FTUnit();
  }

  final public void FTDistance() throws ParseException {
    jj_consume_token(133);
    FTRange();
    FTUnit();
  }

  final public void FTUnit() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 125:
      jj_consume_token(125);
      break;
    case 134:
      jj_consume_token(134);
      break;
    case 135:
      jj_consume_token(135);
      break;
    default:
      jj_la1[179] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTScope() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 136:
      jj_consume_token(136);
      break;
    case 137:
      jj_consume_token(137);
      break;
    default:
      jj_la1[180] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    FTBigUnit();
  }

  final public void FTBigUnit() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 138:
      jj_consume_token(138);
      break;
    case 139:
      jj_consume_token(139);
      break;
    default:
      jj_la1[181] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTContent() throws ParseException {
    if (jj_2_39(2)) {
      jj_consume_token(31);
      jj_consume_token(140);
    } else if (jj_2_40(2)) {
      jj_consume_token(31);
      jj_consume_token(141);
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 142:
        jj_consume_token(142);
        jj_consume_token(143);
        break;
      default:
        jj_la1[182] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void FTMatchOptions() throws ParseException {
    label_37:
    while (true) {
      FTMatchOption();
      if (jj_2_41(2)) {
        ;
      } else {
        break label_37;
      }
    }
  }

  final public void FTMatchOption() throws ParseException {
    if (jj_2_42(2)) {
      FTLanguageOption();
    } else if (jj_2_43(2)) {
      FTWildCardOption();
    } else if (jj_2_44(2)) {
      FTThesaurusOption();
    } else if (jj_2_45(2)) {
      FTStemOption();
    } else if (jj_2_46(2)) {
      FTCaseOption();
    } else if (jj_2_47(2)) {
      FTDiacriticsOption();
    } else if (jj_2_48(2)) {
      FTStopwordOption();
    } else if (jj_2_49(2)) {
      FTExtensionOption();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTCaseOption() throws ParseException {
    if (jj_2_50(2)) {
      jj_consume_token(51);
      jj_consume_token(144);
    } else if (jj_2_51(2)) {
      jj_consume_token(51);
      jj_consume_token(145);
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 146:
        jj_consume_token(146);
        break;
      case 147:
        jj_consume_token(147);
        break;
      default:
        jj_la1[183] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void FTDiacriticsOption() throws ParseException {
    if (jj_2_52(2)) {
      jj_consume_token(148);
      jj_consume_token(144);
    } else if (jj_2_53(2)) {
      jj_consume_token(148);
      jj_consume_token(145);
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTStemOption() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 149:
      jj_consume_token(149);
      jj_consume_token(150);
      break;
    case 151:
      jj_consume_token(151);
      jj_consume_token(150);
      break;
    default:
      jj_la1[184] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTThesaurusOption() throws ParseException {
    if (jj_2_54(3)) {
      jj_consume_token(149);
      jj_consume_token(152);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 31:
        FTThesaurusID();
        break;
      case 12:
        jj_consume_token(12);
        break;
      default:
        jj_la1[185] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    } else if (jj_2_55(3)) {
      jj_consume_token(149);
      jj_consume_token(152);
      jj_consume_token(36);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 31:
        FTThesaurusID();
        break;
      case 12:
        jj_consume_token(12);
        break;
      default:
        jj_la1[186] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      label_38:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 23:
          ;
          break;
        default:
          jj_la1[187] = jj_gen;
          break label_38;
        }
        jj_consume_token(23);
        FTThesaurusID();
      }
      jj_consume_token(37);
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 151:
        jj_consume_token(151);
        jj_consume_token(152);
        break;
      default:
        jj_la1[188] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void FTThesaurusID() throws ParseException {
    jj_consume_token(31);
    URILiteral();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 153:
      jj_consume_token(153);
      jj_consume_token(StringLiteral);
      break;
    default:
      jj_la1[189] = jj_gen;
      ;
    }
    if (jj_2_56(2)) {
      FTRange();
      jj_consume_token(154);
    } else {
      ;
    }
  }

  final public void FTStopwordOption() throws ParseException {
    if (jj_2_57(2)) {
      jj_consume_token(149);
      jj_consume_token(155);
      jj_consume_token(125);
      FTRefOrList();
      label_39:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 63:
        case 66:
          ;
          break;
        default:
          jj_la1[190] = jj_gen;
          break label_39;
        }
        FTInclExclStringLiteral();
      }
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 151:
        jj_consume_token(151);
        jj_consume_token(155);
        jj_consume_token(125);
        break;
      default:
        jj_la1[192] = jj_gen;
        if (jj_2_58(2)) {
          jj_consume_token(149);
          jj_consume_token(12);
          jj_consume_token(155);
          jj_consume_token(125);
          label_40:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
            case 63:
            case 66:
              ;
              break;
            default:
              jj_la1[191] = jj_gen;
              break label_40;
            }
            FTInclExclStringLiteral();
          }
        } else {
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
    }
  }

  final public void FTRefOrList() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 31:
      jj_consume_token(31);
              binaryTokenStack.push(token);
      URILiteral();
      break;
    case 36:
      jj_consume_token(36);
                                                                      binaryTokenStack.push(token);
      jj_consume_token(StringLiteral);
                                                                                                                       binaryTokenStack.push(token);
      label_41:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 23:
          ;
          break;
        default:
          jj_la1[193] = jj_gen;
          break label_41;
        }
        jj_consume_token(23);
                                                                                                                                                            binaryTokenStack.push(token);
        jj_consume_token(StringLiteral);
                                                                                                                                                                                                             binaryTokenStack.push(token);
      }
      jj_consume_token(37);
                                                                                                                                                                                                                                                   binaryTokenStack.push(token);
      break;
    default:
      jj_la1[194] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTInclExclStringLiteral() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 63:
      jj_consume_token(63);
      break;
    case 66:
      jj_consume_token(66);
      break;
    default:
      jj_la1[195] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    FTRefOrList();
  }

  final public void FTLanguageOption() throws ParseException {
    jj_consume_token(156);
    jj_consume_token(StringLiteral);
  }

  final public void FTWildCardOption() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 149:
      jj_consume_token(149);
      jj_consume_token(157);
      break;
    case 151:
      jj_consume_token(151);
      jj_consume_token(157);
      break;
    default:
      jj_la1[196] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void FTExtensionOption() throws ParseException {
    jj_consume_token(15);
    QName();
    jj_consume_token(StringLiteral);
  }

  final public void FTIgnoreOption() throws ParseException {
    jj_consume_token(151);
    jj_consume_token(143);
    UnionExpr();
  }

  final public NCNameNode NCName() throws ParseException {
    QNameNode qname;
    qname = QName();
        if (!"".equals(qname.getPrefix())) {
            {if (true) throw new ParseException(token, new int[][] { }, new String[] { });}
        }
        NCNameNode n = new NCNameNode(qname.getSourceLocation());
        n.setName(qname.getLocalName());
        {if (true) return n;}
    throw new Error("Missing return statement in function");
  }

  final public QNameNode QName() throws ParseException {
    QNameNode qname = null;
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 35:
    case 38:
    case 39:
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
    case 51:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 60:
    case 61:
    case 62:
    case 63:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 85:
    case 86:
    case 87:
    case 88:
    case 90:
    case 92:
    case 93:
    case 94:
    case 95:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 106:
    case 117:
    case 120:
    case 122:
    case 123:
    case 124:
    case 125:
    case 126:
    case 127:
    case 128:
    case 129:
    case 130:
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 157:
    case 158:
    case External:
    case Ascending:
    case Descending:
    case Greatest:
    case Least:
    case QNameToken:
      qname = FunctionQName();
        {if (true) return qname;}
      break;
    case 91:
      t = jj_consume_token(91);
        {if (true) return createQName(t);}
      break;
    case 108:
      t = jj_consume_token(108);
        {if (true) return createQName(t);}
      break;
    case 114:
      t = jj_consume_token(114);
        {if (true) return createQName(t);}
      break;
    case 13:
      t = jj_consume_token(13);
        {if (true) return createQName(t);}
      break;
    case 52:
      t = jj_consume_token(52);
        {if (true) return createQName(t);}
      break;
    case 112:
      t = jj_consume_token(112);
        {if (true) return createQName(t);}
      break;
    case 113:
      t = jj_consume_token(113);
        {if (true) return createQName(t);}
      break;
    case 109:
      t = jj_consume_token(109);
        {if (true) return createQName(t);}
      break;
    case 115:
      t = jj_consume_token(115);
        {if (true) return createQName(t);}
      break;
    case 116:
      t = jj_consume_token(116);
        {if (true) return createQName(t);}
      break;
    case 107:
      t = jj_consume_token(107);
        {if (true) return createQName(t);}
      break;
    case 50:
      t = jj_consume_token(50);
        {if (true) return createQName(t);}
      break;
    case 111:
      t = jj_consume_token(111);
        {if (true) return createQName(t);}
      break;
    default:
      jj_la1[197] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  final public QNameNode FunctionQName() throws ParseException {
    Token t;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case QNameToken:
      t = jj_consume_token(QNameToken);
        {if (true) return createQName(t);}
      break;
    case External:
      t = jj_consume_token(External);
        {if (true) return createQName(t);}
      break;
    case 1:
      t = jj_consume_token(1);
        {if (true) return createQName(t);}
      break;
    case 2:
      t = jj_consume_token(2);
        {if (true) return createQName(t);}
      break;
    case 3:
      t = jj_consume_token(3);
        {if (true) return createQName(t);}
      break;
    case 4:
      t = jj_consume_token(4);
        {if (true) return createQName(t);}
      break;
    case 5:
      t = jj_consume_token(5);
        {if (true) return createQName(t);}
      break;
    case 8:
      t = jj_consume_token(8);
        {if (true) return createQName(t);}
      break;
    case 9:
      t = jj_consume_token(9);
        {if (true) return createQName(t);}
      break;
    case 10:
      t = jj_consume_token(10);
        {if (true) return createQName(t);}
      break;
    case 11:
      t = jj_consume_token(11);
        {if (true) return createQName(t);}
      break;
    case 12:
      t = jj_consume_token(12);
        {if (true) return createQName(t);}
      break;
    case 14:
      t = jj_consume_token(14);
        {if (true) return createQName(t);}
      break;
    case 15:
      t = jj_consume_token(15);
        {if (true) return createQName(t);}
      break;
    case 16:
      t = jj_consume_token(16);
        {if (true) return createQName(t);}
      break;
    case 17:
      t = jj_consume_token(17);
        {if (true) return createQName(t);}
      break;
    case 18:
      t = jj_consume_token(18);
        {if (true) return createQName(t);}
      break;
    case 19:
      t = jj_consume_token(19);
        {if (true) return createQName(t);}
      break;
    case 20:
      t = jj_consume_token(20);
        {if (true) return createQName(t);}
      break;
    case 21:
      t = jj_consume_token(21);
        {if (true) return createQName(t);}
      break;
    case Greatest:
      t = jj_consume_token(Greatest);
        {if (true) return createQName(t);}
      break;
    case Least:
      t = jj_consume_token(Least);
        {if (true) return createQName(t);}
      break;
    case 22:
      t = jj_consume_token(22);
        {if (true) return createQName(t);}
      break;
    case 24:
      t = jj_consume_token(24);
        {if (true) return createQName(t);}
      break;
    case 25:
      t = jj_consume_token(25);
        {if (true) return createQName(t);}
      break;
    case 26:
      t = jj_consume_token(26);
        {if (true) return createQName(t);}
      break;
    case 27:
      t = jj_consume_token(27);
        {if (true) return createQName(t);}
      break;
    case 28:
      t = jj_consume_token(28);
        {if (true) return createQName(t);}
      break;
    case 29:
      t = jj_consume_token(29);
        {if (true) return createQName(t);}
      break;
    case 30:
      t = jj_consume_token(30);
        {if (true) return createQName(t);}
      break;
    case 31:
      t = jj_consume_token(31);
        {if (true) return createQName(t);}
      break;
    case 32:
      t = jj_consume_token(32);
        {if (true) return createQName(t);}
      break;
    case 35:
      t = jj_consume_token(35);
        {if (true) return createQName(t);}
      break;
    case 38:
      t = jj_consume_token(38);
        {if (true) return createQName(t);}
      break;
    case 86:
      t = jj_consume_token(86);
        {if (true) return createQName(t);}
      break;
    case 87:
      t = jj_consume_token(87);
        {if (true) return createQName(t);}
      break;
    case 39:
      t = jj_consume_token(39);
        {if (true) return createQName(t);}
      break;
    case 40:
      t = jj_consume_token(40);
        {if (true) return createQName(t);}
      break;
    case 41:
      t = jj_consume_token(41);
        {if (true) return createQName(t);}
      break;
    case 42:
      t = jj_consume_token(42);
        {if (true) return createQName(t);}
      break;
    case 43:
      t = jj_consume_token(43);
        {if (true) return createQName(t);}
      break;
    case 44:
      t = jj_consume_token(44);
        {if (true) return createQName(t);}
      break;
    case 45:
      t = jj_consume_token(45);
        {if (true) return createQName(t);}
      break;
    case 46:
      t = jj_consume_token(46);
        {if (true) return createQName(t);}
      break;
    case Ascending:
      t = jj_consume_token(Ascending);
        {if (true) return createQName(t);}
      break;
    case Descending:
      t = jj_consume_token(Descending);
        {if (true) return createQName(t);}
      break;
    case 47:
      t = jj_consume_token(47);
        {if (true) return createQName(t);}
      break;
    case 48:
      t = jj_consume_token(48);
        {if (true) return createQName(t);}
      break;
    case 49:
      t = jj_consume_token(49);
        {if (true) return createQName(t);}
      break;
    case 51:
      t = jj_consume_token(51);
        {if (true) return createQName(t);}
      break;
    case 53:
      t = jj_consume_token(53);
        {if (true) return createQName(t);}
      break;
    case 54:
      t = jj_consume_token(54);
        {if (true) return createQName(t);}
      break;
    case 55:
      t = jj_consume_token(55);
        {if (true) return createQName(t);}
      break;
    case 56:
      t = jj_consume_token(56);
        {if (true) return createQName(t);}
      break;
    case 57:
      t = jj_consume_token(57);
        {if (true) return createQName(t);}
      break;
    case 58:
      t = jj_consume_token(58);
        {if (true) return createQName(t);}
      break;
    case 60:
      t = jj_consume_token(60);
        {if (true) return createQName(t);}
      break;
    case 61:
      t = jj_consume_token(61);
        {if (true) return createQName(t);}
      break;
    case 62:
      t = jj_consume_token(62);
        {if (true) return createQName(t);}
      break;
    case 63:
      t = jj_consume_token(63);
        {if (true) return createQName(t);}
      break;
    case 65:
      t = jj_consume_token(65);
        {if (true) return createQName(t);}
      break;
    case 66:
      t = jj_consume_token(66);
        {if (true) return createQName(t);}
      break;
    case 67:
      t = jj_consume_token(67);
        {if (true) return createQName(t);}
      break;
    case 68:
      t = jj_consume_token(68);
        {if (true) return createQName(t);}
      break;
    case 69:
      t = jj_consume_token(69);
        {if (true) return createQName(t);}
      break;
    case 70:
      t = jj_consume_token(70);
        {if (true) return createQName(t);}
      break;
    case 71:
      t = jj_consume_token(71);
        {if (true) return createQName(t);}
      break;
    case 76:
      t = jj_consume_token(76);
        {if (true) return createQName(t);}
      break;
    case 77:
      t = jj_consume_token(77);
        {if (true) return createQName(t);}
      break;
    case 78:
      t = jj_consume_token(78);
        {if (true) return createQName(t);}
      break;
    case 79:
      t = jj_consume_token(79);
        {if (true) return createQName(t);}
      break;
    case 80:
      t = jj_consume_token(80);
        {if (true) return createQName(t);}
      break;
    case 81:
      t = jj_consume_token(81);
        {if (true) return createQName(t);}
      break;
    case 82:
      t = jj_consume_token(82);
        {if (true) return createQName(t);}
      break;
    case 85:
      t = jj_consume_token(85);
        {if (true) return createQName(t);}
      break;
    case 88:
      t = jj_consume_token(88);
        {if (true) return createQName(t);}
      break;
    case 90:
      t = jj_consume_token(90);
        {if (true) return createQName(t);}
      break;
    case 92:
      t = jj_consume_token(92);
        {if (true) return createQName(t);}
      break;
    case 93:
      t = jj_consume_token(93);
        {if (true) return createQName(t);}
      break;
    case 94:
      t = jj_consume_token(94);
        {if (true) return createQName(t);}
      break;
    case 95:
      t = jj_consume_token(95);
        {if (true) return createQName(t);}
      break;
    case 97:
      t = jj_consume_token(97);
        {if (true) return createQName(t);}
      break;
    case 98:
      t = jj_consume_token(98);
        {if (true) return createQName(t);}
      break;
    case 99:
      t = jj_consume_token(99);
        {if (true) return createQName(t);}
      break;
    case 100:
      t = jj_consume_token(100);
        {if (true) return createQName(t);}
      break;
    case 101:
      t = jj_consume_token(101);
        {if (true) return createQName(t);}
      break;
    case 106:
      t = jj_consume_token(106);
        {if (true) return createQName(t);}
      break;
    case 117:
      t = jj_consume_token(117);
        {if (true) return createQName(t);}
      break;
    case 120:
      t = jj_consume_token(120);
        {if (true) return createQName(t);}
      break;
    case 146:
      t = jj_consume_token(146);
        {if (true) return createQName(t);}
      break;
    case 147:
      t = jj_consume_token(147);
        {if (true) return createQName(t);}
      break;
    case 145:
      t = jj_consume_token(145);
        {if (true) return createQName(t);}
      break;
    case 144:
      t = jj_consume_token(144);
        {if (true) return createQName(t);}
      break;
    case 149:
      t = jj_consume_token(149);
        {if (true) return createQName(t);}
      break;
    case 148:
      t = jj_consume_token(148);
        {if (true) return createQName(t);}
      break;
    case 151:
      t = jj_consume_token(151);
        {if (true) return createQName(t);}
      break;
    case 150:
      t = jj_consume_token(150);
        {if (true) return createQName(t);}
      break;
    case 152:
      t = jj_consume_token(152);
        {if (true) return createQName(t);}
      break;
    case 153:
      t = jj_consume_token(153);
        {if (true) return createQName(t);}
      break;
    case 154:
      t = jj_consume_token(154);
        {if (true) return createQName(t);}
      break;
    case 155:
      t = jj_consume_token(155);
        {if (true) return createQName(t);}
      break;
    case 125:
      t = jj_consume_token(125);
        {if (true) return createQName(t);}
      break;
    case 156:
      t = jj_consume_token(156);
        {if (true) return createQName(t);}
      break;
    case 157:
      t = jj_consume_token(157);
        {if (true) return createQName(t);}
      break;
    case 140:
      t = jj_consume_token(140);
        {if (true) return createQName(t);}
      break;
    case 141:
      t = jj_consume_token(141);
        {if (true) return createQName(t);}
      break;
    case 142:
      t = jj_consume_token(142);
        {if (true) return createQName(t);}
      break;
    case 143:
      t = jj_consume_token(143);
        {if (true) return createQName(t);}
      break;
    case 122:
      t = jj_consume_token(122);
        {if (true) return createQName(t);}
      break;
    case 124:
      t = jj_consume_token(124);
        {if (true) return createQName(t);}
      break;
    case 126:
      t = jj_consume_token(126);
        {if (true) return createQName(t);}
      break;
    case 123:
      t = jj_consume_token(123);
        {if (true) return createQName(t);}
      break;
    case 129:
      t = jj_consume_token(129);
        {if (true) return createQName(t);}
      break;
    case 130:
      t = jj_consume_token(130);
        {if (true) return createQName(t);}
      break;
    case 131:
      t = jj_consume_token(131);
        {if (true) return createQName(t);}
      break;
    case 133:
      t = jj_consume_token(133);
        {if (true) return createQName(t);}
      break;
    case 132:
      t = jj_consume_token(132);
        {if (true) return createQName(t);}
      break;
    case 127:
      t = jj_consume_token(127);
        {if (true) return createQName(t);}
      break;
    case 128:
      t = jj_consume_token(128);
        {if (true) return createQName(t);}
      break;
    case 136:
      t = jj_consume_token(136);
        {if (true) return createQName(t);}
      break;
    case 137:
      t = jj_consume_token(137);
        {if (true) return createQName(t);}
      break;
    case 134:
      t = jj_consume_token(134);
        {if (true) return createQName(t);}
      break;
    case 135:
      t = jj_consume_token(135);
        {if (true) return createQName(t);}
      break;
    case 138:
      t = jj_consume_token(138);
        {if (true) return createQName(t);}
      break;
    case 139:
      t = jj_consume_token(139);
        {if (true) return createQName(t);}
      break;
    case 158:
      t = jj_consume_token(158);
        {if (true) return createQName(t);}
      break;
    default:
      jj_la1[198] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    throw new Error("Missing return statement in function");
  }

  private boolean jj_2_1(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_1(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(0, xla); }
  }

  private boolean jj_2_2(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_2(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(1, xla); }
  }

  private boolean jj_2_3(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_3(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(2, xla); }
  }

  private boolean jj_2_4(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_4(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(3, xla); }
  }

  private boolean jj_2_5(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_5(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(4, xla); }
  }

  private boolean jj_2_6(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_6(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(5, xla); }
  }

  private boolean jj_2_7(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_7(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(6, xla); }
  }

  private boolean jj_2_8(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_8(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(7, xla); }
  }

  private boolean jj_2_9(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_9(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(8, xla); }
  }

  private boolean jj_2_10(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_10(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(9, xla); }
  }

  private boolean jj_2_11(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_11(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(10, xla); }
  }

  private boolean jj_2_12(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_12(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(11, xla); }
  }

  private boolean jj_2_13(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_13(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(12, xla); }
  }

  private boolean jj_2_14(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_14(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(13, xla); }
  }

  private boolean jj_2_15(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_15(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(14, xla); }
  }

  private boolean jj_2_16(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_16(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(15, xla); }
  }

  private boolean jj_2_17(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_17(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(16, xla); }
  }

  private boolean jj_2_18(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_18(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(17, xla); }
  }

  private boolean jj_2_19(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_19(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(18, xla); }
  }

  private boolean jj_2_20(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_20(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(19, xla); }
  }

  private boolean jj_2_21(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_21(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(20, xla); }
  }

  private boolean jj_2_22(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_22(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(21, xla); }
  }

  private boolean jj_2_23(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_23(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(22, xla); }
  }

  private boolean jj_2_24(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_24(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(23, xla); }
  }

  private boolean jj_2_25(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_25(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(24, xla); }
  }

  private boolean jj_2_26(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_26(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(25, xla); }
  }

  private boolean jj_2_27(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_27(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(26, xla); }
  }

  private boolean jj_2_28(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_28(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(27, xla); }
  }

  private boolean jj_2_29(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_29(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(28, xla); }
  }

  private boolean jj_2_30(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_30(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(29, xla); }
  }

  private boolean jj_2_31(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_31(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(30, xla); }
  }

  private boolean jj_2_32(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_32(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(31, xla); }
  }

  private boolean jj_2_33(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_33(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(32, xla); }
  }

  private boolean jj_2_34(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_34(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(33, xla); }
  }

  private boolean jj_2_35(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_35(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(34, xla); }
  }

  private boolean jj_2_36(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_36(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(35, xla); }
  }

  private boolean jj_2_37(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_37(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(36, xla); }
  }

  private boolean jj_2_38(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_38(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(37, xla); }
  }

  private boolean jj_2_39(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_39(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(38, xla); }
  }

  private boolean jj_2_40(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_40(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(39, xla); }
  }

  private boolean jj_2_41(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_41(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(40, xla); }
  }

  private boolean jj_2_42(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_42(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(41, xla); }
  }

  private boolean jj_2_43(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_43(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(42, xla); }
  }

  private boolean jj_2_44(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_44(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(43, xla); }
  }

  private boolean jj_2_45(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_45(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(44, xla); }
  }

  private boolean jj_2_46(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_46(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(45, xla); }
  }

  private boolean jj_2_47(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_47(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(46, xla); }
  }

  private boolean jj_2_48(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_48(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(47, xla); }
  }

  private boolean jj_2_49(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_49(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(48, xla); }
  }

  private boolean jj_2_50(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_50(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(49, xla); }
  }

  private boolean jj_2_51(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_51(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(50, xla); }
  }

  private boolean jj_2_52(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_52(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(51, xla); }
  }

  private boolean jj_2_53(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_53(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(52, xla); }
  }

  private boolean jj_2_54(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_54(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(53, xla); }
  }

  private boolean jj_2_55(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_55(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(54, xla); }
  }

  private boolean jj_2_56(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_56(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(55, xla); }
  }

  private boolean jj_2_57(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_57(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(56, xla); }
  }

  private boolean jj_2_58(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_58(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(57, xla); }
  }

  private boolean jj_3R_271() {
    if (jj_scan_token(13)) return true;
    return false;
  }

  private boolean jj_3R_432() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_434()) {
    jj_scanpos = xsp;
    if (jj_3R_435()) return true;
    }
    return false;
  }

  private boolean jj_3R_270() {
    if (jj_scan_token(114)) return true;
    return false;
  }

  private boolean jj_3R_269() {
    if (jj_scan_token(108)) return true;
    return false;
  }

  private boolean jj_3R_268() {
    if (jj_scan_token(91)) return true;
    return false;
  }

  private boolean jj_3R_403() {
    if (jj_3R_410()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_432()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_115() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_267()) {
    jj_scanpos = xsp;
    if (jj_3R_268()) {
    jj_scanpos = xsp;
    if (jj_3R_269()) {
    jj_scanpos = xsp;
    if (jj_3R_270()) {
    jj_scanpos = xsp;
    if (jj_3R_271()) {
    jj_scanpos = xsp;
    if (jj_3R_272()) {
    jj_scanpos = xsp;
    if (jj_3R_273()) {
    jj_scanpos = xsp;
    if (jj_3R_274()) {
    jj_scanpos = xsp;
    if (jj_3R_275()) {
    jj_scanpos = xsp;
    if (jj_3R_276()) {
    jj_scanpos = xsp;
    if (jj_3R_277()) {
    jj_scanpos = xsp;
    if (jj_3R_278()) {
    jj_scanpos = xsp;
    if (jj_3R_279()) {
    jj_scanpos = xsp;
    if (jj_3R_280()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_267() {
    if (jj_3R_108()) return true;
    return false;
  }

  private boolean jj_3R_122() {
    if (jj_3R_286()) return true;
    return false;
  }

  private boolean jj_3_55() {
    if (jj_scan_token(149)) return true;
    if (jj_scan_token(152)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_285() {
    if (jj_scan_token(40)) return true;
    if (jj_scan_token(33)) return true;
    return false;
  }

  private boolean jj_3R_110() {
    if (jj_scan_token(151)) return true;
    if (jj_scan_token(157)) return true;
    return false;
  }

  private boolean jj_3R_429() {
    if (jj_3R_403()) return true;
    return false;
  }

  private boolean jj_3R_333() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(209)) {
    jj_scanpos = xsp;
    if (jj_scan_token(208)) return true;
    }
    if (jj_scan_token(PITarget)) return true;
    xsp = jj_scanpos;
    if (jj_3R_345()) jj_scanpos = xsp;
    if (jj_scan_token(ProcessingInstructionEnd)) return true;
    return false;
  }

  private boolean jj_3_56() {
    if (jj_3R_82()) return true;
    return false;
  }

  private boolean jj_3R_357() {
    if (jj_3R_115()) return true;
    return false;
  }

  private boolean jj_3R_398() {
    if (jj_3R_403()) return true;
    return false;
  }

  private boolean jj_3R_397() {
    if (jj_scan_token(SlashSlash)) return true;
    if (jj_3R_403()) return true;
    return false;
  }

  private boolean jj_3R_396() {
    if (jj_scan_token(Slash)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_429()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_121() {
    if (jj_3R_285()) return true;
    return false;
  }

  private boolean jj_3R_356() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(199)) {
    jj_scanpos = xsp;
    if (jj_scan_token(207)) return true;
    }
    return false;
  }

  private boolean jj_3R_86() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_121()) {
    jj_scanpos = xsp;
    if (jj_3R_122()) return true;
    }
    return false;
  }

  private boolean jj_3R_59() {
    Token xsp;
    if (jj_3R_86()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_86()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_378() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_396()) {
    jj_scanpos = xsp;
    if (jj_3R_397()) {
    jj_scanpos = xsp;
    if (jj_3R_398()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_344() {
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_356()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_80() {
    if (jj_scan_token(15)) return true;
    if (jj_3R_115()) return true;
    return false;
  }

  private boolean jj_3R_319() {
    if (jj_3R_330()) return true;
    return false;
  }

  private boolean jj_3_22() {
    if (jj_3R_62()) return true;
    return false;
  }

  private boolean jj_3_21() {
    if (jj_3R_61()) return true;
    return false;
  }

  private boolean jj_3R_109() {
    if (jj_scan_token(149)) return true;
    if (jj_scan_token(157)) return true;
    return false;
  }

  private boolean jj_3_20() {
    if (jj_3R_60()) return true;
    return false;
  }

  private boolean jj_3R_81() {
    if (jj_3R_116()) return true;
    return false;
  }

  private boolean jj_3R_74() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_109()) {
    jj_scanpos = xsp;
    if (jj_3R_110()) return true;
    }
    return false;
  }

  private boolean jj_3_53() {
    if (jj_scan_token(148)) return true;
    if (jj_scan_token(145)) return true;
    return false;
  }

  private boolean jj_3_19() {
    if (jj_3R_59()) return true;
    return false;
  }

  private boolean jj_3R_73() {
    if (jj_scan_token(156)) return true;
    if (jj_scan_token(StringLiteral)) return true;
    return false;
  }

  private boolean jj_3R_332() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(217)) {
    jj_scanpos = xsp;
    if (jj_scan_token(216)) return true;
    }
    if (jj_3R_344()) return true;
    if (jj_scan_token(XmlCommentEnd)) return true;
    return false;
  }

  private boolean jj_3R_311() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_19()) {
    jj_scanpos = xsp;
    if (jj_3_20()) {
    jj_scanpos = xsp;
    if (jj_3_21()) {
    jj_scanpos = xsp;
    if (jj_3_22()) {
    jj_scanpos = xsp;
    if (jj_3R_319()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_51() {
    if (jj_scan_token(51)) return true;
    if (jj_scan_token(145)) return true;
    return false;
  }

  private boolean jj_3R_113() {
    if (jj_scan_token(151)) return true;
    if (jj_scan_token(150)) return true;
    return false;
  }

  private boolean jj_3R_318() {
    if (jj_scan_token(23)) return true;
    return false;
  }

  private boolean jj_3R_404() {
    if (jj_scan_token(PragmaOpen)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(235)) jj_scanpos = xsp;
    if (jj_scan_token(QNameForPragma)) return true;
    return false;
  }

  private boolean jj_3_57() {
    if (jj_scan_token(149)) return true;
    if (jj_scan_token(155)) return true;
    return false;
  }

  private boolean jj_3R_79() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_57()) {
    jj_scanpos = xsp;
    if (jj_3R_114()) {
    jj_scanpos = xsp;
    if (jj_3_58()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_306() {
    if (jj_3R_311()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_318()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_116() {
    if (jj_scan_token(31)) return true;
    return false;
  }

  private boolean jj_3_54() {
    if (jj_scan_token(149)) return true;
    if (jj_scan_token(152)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_81()) {
    jj_scanpos = xsp;
    if (jj_scan_token(12)) return true;
    }
    return false;
  }

  private boolean jj_3R_399() {
    if (jj_3R_404()) return true;
    return false;
  }

  private boolean jj_3R_75() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_54()) {
    jj_scanpos = xsp;
    if (jj_3_55()) {
    jj_scanpos = xsp;
    if (jj_3R_111()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_112() {
    if (jj_scan_token(149)) return true;
    if (jj_scan_token(150)) return true;
    return false;
  }

  private boolean jj_3R_379() {
    Token xsp;
    if (jj_3R_399()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_399()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_76() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_112()) {
    jj_scanpos = xsp;
    if (jj_3R_113()) return true;
    }
    return false;
  }

  private boolean jj_3R_87() {
    if (jj_3R_123()) return true;
    return false;
  }

  private boolean jj_3_40() {
    if (jj_scan_token(31)) return true;
    if (jj_scan_token(141)) return true;
    return false;
  }

  private boolean jj_3_52() {
    if (jj_scan_token(148)) return true;
    if (jj_scan_token(144)) return true;
    return false;
  }

  private boolean jj_3R_78() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_52()) {
    jj_scanpos = xsp;
    if (jj_3_53()) return true;
    }
    return false;
  }

  private boolean jj_3R_123() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(86)) {
    jj_scanpos = xsp;
    if (jj_scan_token(87)) return true;
    }
    return false;
  }

  private boolean jj_3_50() {
    if (jj_scan_token(51)) return true;
    if (jj_scan_token(144)) return true;
    return false;
  }

  private boolean jj_3R_77() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_50()) {
    jj_scanpos = xsp;
    if (jj_3_51()) {
    jj_scanpos = xsp;
    if (jj_scan_token(146)) {
    jj_scanpos = xsp;
    if (jj_scan_token(147)) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3_49() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3_48() {
    if (jj_3R_79()) return true;
    return false;
  }

  private boolean jj_3_47() {
    if (jj_3R_78()) return true;
    return false;
  }

  private boolean jj_3_46() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3_45() {
    if (jj_3R_76()) return true;
    return false;
  }

  private boolean jj_3_44() {
    if (jj_3R_75()) return true;
    return false;
  }

  private boolean jj_3_43() {
    if (jj_3R_74()) return true;
    return false;
  }

  private boolean jj_3R_63() {
    if (jj_scan_token(85)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_87()) jj_scanpos = xsp;
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    return false;
  }

  private boolean jj_3R_72() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_42()) {
    jj_scanpos = xsp;
    if (jj_3_43()) {
    jj_scanpos = xsp;
    if (jj_3_44()) {
    jj_scanpos = xsp;
    if (jj_3_45()) {
    jj_scanpos = xsp;
    if (jj_3_46()) {
    jj_scanpos = xsp;
    if (jj_3_47()) {
    jj_scanpos = xsp;
    if (jj_3_48()) {
    jj_scanpos = xsp;
    if (jj_3_49()) return true;
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_42() {
    if (jj_3R_73()) return true;
    return false;
  }

  private boolean jj_3_41() {
    if (jj_3R_72()) return true;
    return false;
  }

  private boolean jj_3R_71() {
    Token xsp;
    if (jj_3_41()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_41()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_395() {
    if (jj_scan_token(84)) return true;
    return false;
  }

  private boolean jj_3_39() {
    if (jj_scan_token(31)) return true;
    if (jj_scan_token(140)) return true;
    return false;
  }

  private boolean jj_3R_394() {
    if (jj_scan_token(83)) return true;
    return false;
  }

  private boolean jj_3R_393() {
    if (jj_scan_token(82)) return true;
    return false;
  }

  private boolean jj_3R_377() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_393()) {
    jj_scanpos = xsp;
    if (jj_3R_394()) {
    jj_scanpos = xsp;
    if (jj_3R_395()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_49() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(14)) return true;
    return false;
  }

  private boolean jj_3R_386() {
    if (jj_scan_token(81)) return true;
    return false;
  }

  private boolean jj_3R_118() {
    if (jj_scan_token(131)) return true;
    if (jj_3R_281()) return true;
    return false;
  }

  private boolean jj_3_38() {
    if (jj_scan_token(31)) return true;
    if (jj_scan_token(130)) return true;
    return false;
  }

  private boolean jj_3R_385() {
    if (jj_scan_token(80)) return true;
    return false;
  }

  private boolean jj_3_37() {
    if (jj_scan_token(31)) return true;
    if (jj_scan_token(Least)) return true;
    return false;
  }

  private boolean jj_3R_384() {
    if (jj_scan_token(79)) return true;
    return false;
  }

  private boolean jj_3R_55() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(35)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(11)) {
    jj_scanpos = xsp;
    if (jj_scan_token(10)) return true;
    }
    return false;
  }

  private boolean jj_3R_383() {
    if (jj_scan_token(78)) return true;
    return false;
  }

  private boolean jj_3R_382() {
    if (jj_scan_token(77)) return true;
    return false;
  }

  private boolean jj_3R_381() {
    if (jj_scan_token(76)) return true;
    return false;
  }

  private boolean jj_3R_48() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(32)) return true;
    return false;
  }

  private boolean jj_3R_375() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_381()) {
    jj_scanpos = xsp;
    if (jj_3R_382()) {
    jj_scanpos = xsp;
    if (jj_3R_383()) {
    jj_scanpos = xsp;
    if (jj_3R_384()) {
    jj_scanpos = xsp;
    if (jj_3R_385()) {
    jj_scanpos = xsp;
    if (jj_3R_386()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_117() {
    if (jj_scan_token(129)) return true;
    if (jj_3R_281()) return true;
    return false;
  }

  private boolean jj_3R_82() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_117()) {
    jj_scanpos = xsp;
    if (jj_3_37()) {
    jj_scanpos = xsp;
    if (jj_3_38()) {
    jj_scanpos = xsp;
    if (jj_3R_118()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_392() {
    if (jj_scan_token(75)) return true;
    return false;
  }

  private boolean jj_3R_391() {
    if (jj_scan_token(74)) return true;
    return false;
  }

  private boolean jj_3R_390() {
    if (jj_scan_token(73)) return true;
    return false;
  }

  private boolean jj_3R_282() {
    if (jj_scan_token(29)) return true;
    if (jj_scan_token(4)) return true;
    return false;
  }

  private boolean jj_3R_389() {
    if (jj_scan_token(LessThanOpOrTagO)) return true;
    return false;
  }

  private boolean jj_3R_388() {
    if (jj_scan_token(72)) return true;
    return false;
  }

  private boolean jj_3R_387() {
    if (jj_scan_token(6)) return true;
    return false;
  }

  private boolean jj_3R_376() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_387()) {
    jj_scanpos = xsp;
    if (jj_3R_388()) {
    jj_scanpos = xsp;
    if (jj_3R_389()) {
    jj_scanpos = xsp;
    if (jj_3R_390()) {
    jj_scanpos = xsp;
    if (jj_3R_391()) {
    jj_scanpos = xsp;
    if (jj_3R_392()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_355() {
    if (jj_scan_token(S)) return true;
    return false;
  }

  private boolean jj_3_36() {
    if (jj_3R_71()) return true;
    return false;
  }

  private boolean jj_3R_373() {
    if (jj_3R_379()) return true;
    return false;
  }

  private boolean jj_3R_342() {
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_355()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_372() {
    if (jj_3R_378()) return true;
    return false;
  }

  private boolean jj_3_25() {
    if (jj_3R_63()) return true;
    return false;
  }

  private boolean jj_3R_365() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_25()) {
    jj_scanpos = xsp;
    if (jj_3R_372()) {
    jj_scanpos = xsp;
    if (jj_3R_373()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_58() {
    if (jj_scan_token(29)) return true;
    if (jj_scan_token(30)) return true;
    return false;
  }

  private boolean jj_3R_371() {
    if (jj_scan_token(Plus)) return true;
    return false;
  }

  private boolean jj_3R_370() {
    if (jj_scan_token(Minus)) return true;
    return false;
  }

  private boolean jj_3R_364() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_370()) {
    jj_scanpos = xsp;
    if (jj_3R_371()) return true;
    }
    return false;
  }

  private boolean jj_3R_361() {
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_364()) { jj_scanpos = xsp; break; }
    }
    if (jj_3R_365()) return true;
    return false;
  }

  private boolean jj_3R_54() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(28)) return true;
    if (jj_3R_283()) return true;
    return false;
  }

  private boolean jj_3R_423() {
    if (jj_scan_token(71)) return true;
    return false;
  }

  private boolean jj_3R_53() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(12)) return true;
    if (jj_scan_token(27)) return true;
    return false;
  }

  private boolean jj_3R_358() {
    if (jj_3R_361()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_423()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_283() {
    if (jj_scan_token(StringLiteral)) return true;
    return false;
  }

  private boolean jj_3R_421() {
    if (jj_scan_token(70)) return true;
    return false;
  }

  private boolean jj_3R_352() {
    if (jj_3R_358()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_421()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_300() {
    if (jj_scan_token(24)) return true;
    return false;
  }

  private boolean jj_3R_299() {
    if (jj_scan_token(10)) return true;
    return false;
  }

  private boolean jj_3R_284() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_299()) {
    jj_scanpos = xsp;
    if (jj_3R_300()) return true;
    }
    return false;
  }

  private boolean jj_3R_419() {
    if (jj_scan_token(69)) return true;
    return false;
  }

  private boolean jj_3R_340() {
    if (jj_3R_352()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_419()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_343() {
    if (jj_scan_token(StartTagClose)) return true;
    return false;
  }

  private boolean jj_3R_120() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(22)) return true;
    if (jj_3R_284()) return true;
    return false;
  }

  private boolean jj_3R_415() {
    if (jj_scan_token(67)) return true;
    return false;
  }

  private boolean jj_3R_331() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(187)) {
    jj_scanpos = xsp;
    if (jj_scan_token(188)) return true;
    }
    if (jj_scan_token(TagQName)) return true;
    if (jj_3R_342()) return true;
    xsp = jj_scanpos;
    if (jj_scan_token(200)) {
    jj_scanpos = xsp;
    if (jj_3R_343()) return true;
    }
    return false;
  }

  private boolean jj_3R_329() {
    if (jj_3R_340()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_415()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_57() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(12)) return true;
    if (jj_scan_token(20)) return true;
    return false;
  }

  private boolean jj_3R_135() {
    if (jj_scan_token(116)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_417() {
    if (jj_scan_token(66)) return true;
    return false;
  }

  private boolean jj_3R_322() {
    if (jj_3R_333()) return true;
    return false;
  }

  private boolean jj_3R_321() {
    if (jj_3R_332()) return true;
    return false;
  }

  private boolean jj_3R_320() {
    if (jj_3R_331()) return true;
    return false;
  }

  private boolean jj_3R_416() {
    if (jj_scan_token(65)) return true;
    return false;
  }

  private boolean jj_3R_56() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(17)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(18)) {
    jj_scanpos = xsp;
    if (jj_scan_token(19)) return true;
    }
    return false;
  }

  private boolean jj_3R_312() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_320()) {
    jj_scanpos = xsp;
    if (jj_3R_321()) {
    jj_scanpos = xsp;
    if (jj_3R_322()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_411() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_416()) {
    jj_scanpos = xsp;
    if (jj_3R_417()) return true;
    }
    return false;
  }

  private boolean jj_3R_308() {
    if (jj_3R_313()) return true;
    return false;
  }

  private boolean jj_3R_314() {
    if (jj_3R_329()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_411()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_51() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(16)) return true;
    return false;
  }

  private boolean jj_3R_307() {
    if (jj_3R_312()) return true;
    return false;
  }

  private boolean jj_3R_291() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_307()) {
    jj_scanpos = xsp;
    if (jj_3R_308()) return true;
    }
    return false;
  }

  private boolean jj_3R_413() {
    if (jj_scan_token(64)) return true;
    return false;
  }

  private boolean jj_3R_50() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(15)) return true;
    return false;
  }

  private boolean jj_3R_266() {
    if (jj_scan_token(158)) return true;
    return false;
  }

  private boolean jj_3R_412() {
    if (jj_scan_token(63)) return true;
    return false;
  }

  private boolean jj_3R_265() {
    if (jj_scan_token(139)) return true;
    return false;
  }

  private boolean jj_3R_405() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_412()) {
    jj_scanpos = xsp;
    if (jj_3R_413()) return true;
    }
    return false;
  }

  private boolean jj_3R_264() {
    if (jj_scan_token(138)) return true;
    return false;
  }

  private boolean jj_3R_305() {
    if (jj_3R_311()) return true;
    return false;
  }

  private boolean jj_3R_263() {
    if (jj_scan_token(135)) return true;
    return false;
  }

  private boolean jj_3R_133() {
    if (jj_scan_token(13)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_309() {
    if (jj_3R_314()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_405()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_262() {
    if (jj_scan_token(134)) return true;
    return false;
  }

  private boolean jj_3R_68() {
    if (jj_3R_108()) return true;
    if (jj_scan_token(36)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_305()) jj_scanpos = xsp;
    if (jj_scan_token(37)) return true;
    return false;
  }

  private boolean jj_3R_261() {
    if (jj_scan_token(137)) return true;
    return false;
  }

  private boolean jj_3R_45() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(12)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(13)) {
    jj_scanpos = xsp;
    if (jj_scan_token(14)) return true;
    }
    return false;
  }

  private boolean jj_3R_260() {
    if (jj_scan_token(136)) return true;
    return false;
  }

  private boolean jj_3R_409() {
    if (jj_scan_token(62)) return true;
    return false;
  }

  private boolean jj_3R_259() {
    if (jj_scan_token(128)) return true;
    return false;
  }

  private boolean jj_3R_408() {
    if (jj_scan_token(61)) return true;
    return false;
  }

  private boolean jj_3R_119() {
    if (jj_3R_282()) return true;
    return false;
  }

  private boolean jj_3R_258() {
    if (jj_scan_token(127)) return true;
    return false;
  }

  private boolean jj_3R_257() {
    if (jj_scan_token(132)) return true;
    return false;
  }

  private boolean jj_3R_407() {
    if (jj_scan_token(60)) return true;
    return false;
  }

  private boolean jj_3R_70() {
    if (jj_scan_token(19)) return true;
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_256() {
    if (jj_scan_token(133)) return true;
    return false;
  }

  private boolean jj_3R_52() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(9)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(10)) {
    jj_scanpos = xsp;
    if (jj_scan_token(11)) return true;
    }
    return false;
  }

  private boolean jj_3R_255() {
    if (jj_scan_token(131)) return true;
    return false;
  }

  private boolean jj_3R_406() {
    if (jj_scan_token(59)) return true;
    return false;
  }

  private boolean jj_3R_136() {
    if (jj_scan_token(115)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_254() {
    if (jj_scan_token(130)) return true;
    return false;
  }

  private boolean jj_3R_400() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_406()) {
    jj_scanpos = xsp;
    if (jj_3R_407()) {
    jj_scanpos = xsp;
    if (jj_3R_408()) {
    jj_scanpos = xsp;
    if (jj_3R_409()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_253() {
    if (jj_scan_token(129)) return true;
    return false;
  }

  private boolean jj_3R_69() {
    if (jj_scan_token(18)) return true;
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_252() {
    if (jj_scan_token(123)) return true;
    return false;
  }

  private boolean jj_3R_298() {
    if (jj_3R_309()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_400()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_251() {
    if (jj_scan_token(126)) return true;
    return false;
  }

  private boolean jj_3R_47() {
    if (jj_scan_token(8)) return true;
    if (jj_scan_token(5)) return true;
    return false;
  }

  private boolean jj_3R_250() {
    if (jj_scan_token(124)) return true;
    return false;
  }

  private boolean jj_3R_304() {
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_249() {
    if (jj_scan_token(122)) return true;
    return false;
  }

  private boolean jj_3R_290() {
    if (jj_scan_token(105)) return true;
    return false;
  }

  private boolean jj_3R_402() {
    if (jj_scan_token(Minus)) return true;
    return false;
  }

  private boolean jj_3R_248() {
    if (jj_scan_token(143)) return true;
    return false;
  }

  private boolean jj_3R_247() {
    if (jj_scan_token(142)) return true;
    return false;
  }

  private boolean jj_3R_401() {
    if (jj_scan_token(Plus)) return true;
    return false;
  }

  private boolean jj_3R_246() {
    if (jj_scan_token(141)) return true;
    return false;
  }

  private boolean jj_3_18() {
    if (jj_3R_58()) return true;
    return false;
  }

  private boolean jj_3R_245() {
    if (jj_scan_token(140)) return true;
    return false;
  }

  private boolean jj_3R_289() {
    if (jj_scan_token(36)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_304()) jj_scanpos = xsp;
    if (jj_scan_token(37)) return true;
    return false;
  }

  private boolean jj_3R_84() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_18()) {
    jj_scanpos = xsp;
    if (jj_3R_119()) return true;
    }
    return false;
  }

  private boolean jj_3R_380() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_401()) {
    jj_scanpos = xsp;
    if (jj_3R_402()) return true;
    }
    return false;
  }

  private boolean jj_3R_244() {
    if (jj_scan_token(157)) return true;
    return false;
  }

  private boolean jj_3R_85() {
    if (jj_3R_120()) return true;
    return false;
  }

  private boolean jj_3R_243() {
    if (jj_scan_token(156)) return true;
    return false;
  }

  private boolean jj_3R_281() {
    if (jj_3R_298()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_380()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_17() {
    if (jj_3R_57()) return true;
    return false;
  }

  private boolean jj_3_16() {
    if (jj_3R_56()) return true;
    return false;
  }

  private boolean jj_3_15() {
    if (jj_3R_55()) return true;
    return false;
  }

  private boolean jj_3R_242() {
    if (jj_scan_token(125)) return true;
    return false;
  }

  private boolean jj_3_14() {
    if (jj_3R_54()) return true;
    return false;
  }

  private boolean jj_3_13() {
    if (jj_3R_53()) return true;
    return false;
  }

  private boolean jj_3R_134() {
    if (jj_scan_token(91)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_303() {
    if (jj_3R_115()) return true;
    return false;
  }

  private boolean jj_3R_241() {
    if (jj_scan_token(155)) return true;
    return false;
  }

  private boolean jj_3_12() {
    if (jj_3R_52()) return true;
    return false;
  }

  private boolean jj_3R_240() {
    if (jj_scan_token(154)) return true;
    return false;
  }

  private boolean jj_3R_239() {
    if (jj_scan_token(153)) return true;
    return false;
  }

  private boolean jj_3R_46() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_12()) {
    jj_scanpos = xsp;
    if (jj_3_13()) {
    jj_scanpos = xsp;
    if (jj_3_14()) {
    jj_scanpos = xsp;
    if (jj_3_15()) {
    jj_scanpos = xsp;
    if (jj_3_16()) {
    jj_scanpos = xsp;
    if (jj_3_17()) {
    jj_scanpos = xsp;
    if (jj_3R_85()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_374() {
    if (jj_scan_token(58)) return true;
    return false;
  }

  private boolean jj_3R_238() {
    if (jj_scan_token(152)) return true;
    return false;
  }

  private boolean jj_3R_288() {
    if (jj_scan_token(33)) return true;
    if (jj_3R_303()) return true;
    return false;
  }

  private boolean jj_3R_237() {
    if (jj_scan_token(150)) return true;
    return false;
  }

  private boolean jj_3R_363() {
    if (jj_3R_281()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_374()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_11() {
    if (jj_3R_51()) return true;
    return false;
  }

  private boolean jj_3R_236() {
    if (jj_scan_token(151)) return true;
    return false;
  }

  private boolean jj_3_10() {
    if (jj_3R_50()) return true;
    return false;
  }

  private boolean jj_3R_235() {
    if (jj_scan_token(148)) return true;
    return false;
  }

  private boolean jj_3_9() {
    if (jj_3R_49()) return true;
    return false;
  }

  private boolean jj_3R_234() {
    if (jj_scan_token(149)) return true;
    return false;
  }

  private boolean jj_3R_137() {
    if (jj_scan_token(109)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_366() {
    if (jj_scan_token(57)) return true;
    return false;
  }

  private boolean jj_3R_317() {
    if (jj_scan_token(DoubleLiteral)) return true;
    return false;
  }

  private boolean jj_3R_233() {
    if (jj_scan_token(144)) return true;
    return false;
  }

  private boolean jj_3R_316() {
    if (jj_scan_token(DecimalLiteral)) return true;
    return false;
  }

  private boolean jj_3_8() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_232() {
    if (jj_scan_token(145)) return true;
    return false;
  }

  private boolean jj_3R_360() {
    if (jj_3R_363()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_366()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_44() {
    if (jj_3R_84()) return true;
    return false;
  }

  private boolean jj_3R_231() {
    if (jj_scan_token(147)) return true;
    return false;
  }

  private boolean jj_3R_315() {
    if (jj_scan_token(IntegerLiteral)) return true;
    return false;
  }

  private boolean jj_3_7() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_8()) {
    jj_scanpos = xsp;
    if (jj_3_9()) {
    jj_scanpos = xsp;
    if (jj_3_10()) {
    jj_scanpos = xsp;
    if (jj_3_11()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_369() {
    if (jj_3R_377()) return true;
    return false;
  }

  private boolean jj_3_6() {
    if (jj_3R_47()) return true;
    return false;
  }

  private boolean jj_3R_230() {
    if (jj_scan_token(146)) return true;
    return false;
  }

  private boolean jj_3R_368() {
    if (jj_3R_376()) return true;
    return false;
  }

  private boolean jj_3R_138() {
    if (jj_scan_token(108)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_310() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_315()) {
    jj_scanpos = xsp;
    if (jj_3R_316()) {
    jj_scanpos = xsp;
    if (jj_3R_317()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_5() {
    if (jj_3R_46()) return true;
    return false;
  }

  private boolean jj_3R_229() {
    if (jj_scan_token(120)) return true;
    return false;
  }

  private boolean jj_3R_367() {
    if (jj_3R_375()) return true;
    return false;
  }

  private boolean jj_3R_228() {
    if (jj_scan_token(117)) return true;
    return false;
  }

  private boolean jj_3_4() {
    if (jj_3R_45()) return true;
    return false;
  }

  private boolean jj_3R_362() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_367()) {
    jj_scanpos = xsp;
    if (jj_3R_368()) {
    jj_scanpos = xsp;
    if (jj_3R_369()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_227() {
    if (jj_scan_token(106)) return true;
    return false;
  }

  private boolean jj_3R_139() {
    if (jj_scan_token(107)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_226() {
    if (jj_scan_token(101)) return true;
    return false;
  }

  private boolean jj_3_3() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_4()) {
    jj_scanpos = xsp;
    if (jj_3_5()) {
    jj_scanpos = xsp;
    if (jj_3_6()) {
    jj_scanpos = xsp;
    if (jj_3R_44()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_354() {
    if (jj_3R_360()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_362()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_302() {
    if (jj_scan_token(StringLiteral)) return true;
    return false;
  }

  private boolean jj_3R_225() {
    if (jj_scan_token(100)) return true;
    return false;
  }

  private boolean jj_3R_224() {
    if (jj_scan_token(99)) return true;
    return false;
  }

  private boolean jj_3R_301() {
    if (jj_3R_310()) return true;
    return false;
  }

  private boolean jj_3R_287() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_301()) {
    jj_scanpos = xsp;
    if (jj_3R_302()) return true;
    }
    return false;
  }

  private boolean jj_3R_223() {
    if (jj_scan_token(98)) return true;
    return false;
  }

  private boolean jj_3R_132() {
    if (jj_scan_token(114)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_222() {
    if (jj_scan_token(97)) return true;
    return false;
  }

  private boolean jj_3R_128() {
    if (jj_3R_291()) return true;
    return false;
  }

  private boolean jj_3R_359() {
    if (jj_scan_token(56)) return true;
    return false;
  }

  private boolean jj_3_32() {
    if (jj_3R_70()) return true;
    return false;
  }

  private boolean jj_3R_221() {
    if (jj_scan_token(95)) return true;
    return false;
  }

  private boolean jj_3_31() {
    if (jj_3R_69()) return true;
    return false;
  }

  private boolean jj_3_30() {
    if (jj_3R_68()) return true;
    return false;
  }

  private boolean jj_3R_127() {
    if (jj_3R_290()) return true;
    return false;
  }

  private boolean jj_3R_220() {
    if (jj_scan_token(94)) return true;
    return false;
  }

  private boolean jj_3R_126() {
    if (jj_3R_289()) return true;
    return false;
  }

  private boolean jj_3R_341() {
    if (jj_3R_354()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_359()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_83() {
    if (jj_scan_token(4)) return true;
    if (jj_scan_token(5)) return true;
    return false;
  }

  private boolean jj_3R_125() {
    if (jj_3R_288()) return true;
    return false;
  }

  private boolean jj_3R_219() {
    if (jj_scan_token(93)) return true;
    return false;
  }

  private boolean jj_3R_124() {
    if (jj_3R_287()) return true;
    return false;
  }

  private boolean jj_3R_140() {
    if (jj_scan_token(113)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_218() {
    if (jj_scan_token(92)) return true;
    return false;
  }

  private boolean jj_3R_217() {
    if (jj_scan_token(90)) return true;
    return false;
  }

  private boolean jj_3R_88() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_124()) {
    jj_scanpos = xsp;
    if (jj_3R_125()) {
    jj_scanpos = xsp;
    if (jj_3R_126()) {
    jj_scanpos = xsp;
    if (jj_3R_127()) {
    jj_scanpos = xsp;
    if (jj_3_30()) {
    jj_scanpos = xsp;
    if (jj_3_31()) {
    jj_scanpos = xsp;
    if (jj_3_32()) {
    jj_scanpos = xsp;
    if (jj_3R_128()) return true;
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_107() {
    if (jj_3R_140()) return true;
    return false;
  }

  private boolean jj_3R_106() {
    if (jj_3R_139()) return true;
    return false;
  }

  private boolean jj_3R_105() {
    if (jj_3R_138()) return true;
    return false;
  }

  private boolean jj_3R_216() {
    if (jj_scan_token(88)) return true;
    return false;
  }

  private boolean jj_3R_104() {
    if (jj_3R_137()) return true;
    return false;
  }

  private boolean jj_3R_103() {
    if (jj_3R_136()) return true;
    return false;
  }

  private boolean jj_3R_353() {
    if (jj_scan_token(55)) return true;
    return false;
  }

  private boolean jj_3R_102() {
    if (jj_3R_135()) return true;
    return false;
  }

  private boolean jj_3R_215() {
    if (jj_scan_token(85)) return true;
    return false;
  }

  private boolean jj_3R_101() {
    if (jj_3R_134()) return true;
    return false;
  }

  private boolean jj_3R_43() {
    if (jj_3R_83()) return true;
    return false;
  }

  private boolean jj_3R_100() {
    if (jj_3R_133()) return true;
    return false;
  }

  private boolean jj_3R_214() {
    if (jj_scan_token(82)) return true;
    return false;
  }

  private boolean jj_3R_330() {
    if (jj_3R_341()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_353()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_292() {
    if (jj_scan_token(103)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_99() {
    if (jj_3R_132()) return true;
    return false;
  }

  private boolean jj_3R_213() {
    if (jj_scan_token(81)) return true;
    return false;
  }

  private boolean jj_3R_212() {
    if (jj_scan_token(80)) return true;
    return false;
  }

  private boolean jj_3_2() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3R_67() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_99()) {
    jj_scanpos = xsp;
    if (jj_3R_100()) {
    jj_scanpos = xsp;
    if (jj_3R_101()) {
    jj_scanpos = xsp;
    if (jj_3R_102()) {
    jj_scanpos = xsp;
    if (jj_3R_103()) {
    jj_scanpos = xsp;
    if (jj_3R_104()) {
    jj_scanpos = xsp;
    if (jj_3R_105()) {
    jj_scanpos = xsp;
    if (jj_3R_106()) {
    jj_scanpos = xsp;
    if (jj_3R_107()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_211() {
    if (jj_scan_token(79)) return true;
    return false;
  }

  private boolean jj_3R_129() {
    if (jj_3R_292()) return true;
    return false;
  }

  private boolean jj_3R_210() {
    if (jj_scan_token(78)) return true;
    return false;
  }

  private boolean jj_3R_209() {
    if (jj_scan_token(77)) return true;
    return false;
  }

  private boolean jj_3R_89() {
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_129()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_62() {
    if (jj_scan_token(52)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_208() {
    if (jj_scan_token(76)) return true;
    return false;
  }

  private boolean jj_3R_207() {
    if (jj_scan_token(71)) return true;
    return false;
  }

  private boolean jj_3R_206() {
    if (jj_scan_token(70)) return true;
    return false;
  }

  private boolean jj_3_35() {
    if (jj_scan_token(112)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_205() {
    if (jj_scan_token(69)) return true;
    return false;
  }

  private boolean jj_3R_64() {
    if (jj_3R_88()) return true;
    if (jj_3R_89()) return true;
    return false;
  }

  private boolean jj_3_34() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_204() {
    if (jj_scan_token(68)) return true;
    return false;
  }

  private boolean jj_3R_203() {
    if (jj_scan_token(67)) return true;
    return false;
  }

  private boolean jj_3R_42() {
    if (jj_scan_token(1)) return true;
    if (jj_scan_token(2)) return true;
    return false;
  }

  private boolean jj_3R_202() {
    if (jj_scan_token(66)) return true;
    return false;
  }

  private boolean jj_3R_201() {
    if (jj_scan_token(65)) return true;
    return false;
  }

  private boolean jj_3R_437() {
    if (jj_scan_token(StarColonNCName)) return true;
    return false;
  }

  private boolean jj_3R_200() {
    if (jj_scan_token(63)) return true;
    return false;
  }

  private boolean jj_3R_199() {
    if (jj_scan_token(62)) return true;
    return false;
  }

  private boolean jj_3R_436() {
    if (jj_scan_token(NCNameColonStar)) return true;
    return false;
  }

  private boolean jj_3_1() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3R_198() {
    if (jj_scan_token(61)) return true;
    return false;
  }

  private boolean jj_3R_197() {
    if (jj_scan_token(60)) return true;
    return false;
  }

  private boolean jj_3R_61() {
    if (jj_scan_token(50)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_433() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(59)) {
    jj_scanpos = xsp;
    if (jj_3R_436()) {
    jj_scanpos = xsp;
    if (jj_3R_437()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_196() {
    if (jj_scan_token(58)) return true;
    return false;
  }

  private boolean jj_3R_195() {
    if (jj_scan_token(57)) return true;
    return false;
  }

  private boolean jj_3R_194() {
    if (jj_scan_token(56)) return true;
    return false;
  }

  private boolean jj_3R_431() {
    if (jj_3R_433()) return true;
    return false;
  }

  private boolean jj_3R_193() {
    if (jj_scan_token(55)) return true;
    return false;
  }

  private boolean jj_3_33() {
    if (jj_scan_token(111)) return true;
    if (jj_scan_token(36)) return true;
    return false;
  }

  private boolean jj_3R_192() {
    if (jj_scan_token(54)) return true;
    return false;
  }

  private boolean jj_3R_430() {
    if (jj_3R_115()) return true;
    return false;
  }

  private boolean jj_3R_191() {
    if (jj_scan_token(53)) return true;
    return false;
  }

  private boolean jj_3R_190() {
    if (jj_scan_token(51)) return true;
    return false;
  }

  private boolean jj_3R_428() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_430()) {
    jj_scanpos = xsp;
    if (jj_3R_431()) return true;
    }
    return false;
  }

  private boolean jj_3R_189() {
    if (jj_scan_token(49)) return true;
    return false;
  }

  private boolean jj_3R_188() {
    if (jj_scan_token(48)) return true;
    return false;
  }

  private boolean jj_3R_427() {
    if (jj_3R_428()) return true;
    return false;
  }

  private boolean jj_3R_187() {
    if (jj_scan_token(47)) return true;
    return false;
  }

  private boolean jj_3_29() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_186() {
    if (jj_scan_token(Descending)) return true;
    return false;
  }

  private boolean jj_3R_426() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_29()) {
    jj_scanpos = xsp;
    if (jj_3R_427()) return true;
    }
    return false;
  }

  private boolean jj_3R_185() {
    if (jj_scan_token(Ascending)) return true;
    return false;
  }

  private boolean jj_3R_60() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(47)) {
    jj_scanpos = xsp;
    if (jj_scan_token(48)) return true;
    }
    if (jj_scan_token(33)) return true;
    return false;
  }

  private boolean jj_3R_184() {
    if (jj_scan_token(46)) return true;
    return false;
  }

  private boolean jj_3R_183() {
    if (jj_scan_token(45)) return true;
    return false;
  }

  private boolean jj_3R_182() {
    if (jj_scan_token(44)) return true;
    return false;
  }

  private boolean jj_3R_131() {
    if (jj_scan_token(102)) return true;
    return false;
  }

  private boolean jj_3R_181() {
    if (jj_scan_token(43)) return true;
    return false;
  }

  private boolean jj_3R_180() {
    if (jj_scan_token(42)) return true;
    return false;
  }

  private boolean jj_3R_179() {
    if (jj_scan_token(41)) return true;
    return false;
  }

  private boolean jj_3R_297() {
    if (jj_scan_token(101)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_178() {
    if (jj_scan_token(40)) return true;
    return false;
  }

  private boolean jj_3R_351() {
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_296() {
    if (jj_scan_token(100)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_177() {
    if (jj_scan_token(39)) return true;
    return false;
  }

  private boolean jj_3R_350() {
    if (jj_3R_357()) return true;
    return false;
  }

  private boolean jj_3R_295() {
    if (jj_scan_token(99)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_176() {
    if (jj_scan_token(87)) return true;
    return false;
  }

  private boolean jj_3R_294() {
    if (jj_scan_token(98)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_339() {
    if (jj_scan_token(109)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_350()) {
    jj_scanpos = xsp;
    if (jj_3R_351()) return true;
    }
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    return false;
  }

  private boolean jj_3R_175() {
    if (jj_scan_token(86)) return true;
    return false;
  }

  private boolean jj_3R_293() {
    if (jj_scan_token(97)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_174() {
    if (jj_scan_token(38)) return true;
    return false;
  }

  private boolean jj_3R_173() {
    if (jj_scan_token(35)) return true;
    return false;
  }

  private boolean jj_3R_130() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_293()) {
    jj_scanpos = xsp;
    if (jj_3R_294()) {
    jj_scanpos = xsp;
    if (jj_3R_295()) {
    jj_scanpos = xsp;
    if (jj_3R_296()) {
    jj_scanpos = xsp;
    if (jj_3R_297()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_172() {
    if (jj_scan_token(32)) return true;
    return false;
  }

  private boolean jj_3R_171() {
    if (jj_scan_token(31)) return true;
    return false;
  }

  private boolean jj_3R_338() {
    if (jj_scan_token(108)) return true;
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_170() {
    if (jj_scan_token(30)) return true;
    return false;
  }

  private boolean jj_3R_91() {
    if (jj_3R_131()) return true;
    return false;
  }

  private boolean jj_3R_169() {
    if (jj_scan_token(29)) return true;
    return false;
  }

  private boolean jj_3R_168() {
    if (jj_scan_token(28)) return true;
    return false;
  }

  private boolean jj_3R_167() {
    if (jj_scan_token(27)) return true;
    return false;
  }

  private boolean jj_3R_90() {
    if (jj_3R_130()) return true;
    return false;
  }

  private boolean jj_3R_65() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_90()) {
    jj_scanpos = xsp;
    if (jj_3R_91()) return true;
    }
    return false;
  }

  private boolean jj_3R_337() {
    if (jj_scan_token(107)) return true;
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_166() {
    if (jj_scan_token(26)) return true;
    return false;
  }

  private boolean jj_3R_165() {
    if (jj_scan_token(25)) return true;
    return false;
  }

  private boolean jj_3R_164() {
    if (jj_scan_token(24)) return true;
    return false;
  }

  private boolean jj_3R_163() {
    if (jj_scan_token(22)) return true;
    return false;
  }

  private boolean jj_3R_349() {
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_162() {
    if (jj_scan_token(Least)) return true;
    return false;
  }

  private boolean jj_3R_425() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(96)) jj_scanpos = xsp;
    if (jj_3R_426()) return true;
    return false;
  }

  private boolean jj_3R_348() {
    if (jj_3R_115()) return true;
    return false;
  }

  private boolean jj_3R_161() {
    if (jj_scan_token(Greatest)) return true;
    return false;
  }

  private boolean jj_3R_345() {
    if (jj_scan_token(SForPI)) return true;
    return false;
  }

  private boolean jj_3R_160() {
    if (jj_scan_token(21)) return true;
    return false;
  }

  private boolean jj_3R_336() {
    if (jj_scan_token(91)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_348()) {
    jj_scanpos = xsp;
    if (jj_3R_349()) return true;
    }
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    return false;
  }

  private boolean jj_3R_159() {
    if (jj_scan_token(20)) return true;
    return false;
  }

  private boolean jj_3R_98() {
    if (jj_scan_token(95)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_158() {
    if (jj_scan_token(19)) return true;
    return false;
  }

  private boolean jj_3R_97() {
    if (jj_scan_token(94)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_157() {
    if (jj_scan_token(18)) return true;
    return false;
  }

  private boolean jj_3R_96() {
    if (jj_scan_token(93)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_111() {
    if (jj_scan_token(151)) return true;
    if (jj_scan_token(152)) return true;
    return false;
  }

  private boolean jj_3R_156() {
    if (jj_scan_token(17)) return true;
    return false;
  }

  private boolean jj_3R_95() {
    if (jj_scan_token(92)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_155() {
    if (jj_scan_token(16)) return true;
    return false;
  }

  private boolean jj_3R_94() {
    if (jj_scan_token(91)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_154() {
    if (jj_scan_token(15)) return true;
    return false;
  }

  private boolean jj_3R_93() {
    if (jj_scan_token(90)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_153() {
    if (jj_scan_token(14)) return true;
    return false;
  }

  private boolean jj_3R_347() {
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_92() {
    if (jj_scan_token(88)) return true;
    if (jj_scan_token(89)) return true;
    return false;
  }

  private boolean jj_3R_152() {
    if (jj_scan_token(12)) return true;
    return false;
  }

  private boolean jj_3R_346() {
    if (jj_3R_115()) return true;
    return false;
  }

  private boolean jj_3R_151() {
    if (jj_scan_token(11)) return true;
    return false;
  }

  private boolean jj_3R_66() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_92()) {
    jj_scanpos = xsp;
    if (jj_3R_93()) {
    jj_scanpos = xsp;
    if (jj_3R_94()) {
    jj_scanpos = xsp;
    if (jj_3R_95()) {
    jj_scanpos = xsp;
    if (jj_3R_96()) {
    jj_scanpos = xsp;
    if (jj_3R_97()) {
    jj_scanpos = xsp;
    if (jj_3R_98()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_150() {
    if (jj_scan_token(10)) return true;
    return false;
  }

  private boolean jj_3R_335() {
    if (jj_scan_token(13)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_346()) {
    jj_scanpos = xsp;
    if (jj_3R_347()) return true;
    }
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    return false;
  }

  private boolean jj_3R_149() {
    if (jj_scan_token(9)) return true;
    return false;
  }

  private boolean jj_3R_148() {
    if (jj_scan_token(8)) return true;
    return false;
  }

  private boolean jj_3R_424() {
    if (jj_3R_425()) return true;
    return false;
  }

  private boolean jj_3R_147() {
    if (jj_scan_token(5)) return true;
    return false;
  }

  private boolean jj_3R_146() {
    if (jj_scan_token(4)) return true;
    return false;
  }

  private boolean jj_3_24() {
    if (jj_scan_token(43)) return true;
    if (jj_scan_token(42)) return true;
    return false;
  }

  private boolean jj_3R_334() {
    if (jj_scan_token(106)) return true;
    if (jj_scan_token(LbraceExprEnclosure)) return true;
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_145() {
    if (jj_scan_token(3)) return true;
    return false;
  }

  private boolean jj_3R_422() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_28()) {
    jj_scanpos = xsp;
    if (jj_3R_424()) return true;
    }
    return false;
  }

  private boolean jj_3_28() {
    if (jj_3R_66()) return true;
    return false;
  }

  private boolean jj_3R_144() {
    if (jj_scan_token(2)) return true;
    return false;
  }

  private boolean jj_3_23() {
    if (jj_scan_token(43)) return true;
    if (jj_scan_token(33)) return true;
    return false;
  }

  private boolean jj_3R_328() {
    if (jj_3R_339()) return true;
    return false;
  }

  private boolean jj_3R_143() {
    if (jj_scan_token(1)) return true;
    return false;
  }

  private boolean jj_3R_327() {
    if (jj_3R_338()) return true;
    return false;
  }

  private boolean jj_3_58() {
    if (jj_scan_token(149)) return true;
    if (jj_scan_token(12)) return true;
    return false;
  }

  private boolean jj_3R_326() {
    if (jj_3R_337()) return true;
    return false;
  }

  private boolean jj_3R_420() {
    if (jj_3R_422()) return true;
    return false;
  }

  private boolean jj_3R_325() {
    if (jj_3R_336()) return true;
    return false;
  }

  private boolean jj_3R_286() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_23()) {
    jj_scanpos = xsp;
    if (jj_3_24()) return true;
    }
    return false;
  }

  private boolean jj_3R_142() {
    if (jj_scan_token(External)) return true;
    return false;
  }

  private boolean jj_3R_324() {
    if (jj_3R_335()) return true;
    return false;
  }

  private boolean jj_3_27() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_323() {
    if (jj_3R_334()) return true;
    return false;
  }

  private boolean jj_3R_108() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_141()) {
    jj_scanpos = xsp;
    if (jj_3R_142()) {
    jj_scanpos = xsp;
    if (jj_3R_143()) {
    jj_scanpos = xsp;
    if (jj_3R_144()) {
    jj_scanpos = xsp;
    if (jj_3R_145()) {
    jj_scanpos = xsp;
    if (jj_3R_146()) {
    jj_scanpos = xsp;
    if (jj_3R_147()) {
    jj_scanpos = xsp;
    if (jj_3R_148()) {
    jj_scanpos = xsp;
    if (jj_3R_149()) {
    jj_scanpos = xsp;
    if (jj_3R_150()) {
    jj_scanpos = xsp;
    if (jj_3R_151()) {
    jj_scanpos = xsp;
    if (jj_3R_152()) {
    jj_scanpos = xsp;
    if (jj_3R_153()) {
    jj_scanpos = xsp;
    if (jj_3R_154()) {
    jj_scanpos = xsp;
    if (jj_3R_155()) {
    jj_scanpos = xsp;
    if (jj_3R_156()) {
    jj_scanpos = xsp;
    if (jj_3R_157()) {
    jj_scanpos = xsp;
    if (jj_3R_158()) {
    jj_scanpos = xsp;
    if (jj_3R_159()) {
    jj_scanpos = xsp;
    if (jj_3R_160()) {
    jj_scanpos = xsp;
    if (jj_3R_161()) {
    jj_scanpos = xsp;
    if (jj_3R_162()) {
    jj_scanpos = xsp;
    if (jj_3R_163()) {
    jj_scanpos = xsp;
    if (jj_3R_164()) {
    jj_scanpos = xsp;
    if (jj_3R_165()) {
    jj_scanpos = xsp;
    if (jj_3R_166()) {
    jj_scanpos = xsp;
    if (jj_3R_167()) {
    jj_scanpos = xsp;
    if (jj_3R_168()) {
    jj_scanpos = xsp;
    if (jj_3R_169()) {
    jj_scanpos = xsp;
    if (jj_3R_170()) {
    jj_scanpos = xsp;
    if (jj_3R_171()) {
    jj_scanpos = xsp;
    if (jj_3R_172()) {
    jj_scanpos = xsp;
    if (jj_3R_173()) {
    jj_scanpos = xsp;
    if (jj_3R_174()) {
    jj_scanpos = xsp;
    if (jj_3R_175()) {
    jj_scanpos = xsp;
    if (jj_3R_176()) {
    jj_scanpos = xsp;
    if (jj_3R_177()) {
    jj_scanpos = xsp;
    if (jj_3R_178()) {
    jj_scanpos = xsp;
    if (jj_3R_179()) {
    jj_scanpos = xsp;
    if (jj_3R_180()) {
    jj_scanpos = xsp;
    if (jj_3R_181()) {
    jj_scanpos = xsp;
    if (jj_3R_182()) {
    jj_scanpos = xsp;
    if (jj_3R_183()) {
    jj_scanpos = xsp;
    if (jj_3R_184()) {
    jj_scanpos = xsp;
    if (jj_3R_185()) {
    jj_scanpos = xsp;
    if (jj_3R_186()) {
    jj_scanpos = xsp;
    if (jj_3R_187()) {
    jj_scanpos = xsp;
    if (jj_3R_188()) {
    jj_scanpos = xsp;
    if (jj_3R_189()) {
    jj_scanpos = xsp;
    if (jj_3R_190()) {
    jj_scanpos = xsp;
    if (jj_3R_191()) {
    jj_scanpos = xsp;
    if (jj_3R_192()) {
    jj_scanpos = xsp;
    if (jj_3R_193()) {
    jj_scanpos = xsp;
    if (jj_3R_194()) {
    jj_scanpos = xsp;
    if (jj_3R_195()) {
    jj_scanpos = xsp;
    if (jj_3R_196()) {
    jj_scanpos = xsp;
    if (jj_3R_197()) {
    jj_scanpos = xsp;
    if (jj_3R_198()) {
    jj_scanpos = xsp;
    if (jj_3R_199()) {
    jj_scanpos = xsp;
    if (jj_3R_200()) {
    jj_scanpos = xsp;
    if (jj_3R_201()) {
    jj_scanpos = xsp;
    if (jj_3R_202()) {
    jj_scanpos = xsp;
    if (jj_3R_203()) {
    jj_scanpos = xsp;
    if (jj_3R_204()) {
    jj_scanpos = xsp;
    if (jj_3R_205()) {
    jj_scanpos = xsp;
    if (jj_3R_206()) {
    jj_scanpos = xsp;
    if (jj_3R_207()) {
    jj_scanpos = xsp;
    if (jj_3R_208()) {
    jj_scanpos = xsp;
    if (jj_3R_209()) {
    jj_scanpos = xsp;
    if (jj_3R_210()) {
    jj_scanpos = xsp;
    if (jj_3R_211()) {
    jj_scanpos = xsp;
    if (jj_3R_212()) {
    jj_scanpos = xsp;
    if (jj_3R_213()) {
    jj_scanpos = xsp;
    if (jj_3R_214()) {
    jj_scanpos = xsp;
    if (jj_3R_215()) {
    jj_scanpos = xsp;
    if (jj_3R_216()) {
    jj_scanpos = xsp;
    if (jj_3R_217()) {
    jj_scanpos = xsp;
    if (jj_3R_218()) {
    jj_scanpos = xsp;
    if (jj_3R_219()) {
    jj_scanpos = xsp;
    if (jj_3R_220()) {
    jj_scanpos = xsp;
    if (jj_3R_221()) {
    jj_scanpos = xsp;
    if (jj_3R_222()) {
    jj_scanpos = xsp;
    if (jj_3R_223()) {
    jj_scanpos = xsp;
    if (jj_3R_224()) {
    jj_scanpos = xsp;
    if (jj_3R_225()) {
    jj_scanpos = xsp;
    if (jj_3R_226()) {
    jj_scanpos = xsp;
    if (jj_3R_227()) {
    jj_scanpos = xsp;
    if (jj_3R_228()) {
    jj_scanpos = xsp;
    if (jj_3R_229()) {
    jj_scanpos = xsp;
    if (jj_3R_230()) {
    jj_scanpos = xsp;
    if (jj_3R_231()) {
    jj_scanpos = xsp;
    if (jj_3R_232()) {
    jj_scanpos = xsp;
    if (jj_3R_233()) {
    jj_scanpos = xsp;
    if (jj_3R_234()) {
    jj_scanpos = xsp;
    if (jj_3R_235()) {
    jj_scanpos = xsp;
    if (jj_3R_236()) {
    jj_scanpos = xsp;
    if (jj_3R_237()) {
    jj_scanpos = xsp;
    if (jj_3R_238()) {
    jj_scanpos = xsp;
    if (jj_3R_239()) {
    jj_scanpos = xsp;
    if (jj_3R_240()) {
    jj_scanpos = xsp;
    if (jj_3R_241()) {
    jj_scanpos = xsp;
    if (jj_3R_242()) {
    jj_scanpos = xsp;
    if (jj_3R_243()) {
    jj_scanpos = xsp;
    if (jj_3R_244()) {
    jj_scanpos = xsp;
    if (jj_3R_245()) {
    jj_scanpos = xsp;
    if (jj_3R_246()) {
    jj_scanpos = xsp;
    if (jj_3R_247()) {
    jj_scanpos = xsp;
    if (jj_3R_248()) {
    jj_scanpos = xsp;
    if (jj_3R_249()) {
    jj_scanpos = xsp;
    if (jj_3R_250()) {
    jj_scanpos = xsp;
    if (jj_3R_251()) {
    jj_scanpos = xsp;
    if (jj_3R_252()) {
    jj_scanpos = xsp;
    if (jj_3R_253()) {
    jj_scanpos = xsp;
    if (jj_3R_254()) {
    jj_scanpos = xsp;
    if (jj_3R_255()) {
    jj_scanpos = xsp;
    if (jj_3R_256()) {
    jj_scanpos = xsp;
    if (jj_3R_257()) {
    jj_scanpos = xsp;
    if (jj_3R_258()) {
    jj_scanpos = xsp;
    if (jj_3R_259()) {
    jj_scanpos = xsp;
    if (jj_3R_260()) {
    jj_scanpos = xsp;
    if (jj_3R_261()) {
    jj_scanpos = xsp;
    if (jj_3R_262()) {
    jj_scanpos = xsp;
    if (jj_3R_263()) {
    jj_scanpos = xsp;
    if (jj_3R_264()) {
    jj_scanpos = xsp;
    if (jj_3R_265()) {
    jj_scanpos = xsp;
    if (jj_3R_266()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_141() {
    if (jj_scan_token(QNameToken)) return true;
    return false;
  }

  private boolean jj_3R_418() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_27()) {
    jj_scanpos = xsp;
    if (jj_3R_420()) return true;
    }
    if (jj_3R_89()) return true;
    return false;
  }

  private boolean jj_3R_313() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_323()) {
    jj_scanpos = xsp;
    if (jj_3R_324()) {
    jj_scanpos = xsp;
    if (jj_3R_325()) {
    jj_scanpos = xsp;
    if (jj_3R_326()) {
    jj_scanpos = xsp;
    if (jj_3R_327()) {
    jj_scanpos = xsp;
    if (jj_3R_328()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_280() {
    if (jj_scan_token(111)) return true;
    return false;
  }

  private boolean jj_3R_279() {
    if (jj_scan_token(50)) return true;
    return false;
  }

  private boolean jj_3R_414() {
    if (jj_3R_418()) return true;
    return false;
  }

  private boolean jj_3R_278() {
    if (jj_scan_token(107)) return true;
    return false;
  }

  private boolean jj_3R_410() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_26()) {
    jj_scanpos = xsp;
    if (jj_3R_414()) return true;
    }
    return false;
  }

  private boolean jj_3R_277() {
    if (jj_scan_token(116)) return true;
    return false;
  }

  private boolean jj_3_26() {
    if (jj_3R_64()) return true;
    return false;
  }

  private boolean jj_3R_276() {
    if (jj_scan_token(115)) return true;
    return false;
  }

  private boolean jj_3R_275() {
    if (jj_scan_token(109)) return true;
    return false;
  }

  private boolean jj_3R_114() {
    if (jj_scan_token(151)) return true;
    if (jj_scan_token(155)) return true;
    return false;
  }

  private boolean jj_3R_435() {
    if (jj_scan_token(SlashSlash)) return true;
    return false;
  }

  private boolean jj_3R_274() {
    if (jj_scan_token(113)) return true;
    return false;
  }

  private boolean jj_3R_273() {
    if (jj_scan_token(112)) return true;
    return false;
  }

  private boolean jj_3R_434() {
    if (jj_scan_token(Slash)) return true;
    return false;
  }

  private boolean jj_3R_272() {
    if (jj_scan_token(52)) return true;
    return false;
  }

  /** Generated Token Manager. */
  public XMLQueryTokenManager token_source;
  SimpleCharStream jj_input_stream;
  /** Current token. */
  public Token token;
  /** Next token. */
  public Token jj_nt;
  private int jj_ntk;
  private Token jj_scanpos, jj_lastpos;
  private int jj_la;
  private int jj_gen;
  final private int[] jj_la1 = new int[199];
  static private int[] jj_la1_0;
  static private int[] jj_la1_1;
  static private int[] jj_la1_2;
  static private int[] jj_la1_3;
  static private int[] jj_la1_4;
  static private int[] jj_la1_5;
  static private int[] jj_la1_6;
  static private int[] jj_la1_7;
  static {
      jj_la1_init_0();
      jj_la1_init_1();
      jj_la1_init_2();
      jj_la1_init_3();
      jj_la1_init_4();
      jj_la1_init_5();
      jj_la1_init_6();
      jj_la1_init_7();
   }
   private static void jj_la1_init_0() {
      jj_la1_0 = new int[] {0xff7fff3e,0x8,0x20000000,0x100,0x20000000,0xc00,0x6000,0xc0000,0x0,0x1000400,0x6000000,0x1020,0x800000,0x80000000,0x1020,0x20,0x800000,0x80000000,0x0,0x0,0xc00,0x0,0x0,0x0,0x800000,0x0,0x0,0x800000,0xff7fff3e,0x0,0x0,0x0,0x100000,0x0,0x80000000,0x0,0x800000,0x0,0x80000000,0x0,0x0,0x800000,0x0,0x0,0x100000,0x800000,0x0,0x0,0x0,0x200000,0x8000000,0x0,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff7fff3e,0x40,0x0,0x0,0x0,0x0,0x0,0xff7fff3e,0x0,0x0,0x0,0xff7fff3e,0xff7fff3e,0x0,0x0,0xff7fff3e,0xff7fff3e,0xff7fff3e,0x0,0x0,0x0,0x0,0xff7fff3e,0xff7fff3e,0x0,0x0,0x0,0x2000,0x0,0x0,0xff7fff3e,0x800000,0xff7fff3e,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0xff7fff3e,0xff7fff3e,0xff7fff3e,0xff7fff3e,0xff7fff3e,0xff7fff3e,0x0,0x0,0xff7fff3e,0x0,0xff7fff3e,0x2000,0x2000,0x2000,0xff7fff3e,0xff7fff3e,0x800000,0xff7fff3e,0xff7fff3e,0x0,0x800000,0xff7fff3e,0xff7fff3e,0x80040000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80040000,0x0,0x0,0x0,0x0,0x0,0x0,0x80001000,0x80001000,0x800000,0x0,0x0,0x0,0x0,0x0,0x800000,0x80000000,0x0,0x0,0xff7fff3e,0xff7fdf3e,};
   }
   private static void jj_la1_init_1() {
      jj_la1_1 = new int[] {0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x4,0x0,0x2,0x40,0x0,0x0,0x40,0x0,0x0,0xffffffdb,0x900,0x900,0x1000,0x4000,0x40,0x0,0x400,0x0,0x40,0x0,0x400,0x40,0x0,0x40,0x402,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x18000,0x40,0x0,0x40,0x80000,0x2,0x2,0x800000,0x1000000,0x0,0x0,0x0,0x2000000,0x4000000,0x0,0x0,0x78000000,0x78000000,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffdb,0x0,0x0,0x0,0xffffffdb,0xffffffdb,0x0,0x0,0xffffffc9,0xffffffc9,0xffffffc9,0x0,0x0,0x0,0x0,0xffffffc9,0xffffffc9,0x8000000,0x0,0x12,0x0,0x0,0x0,0xffffffdb,0x0,0xffffffdb,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,0xf7ffffc9,0xffffffdb,0xf7ffffc9,0xffffffdb,0xf7ffffc9,0xffffffdb,0x0,0x8000000,0xf7ffffc9,0x8000000,0xf7ffffc9,0x0,0x0,0x0,0xf7ffffc9,0xf7ffffc9,0x0,0xffffffc9,0xffffffc9,0x0,0x0,0xffffffc9,0xffffffc9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x10,0x80000000,0x0,0xf7ffffc9,0xf7ebffc9,};
   }
   private static void jj_la1_init_2() {
      jj_la1_2 = new int[] {0xfde7f0fe,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,0xfde7f0fe,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,0x1fff00,0x1fff00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x6,0x6,0x8,0x20,0x40,0x80,0x0,0x0,0xfde7f0fe,0xf00,0x3f000,0x1c0000,0xc00000,0xc00000,0x0,0xfde7f0fe,0x0,0x0,0x0,0xfde7f0fe,0xfde7f0fe,0x0,0x0,0xfde7f0fe,0xfde7f0fe,0xfde7f0fe,0xfd000000,0x0,0x0,0x0,0xfde7f0fe,0xfde7f0fe,0x0,0x0,0x0,0x8000000,0x0,0x0,0xfde7f0fe,0x0,0xfde7f0fe,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0xfde7f0fe,0xfde7f0fe,0xfde7f0fe,0xfde7f0fe,0xfde7f0fe,0xfde7f0fe,0x0,0x0,0xfde7f0fe,0x0,0xfde7f0fe,0x8000000,0x0,0x0,0xfde7f0fe,0xfde7f0fe,0x0,0xfde7f0fe,0xfde7f0fe,0x0,0x0,0xfde7f0fe,0xfde7f0fe,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,0x4,0x4,0x0,0x0,0x0,0x4,0x0,0xfde7f0fe,0xf5e7f0fe,};
   }
   private static void jj_la1_init_3() {
      jj_la1_3 = new int[] {0xfd3fbe7f,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,0xfd3fbe7f,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,0xfd3fbe7f,0x0,0x0,0x0,0x0,0x0,0x0,0xfd3fbe7f,0x0,0x0,0x0,0xfd3fbe7f,0xfd3fbe7f,0x0,0x0,0xfd3fbc7f,0xfd3fbc3f,0xfd3fbc3f,0x0,0x1,0x7e,0x3e,0xfd3fbc3e,0xfd3fbc3e,0x0,0x80,0x200,0x3c00,0x0,0x0,0xfd3fbe7f,0x0,0xfd3fbe7f,0x3c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00,0xfd3fbc3e,0xfd3fbe7f,0xfd3fbc3e,0xfd3fbe7f,0xfd3fbc3e,0xfd3fbe7f,0x4000,0x4000,0xfd3fbc3e,0x4000,0xfd3fbc3e,0x1e3800,0x100000,0x100000,0xfd3fbc3e,0xfd3fbc3e,0x0,0xfd3fbc3e,0xfd3fbc3e,0x4000,0x0,0xfd3fbc3e,0xfd3fbc3e,0x0,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x80000000,0x0,0x54000000,0x0,0x0,0x2000000,0x8000000,0x20000000,0x54000000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd3fbc3e,0xfd20043e,};
   }
   private static void jj_la1_init_4() {
      jj_la1_4 = new int[] {0xffffffff,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,0xffffffff,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,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffff,0x0,0x0,0x0,0xffffffff,0xffffffff,0x0,0x0,0x7fffffff,0x7fffffff,0x7fffffff,0x0,0x0,0x0,0x0,0x7fffffff,0x7fffffff,0x0,0x0,0x80000000,0x0,0x80000000,0x80000000,0xffffffff,0x0,0xffffffff,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,0x7fffffff,0xffffffff,0x7fffffff,0xffffffff,0x7fffffff,0xffffffff,0x0,0x0,0x7fffffff,0x0,0x7fffffff,0x0,0x0,0x0,0x7fffffff,0x7fffffff,0x0,0x7fffffff,0x7fffffff,0x0,0x0,0x7fffffff,0x7fffffff,0x4330,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x0,0x0,0x2,0x8,0x4330,0xc0,0x300,0xc00,0x4000,0xc0000,0xa00000,0x0,0x0,0x0,0x800000,0x2000000,0x0,0x0,0x800000,0x0,0x0,0x0,0xa00000,0x7fffffff,0x7fffffff,};
   }
   private static void jj_la1_init_5() {
      jj_la1_5 = new int[] {0x18000fe7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x300080,0x0,0x0,0x300000,0x0,0x18000fe7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x300,0x300,0xc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x8000000,0x0,0x0,0x0,0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x60,0x18000f87,0x8000000,0x0,0x0,0x0,0x0,0x0,0x18000fe7,0x0,0x0,0x0,0x18000f87,0x18000f87,0x0,0x0,0xf80,0xf80,0xf80,0x0,0x0,0x0,0x0,0xf80,0xf80,0x0,0x0,0x7,0x18000000,0x7,0x3,0x18000fe7,0x0,0x18000fe7,0x18000000,0x18000000,0x18000000,0x1b310000,0x18300000,0x1b310000,0x0,0x40000000,0x0,0x0,0x0,0x0,0x3330000,0x3330000,0x3350000,0x3350000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200f80,0x18000fe7,0x200f80,0x18000fe7,0x200f80,0x18000fe7,0x0,0x40,0xf80,0x40,0xf80,0x0,0x0,0x0,0xf84,0xf84,0x0,0xf80,0xf80,0x0,0x0,0xf80,0xf80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200007,0x0,0x200007,0x0,0x200007,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf80,0xf80,};
   }
   private static void jj_la1_init_6() {
      jj_la1_6 = new int[] {0x83031000,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,0x83031000,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,0x83031000,0x0,0x0,0x0,0x0,0x0,0x1000,0x83031000,0x0,0x0,0x8,0x3030000,0x83030000,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3030000,0x0,0x0,0x83031000,0x0,0x83031000,0x3030000,0x3030000,0x0,0x3630010,0x3630000,0x3630010,0x0,0x100,0x0,0x0,0x0,0x0,0x20,0x20,0x40,0x40,0x2,0x3000000,0x8080,0x8080,0x30000,0x0,0x80000,0x600000,0x100000,0x0,0x0,0x83031000,0x0,0x83031000,0x0,0x83031000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x1000,0x1000,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,};
   }
   private static void jj_la1_init_7() {
      jj_la1_7 = new int[] {0x611,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,0x611,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,0x611,0x0,0x0,0x0,0x0,0x0,0x0,0x611,0x800,0x1000,0x0,0x610,0x611,0x1,0x1,0x610,0x610,0x610,0x0,0x0,0x0,0x0,0x610,0x610,0x600,0x0,0x0,0x0,0x0,0x0,0x611,0x0,0x611,0x0,0x0,0x0,0x8,0x0,0x8,0x800,0x0,0x800,0x800,0x800,0x40,0x8,0x8,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x10,0x611,0x10,0x611,0x10,0x611,0x0,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x10,0x10,0x0,0x10,0x10,0x0,0x0,0x10,0x10,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,0x10,0x10,};
   }
  final private JJCalls[] jj_2_rtns = new JJCalls[58];
  private boolean jj_rescan = false;
  private int jj_gc = 0;

  /** Constructor with InputStream. */
  public XMLQuery(java.io.InputStream stream) {
     this(stream, null);
  }
  /** Constructor with InputStream and supplied encoding */
  public XMLQuery(java.io.InputStream stream, String encoding) {
    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
    token_source = new XMLQueryTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 199; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Reinitialise. */
  public void ReInit(java.io.InputStream stream) {
     ReInit(stream, null);
  }
  /** Reinitialise. */
  public void ReInit(java.io.InputStream stream, String encoding) {
    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 199; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Constructor. */
  public XMLQuery(java.io.Reader stream) {
    jj_input_stream = new SimpleCharStream(stream, 1, 1);
    token_source = new XMLQueryTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 199; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Reinitialise. */
  public void ReInit(java.io.Reader stream) {
    jj_input_stream.ReInit(stream, 1, 1);
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 199; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Constructor with generated Token Manager. */
  public XMLQuery(XMLQueryTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 199; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Reinitialise. */
  public void ReInit(XMLQueryTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 199; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  private Token jj_consume_token(int kind) throws ParseException {
    Token oldToken;
    if ((oldToken = token).next != null) token = token.next;
    else token = token.next = token_source.getNextToken();
    jj_ntk = -1;
    if (token.kind == kind) {
      jj_gen++;
      if (++jj_gc > 100) {
        jj_gc = 0;
        for (int i = 0; i < jj_2_rtns.length; i++) {
          JJCalls c = jj_2_rtns[i];
          while (c != null) {
            if (c.gen < jj_gen) c.first = null;
            c = c.next;
          }
        }
      }
      return token;
    }
    token = oldToken;
    jj_kind = kind;
    throw generateParseException();
  }

  static private final class LookaheadSuccess extends java.lang.Error { }
  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
  private boolean jj_scan_token(int kind) {
    if (jj_scanpos == jj_lastpos) {
      jj_la--;
      if (jj_scanpos.next == null) {
        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
      } else {
        jj_lastpos = jj_scanpos = jj_scanpos.next;
      }
    } else {
      jj_scanpos = jj_scanpos.next;
    }
    if (jj_rescan) {
      int i = 0; Token tok = token;
      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
      if (tok != null) jj_add_error_token(kind, i);
    }
    if (jj_scanpos.kind != kind) return true;
    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
    return false;
  }


/** Get the next Token. */
  final public Token getNextToken() {
    if (token.next != null) token = token.next;
    else token = token.next = token_source.getNextToken();
    jj_ntk = -1;
    jj_gen++;
    return token;
  }

/** Get the specific Token. */
  final public Token getToken(int index) {
    Token t = token;
    for (int i = 0; i < index; i++) {
      if (t.next != null) t = t.next;
      else t = t.next = token_source.getNextToken();
    }
    return t;
  }

  private int jj_ntk() {
    if ((jj_nt=token.next) == null)
      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
    else
      return (jj_ntk = jj_nt.kind);
  }

  private java.util.List jj_expentries = new java.util.ArrayList();
  private int[] jj_expentry;
  private int jj_kind = -1;
  private int[] jj_lasttokens = new int[100];
  private int jj_endpos;

  private void jj_add_error_token(int kind, int pos) {
    if (pos >= 100) return;
    if (pos == jj_endpos + 1) {
      jj_lasttokens[jj_endpos++] = kind;
    } else if (jj_endpos != 0) {
      jj_expentry = new int[jj_endpos];
      for (int i = 0; i < jj_endpos; i++) {
        jj_expentry[i] = jj_lasttokens[i];
      }
      jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
        int[] oldentry = (int[])(it.next());
        if (oldentry.length == jj_expentry.length) {
          for (int i = 0; i < jj_expentry.length; i++) {
            if (oldentry[i] != jj_expentry[i]) {
              continue jj_entries_loop;
            }
          }
          jj_expentries.add(jj_expentry);
          break jj_entries_loop;
        }
      }
      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
    }
  }

  /** Generate ParseException. */
  public ParseException generateParseException() {
    jj_expentries.clear();
    boolean[] la1tokens = new boolean[249];
    if (jj_kind >= 0) {
      la1tokens[jj_kind] = true;
      jj_kind = -1;
    }
    for (int i = 0; i < 199; i++) {
      if (jj_la1[i] == jj_gen) {
        for (int j = 0; j < 32; j++) {
          if ((jj_la1_0[i] & (1< jj_gen) {
          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
          switch (i) {
            case 0: jj_3_1(); break;
            case 1: jj_3_2(); break;
            case 2: jj_3_3(); break;
            case 3: jj_3_4(); break;
            case 4: jj_3_5(); break;
            case 5: jj_3_6(); break;
            case 6: jj_3_7(); break;
            case 7: jj_3_8(); break;
            case 8: jj_3_9(); break;
            case 9: jj_3_10(); break;
            case 10: jj_3_11(); break;
            case 11: jj_3_12(); break;
            case 12: jj_3_13(); break;
            case 13: jj_3_14(); break;
            case 14: jj_3_15(); break;
            case 15: jj_3_16(); break;
            case 16: jj_3_17(); break;
            case 17: jj_3_18(); break;
            case 18: jj_3_19(); break;
            case 19: jj_3_20(); break;
            case 20: jj_3_21(); break;
            case 21: jj_3_22(); break;
            case 22: jj_3_23(); break;
            case 23: jj_3_24(); break;
            case 24: jj_3_25(); break;
            case 25: jj_3_26(); break;
            case 26: jj_3_27(); break;
            case 27: jj_3_28(); break;
            case 28: jj_3_29(); break;
            case 29: jj_3_30(); break;
            case 30: jj_3_31(); break;
            case 31: jj_3_32(); break;
            case 32: jj_3_33(); break;
            case 33: jj_3_34(); break;
            case 34: jj_3_35(); break;
            case 35: jj_3_36(); break;
            case 36: jj_3_37(); break;
            case 37: jj_3_38(); break;
            case 38: jj_3_39(); break;
            case 39: jj_3_40(); break;
            case 40: jj_3_41(); break;
            case 41: jj_3_42(); break;
            case 42: jj_3_43(); break;
            case 43: jj_3_44(); break;
            case 44: jj_3_45(); break;
            case 45: jj_3_46(); break;
            case 46: jj_3_47(); break;
            case 47: jj_3_48(); break;
            case 48: jj_3_49(); break;
            case 49: jj_3_50(); break;
            case 50: jj_3_51(); break;
            case 51: jj_3_52(); break;
            case 52: jj_3_53(); break;
            case 53: jj_3_54(); break;
            case 54: jj_3_55(); break;
            case 55: jj_3_56(); break;
            case 56: jj_3_57(); break;
            case 57: jj_3_58(); break;
          }
        }
        p = p.next;
      } while (p != null);
      } catch(LookaheadSuccess ls) { }
    }
    jj_rescan = false;
  }

  private void jj_save(int index, int xla) {
    JJCalls p = jj_2_rtns[index];
    while (p.gen > jj_gen) {
      if (p.next == null) { p = p.next = new JJCalls(); break; }
      p = p.next;
    }
    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
  }

  static final class JJCalls {
    int gen;
    Token first;
    int arg;
    JJCalls next;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy