Source/sources/gnu/xquery/lang/XQParser.java
public gnu.expr.Expression parse(gnu.expr.Compilation r52) throws java.io.IOException, gnu.text.SyntaxException {
        /*
            r51 = this;
            r0 = r52
            r1 = r51
            r1.comp = r0
            int r18 = r51.skipSpace()
            if (r18 >= 0) goto L_0x000f
            r27 = 0
        L_0x000e:
            return r27
        L_0x000f:
            r0 = r51
            int r6 = r0.parseCount
            int r6 = r6 + 1
            r0 = r51
            r0.parseCount = r6
            r0 = r51
            r1 = r18
            r0.unread(r1)
            int r6 = r51.getLineNumber()
            int r44 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r43 = r6 + 1
            r6 = 35
            r0 = r18
            if (r0 != r6) goto L_0x006d
            r6 = 1
            r0 = r44
            if (r0 != r6) goto L_0x006d
            r6 = 1
            r0 = r43
            if (r0 != r6) goto L_0x006d
            r51.read()
            int r18 = r51.read()
            r6 = 33
            r0 = r18
            if (r0 != r6) goto L_0x0053
            int r18 = r51.read()
            r6 = 47
            r0 = r18
            if (r0 == r6) goto L_0x005a
        L_0x0053:
            java.lang.String r6 = "'#' is only allowed in initial '#!/PROGRAM'"
            r0 = r51
            r0.error(r6)
        L_0x005a:
            r6 = 13
            r0 = r18
            if (r0 == r6) goto L_0x006d
            r6 = 10
            r0 = r18
            if (r0 == r6) goto L_0x006d
            if (r18 < 0) goto L_0x006d
            int r18 = r51.read()
            goto L_0x005a
        L_0x006d:
            int r6 = r51.getRawToken()
            r9 = -1
            if (r6 != r9) goto L_0x0077
            r27 = 0
            goto L_0x000e
        L_0x0077:
            r51.peekOperand()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 != r9) goto L_0x00a3
            java.lang.String r9 = "namespace"
            r0 = r51
            java.lang.Object r6 = r0.curValue
            java.lang.String r6 = (java.lang.String) r6
            boolean r6 = r9.equals(r6)
            if (r6 == 0) goto L_0x00a3
            boolean r6 = warnOldVersion
            if (r6 == 0) goto L_0x009d
            r6 = 119(0x77, float:1.67E-43)
            java.lang.String r9 = "use 'declare namespace' instead of 'namespace'"
            r0 = r51
            r0.error(r6, r9)
        L_0x009d:
            r6 = 78
            r0 = r51
            r0.curToken = r6
        L_0x00a3:
            r0 = r51
            int r6 = r0.curToken
            switch(r6) {
                case 66: goto L_0x0b67;
                case 69: goto L_0x06c1;
                case 71: goto L_0x0653;
                case 72: goto L_0x0910;
                case 73: goto L_0x043d;
                case 75: goto L_0x0821;
                case 76: goto L_0x086e;
                case 77: goto L_0x02b9;
                case 78: goto L_0x02b9;
                case 79: goto L_0x06c1;
                case 80: goto L_0x011c;
                case 83: goto L_0x07ab;
                case 84: goto L_0x0434;
                case 85: goto L_0x0a04;
                case 86: goto L_0x0160;
                case 87: goto L_0x00df;
                case 89: goto L_0x0a51;
                case 111: goto L_0x0974;
                default: goto L_0x00aa;
            }
        L_0x00aa:
            r6 = -1
            r9 = 1
            r0 = r51
            gnu.expr.Expression r27 = r0.parseExprSequence(r6, r9)
            r0 = r51
            int r6 = r0.curToken
            r9 = 10
            if (r6 != r9) goto L_0x00c1
            r6 = 10
            r0 = r51
            r0.unread(r6)
        L_0x00c1:
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x000e
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "query body in a library module"
            java.lang.String r10 = "XPST0003"
            r0 = r51
            r0.error(r6, r9, r10)
            goto L_0x000e
        L_0x00df:
            int r6 = r51.getLineNumber()
            int r23 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r22 = r6 + 1
            java.lang.String r6 = "unexpected end-of-file after 'define QName'"
            r0 = r51
            int r36 = r0.peekNonSpace(r6)
            r6 = 40
            r0 = r36
            if (r0 != r6) goto L_0x0112
            java.lang.String r6 = "'missing 'function' after 'define'"
            r0 = r51
            r0.syntaxError(r6)
            r6 = 65
            r0 = r51
            r0.curToken = r6
            r0 = r51
            r1 = r23
            r2 = r22
            gnu.expr.Expression r27 = r0.parseFunctionDefinition(r1, r2)
            goto L_0x000e
        L_0x0112:
            java.lang.String r6 = "missing keyword after 'define'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x011c:
            int r6 = r51.getLineNumber()
            int r23 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r22 = r6 + 1
            r51.getRawToken()
            java.lang.String r6 = "unexpected end-of-file after 'define function'"
            r0 = r51
            r0.peekNonSpace(r6)
            r6 = 100
            r0 = r51
            char r40 = r0.pushNesting(r6)
            r0 = r51
            r1 = r23
            r2 = r22
            gnu.expr.Expression r27 = r0.parseFunctionDefinition(r1, r2)
            r0 = r51
            r1 = r40
            r0.popNesting(r1)
            r51.parseSeparator()
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            goto L_0x000e
        L_0x0160:
            r51.getRawToken()
            gnu.expr.Declaration r21 = r51.parseVariableDeclaration()
            if (r21 != 0) goto L_0x0173
            java.lang.String r6 = "missing Variable"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0173:
            java.lang.Object r35 = r21.getSymbol()
            r0 = r35
            boolean r6 = r0 instanceof java.lang.String
            if (r6 == 0) goto L_0x01a4
            gnu.text.SourceMessages r6 = r51.getMessages()
            r0 = r51
            gnu.text.LineBufferedReader r9 = r0.port
            java.lang.String r9 = r9.getName()
            r0 = r51
            int r10 = r0.curLine
            r0 = r51
            int r11 = r0.curColumn
            r6.setLine(r9, r10, r11)
            java.lang.String r35 = (java.lang.String) r35
            r6 = 0
            r0 = r51
            r1 = r35
            gnu.mapping.Symbol r6 = r0.namespaceResolve(r1, r6)
            r0 = r21
            r0.setSymbol(r6)
        L_0x01a4:
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x01d7
            java.lang.Object r6 = r21.getSymbol()
            gnu.mapping.Symbol r6 = (gnu.mapping.Symbol) r6
            java.lang.String r48 = r6.getNamespaceURI()
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            r0 = r48
            if (r0 == r6) goto L_0x01d7
            java.lang.String r6 = "http://www.w3.org/2005/xquery-local-functions"
            r0 = r48
            boolean r6 = r6.equals(r0)
            if (r6 == 0) goto L_0x01cc
            boolean r6 = r52.isPedantic()
            if (r6 == 0) goto L_0x01d7
        L_0x01cc:
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "variable not in namespace of library module"
            java.lang.String r10 = "XQST0048"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x01d7:
            gnu.expr.ScopeExp r6 = r52.currentScope()
            r0 = r21
            r6.addDeclaration(r0)
            r51.getRawToken()
            gnu.expr.Expression r47 = r51.parseOptionalTypeDeclaration()
            r6 = 1
            r0 = r21
            r0.setCanRead(r6)
            r10 = 16384(0x4000, double:8.0948E-320)
            r0 = r21
            r0.setFlag(r10)
            r30 = 0
            r42 = 0
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0208
            r0 = r51
            int r6 = r0.curToken
            r9 = 76
            if (r6 != r9) goto L_0x021c
        L_0x0208:
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 != r9) goto L_0x0217
            java.lang.String r6 = "declare variable contains '=' instead of ':='"
            r0 = r51
            r0.error(r6)
        L_0x0217:
            r51.getRawToken()
            r42 = 1
        L_0x021c:
            r0 = r51
            int r6 = r0.curToken
            r9 = 123(0x7b, float:1.72E-43)
            if (r6 != r9) goto L_0x025d
            java.lang.String r6 = "obsolete '{' in variable declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            gnu.expr.Expression r30 = r51.parseEnclosedExpr()
            r51.parseSeparator()
        L_0x0232:
            if (r47 == 0) goto L_0x023c
            r0 = r30
            r1 = r47
            gnu.expr.ApplyExp r30 = gnu.expr.Compilation.makeCoercion(r0, r1)
        L_0x023c:
            r0 = r21
            r1 = r30
            r0.noteValue(r1)
            r0 = r21
            r1 = r30
            gnu.expr.SetExp r27 = gnu.expr.SetExp.makeDefinition(r0, r1)
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            goto L_0x000e
        L_0x025d:
            java.lang.String r6 = "external"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x02a1
            r6 = 2
            gnu.expr.Expression[] r15 = new gnu.expr.Expression[r6]
            r6 = 0
            gnu.expr.QuoteExp r9 = new gnu.expr.QuoteExp
            java.lang.Object r10 = r21.getSymbol()
            r9.<init>(r10)
            r10 = 0
            gnu.expr.ApplyExp r9 = castQName(r9, r10)
            r15[r6] = r9
            r9 = 1
            if (r47 != 0) goto L_0x029e
            gnu.expr.QuoteExp r6 = gnu.expr.QuoteExp.nullExp
        L_0x0280:
            r15[r9] = r6
            gnu.expr.ApplyExp r30 = new gnu.expr.ApplyExp
            gnu.expr.QuoteExp r6 = getExternalFunction
            r0 = r30
            r0.<init>(r6, r15)
            r0 = r51
            int r6 = r0.curLine
            r0 = r51
            int r9 = r0.curColumn
            r0 = r51
            r1 = r30
            r0.maybeSetLine(r1, r6, r9)
            r51.getRawToken()
            goto L_0x0232
        L_0x029e:
            r6 = r47
            goto L_0x0280
        L_0x02a1:
            gnu.expr.Expression r30 = r51.parseExpr()
            r25 = 0
            if (r42 == 0) goto L_0x02ab
            if (r30 != 0) goto L_0x02b3
        L_0x02ab:
            java.lang.String r6 = "expected ':= init' or 'external'"
            r0 = r51
            gnu.expr.Expression r25 = r0.syntaxError(r6)
        L_0x02b3:
            if (r30 != 0) goto L_0x0232
            r30 = r25
            goto L_0x0232
        L_0x02b9:
            r0 = r51
            int r0 = r0.curToken
            r20 = r0
            r6 = 77
            r0 = r20
            if (r0 != r6) goto L_0x0304
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x0304
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate module declaration"
            r0 = r51
            r0.error(r6, r9)
        L_0x02d4:
            r0 = r51
            int r6 = r0.nesting
            if (r6 == 0) goto L_0x031a
            r6 = 1
        L_0x02db:
            r0 = r51
            int r36 = r0.skipSpace(r6)
            if (r36 < 0) goto L_0x0434
            r51.unread()
            r0 = r36
            char r6 = (char) r0
            boolean r6 = gnu.xml.XName.isNameStart(r6)
            if (r6 == 0) goto L_0x0434
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 == r9) goto L_0x031c
            java.lang.String r6 = "missing namespace prefix"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0304:
            r0 = r51
            boolean r6 = r0.seenDeclaration
            if (r6 == 0) goto L_0x02d4
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x02d4
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "namespace declared after function/variable/option"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x02d4
        L_0x031a:
            r6 = 0
            goto L_0x02db
        L_0x031c:
            java.lang.String r39 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r39
            r0.<init>(r6, r9, r10)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0341
            java.lang.String r6 = "missing '=' in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0341:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0356
            java.lang.String r6 = "missing uri in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0356:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            java.lang.String r39 = r39.intern()
            r0 = r51
            gnu.xml.NamespaceBinding r0 = r0.prologNamespaces
            r37 = r0
        L_0x0372:
            gnu.xml.NamespaceBinding r6 = builtinNamespaces
            r0 = r37
            if (r0 == r6) goto L_0x03a4
            java.lang.String r6 = r37.getPrefix()
            r0 = r39
            if (r6 != r0) goto L_0x0424
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "duplicate declarations for the same namespace prefix '"
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r39
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = "'"
            java.lang.StringBuilder r9 = r9.append(r10)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0033"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x03a4:
            r0 = r51
            r1 = r39
            r2 = r48
            r0.pushNamespace(r1, r2)
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            r51.parseSeparator()
            r6 = 77
            r0 = r20
            if (r0 != r6) goto L_0x0430
            gnu.expr.ModuleExp r8 = r52.getModule()
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = gnu.expr.Compilation.mangleURI(r48)
            java.lang.StringBuilder r6 = r6.append(r9)
            r9 = 46
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r9 = r8.getFileName()
            java.lang.String r9 = gnu.xquery.lang.XQuery.makeClassName(r9)
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r4 = r6.toString()
            r8.setName(r4)
            gnu.bytecode.ClassType r6 = new gnu.bytecode.ClassType
            r6.<init>(r4)
            r0 = r52
            r0.mainClass = r6
            r0 = r52
            gnu.bytecode.ClassType r6 = r0.mainClass
            r8.setType(r6)
            gnu.expr.ModuleManager r32 = gnu.expr.ModuleManager.getInstance()
            r0 = r32
            r1 = r52
            gnu.expr.ModuleInfo r5 = r0.find(r1)
            r0 = r48
            r5.setNamespaceUri(r0)
            r0 = r52
            gnu.bytecode.ClassType r6 = r0.mainClass
            r8.setType(r6)
            int r6 = r48.length()
            if (r6 != 0) goto L_0x042a
            java.lang.String r6 = "zero-length module namespace"
            java.lang.String r9 = "XQST0088"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6, r9)
            goto L_0x000e
        L_0x0424:
            gnu.xml.NamespaceBinding r37 = r37.getNext()
            goto L_0x0372
        L_0x042a:
            r0 = r48
            r1 = r51
            r1.libraryModuleNamespace = r0
        L_0x0430:
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0434:
            java.lang.String r6 = "'import schema' not implemented"
            java.lang.String r9 = "XQST0009"
            r0 = r51
            r0.fatal(r6, r9)
        L_0x043d:
            r51.getRawToken()
            r39 = 0
            java.lang.String r6 = "namespace"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0489
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 == r9) goto L_0x0461
            java.lang.String r6 = "missing namespace prefix"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0461:
            java.lang.String r39 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r39
            r0.<init>(r6, r9, r10)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0486
            java.lang.String r6 = "missing '=' in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0486:
            r51.getRawToken()
        L_0x0489:
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x049b
            java.lang.String r6 = "missing uri in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x049b:
            r0 = r51
            int r6 = r0.tokenBufferLength
            if (r6 != 0) goto L_0x04ad
            java.lang.String r6 = "zero-length target namespace"
            java.lang.String r9 = "XQST0088"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6, r9)
            goto L_0x000e
        L_0x04ad:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            if (r39 == 0) goto L_0x04d6
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            java.lang.String r6 = r39.intern()
            r0 = r51
            r1 = r48
            r0.pushNamespace(r6, r1)
        L_0x04d6:
            r51.getRawToken()
            gnu.expr.ModuleManager r6 = gnu.expr.ModuleManager.getInstance()
            r0 = r52
            r6.find(r0)
            gnu.expr.ModuleExp r8 = r52.getModule()
            java.util.Vector r7 = new java.util.Vector
            r7.<init>()
            java.lang.String r38 = gnu.expr.Compilation.mangleURI(r48)
            r0 = r51
            gnu.text.LineBufferedReader r6 = r0.port
            java.lang.String r6 = r6.getName()
            r0 = r52
            r1 = r44
            r2 = r43
            r0.setLine(r6, r1, r2)
            java.lang.String r6 = "at"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x05c5
        L_0x050a:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x051f
            java.lang.String r6 = "missing module location"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x051f:
            java.lang.String r16 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r16
            r0.<init>(r6, r9, r10)
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = gnu.expr.Compilation.mangleURI(r48)
            java.lang.StringBuilder r6 = r6.append(r9)
            r9 = 46
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r9 = gnu.xquery.lang.XQuery.makeClassName(r16)
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r4 = r6.toString()
            r0 = r16
            gnu.expr.ModuleInfo r5 = kawa.standard.require.lookupModuleFromSourcePath(r0, r8)
            if (r5 != 0) goto L_0x0572
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "malformed URL: "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r16
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r52
            r0.error(r6, r9)
        L_0x0572:
            r6 = 0
            r9 = r52
            kawa.standard.require.importDefinitions(r4, r5, r6, r7, r8, r9)
            r0 = r51
            int r6 = r0.nesting
            if (r6 == 0) goto L_0x05c3
            r6 = 1
        L_0x057f:
            r0 = r51
            int r36 = r0.skipSpace(r6)
            r6 = 44
            r0 = r36
            if (r0 == r6) goto L_0x050a
            r0 = r51
            r1 = r36
            r0.unread(r1)
            r51.parseSeparator()
        L_0x0595:
            r0 = r52
            java.util.Stack<java.lang.Object> r6 = r0.pendingImports
            if (r6 == 0) goto L_0x05b0
            r0 = r52
            java.util.Stack<java.lang.Object> r6 = r0.pendingImports
            int r6 = r6.size()
            if (r6 <= 0) goto L_0x05b0
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "module import forms a cycle"
            java.lang.String r10 = "XQST0073"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x05b0:
            int r6 = r7.size()
            gnu.expr.Expression[] r0 = new gnu.expr.Expression[r6]
            r31 = r0
            r0 = r31
            r7.toArray(r0)
            gnu.expr.Expression r27 = gnu.expr.BeginExp.canonicalize(r31)
            goto L_0x000e
        L_0x05c3:
            r6 = 0
            goto L_0x057f
        L_0x05c5:
            gnu.expr.ModuleManager r32 = gnu.expr.ModuleManager.getInstance()
            r34 = 0
            r0 = r32
            r1 = r38
            r0.loadPackageInfo(r1)     // Catch:{ ClassNotFoundException -> 0x0ba1, Throwable -> 0x060a }
        L_0x05d2:
            r29 = 0
        L_0x05d4:
            r0 = r32
            r1 = r29
            gnu.expr.ModuleInfo r5 = r0.getModule(r1)
            if (r5 != 0) goto L_0x0634
            if (r34 != 0) goto L_0x05fc
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "no module found for "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r48
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r51
            r0.error(r6, r9)
        L_0x05fc:
            r16 = 0
            r0 = r51
            int r6 = r0.curToken
            r9 = 59
            if (r6 == r9) goto L_0x0595
            r51.parseSeparator()
            goto L_0x0595
        L_0x060a:
            r26 = move-exception
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "error loading map for "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r48
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = " - "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r26
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r51
            r0.error(r6, r9)
            goto L_0x05d2
        L_0x0634:
            java.lang.String r6 = r5.getNamespaceUri()
            r0 = r48
            boolean r6 = r0.equals(r6)
            if (r6 != 0) goto L_0x0643
        L_0x0640:
            int r29 = r29 + 1
            goto L_0x05d4
        L_0x0643:
            int r34 = r34 + 1
            java.lang.String r9 = r5.getClassName()
            r11 = 0
            r10 = r5
            r12 = r7
            r13 = r8
            r14 = r52
            kawa.standard.require.importDefinitions(r9, r10, r11, r12, r13, r14)
            goto L_0x0640
        L_0x0653:
            r0 = r51
            gnu.xquery.util.NamedCollator r6 = r0.defaultCollator
            if (r6 == 0) goto L_0x066a
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x066a
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate default collation declaration"
            java.lang.String r10 = "XQST0038"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x066a:
            java.lang.Object r49 = r51.parseURILiteral()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.Expression
            if (r6 == 0) goto L_0x067a
            gnu.expr.Expression r49 = (gnu.expr.Expression) r49
            r27 = r49
            goto L_0x000e
        L_0x067a:
            r19 = r49
            java.lang.String r19 = (java.lang.String) r19
            r0 = r51
            r1 = r19
            java.lang.String r19 = r0.resolveAgainstBaseUri(r1)     // Catch:{ Exception -> 0x0695 }
            gnu.xquery.util.NamedCollator r6 = gnu.xquery.util.NamedCollator.make(r19)     // Catch:{ Exception -> 0x0695 }
            r0 = r51
            r0.defaultCollator = r6     // Catch:{ Exception -> 0x0695 }
        L_0x068e:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0695:
            r26 = move-exception
            gnu.xquery.util.NamedCollator r6 = gnu.xquery.util.NamedCollator.codepointCollation
            r0 = r51
            r0.defaultCollator = r6
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "unknown collation '"
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r19
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = "'"
            java.lang.StringBuilder r9 = r9.append(r10)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0038"
            r0 = r51
            r0.error(r6, r9, r10)
            goto L_0x068e
        L_0x06c1:
            r0 = r51
            int r6 = r0.curToken
            r9 = 79
            if (r6 != r9) goto L_0x0724
            r28 = 1
        L_0x06cb:
            if (r28 == 0) goto L_0x0727
            java.lang.String r39 = "(functions)"
        L_0x06cf:
            r0 = r51
            gnu.xml.NamespaceBinding r6 = r0.prologNamespaces
            gnu.xml.NamespaceBinding r9 = builtinNamespaces
            r0 = r39
            java.lang.String r6 = r6.resolve(r0, r9)
            if (r6 == 0) goto L_0x072a
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate default namespace declaration"
            java.lang.String r10 = "XQST0066"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x06e8:
            r51.getRawToken()
            java.lang.String r6 = "namespace"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0740
            r51.getRawToken()
        L_0x06f8:
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0708
            r0 = r51
            int r6 = r0.curToken
            r9 = 76
            if (r6 != r9) goto L_0x0712
        L_0x0708:
            java.lang.String r6 = "extra '=' in default namespace declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            r51.getRawToken()
        L_0x0712:
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0764
            java.lang.String r6 = "missing namespace uri"
            r0 = r51
            gnu.expr.Expression r27 = r0.declError(r6)
            goto L_0x000e
        L_0x0724:
            r28 = 0
            goto L_0x06cb
        L_0x0727:
            java.lang.String r39 = gnu.xquery.lang.XQuery.DEFAULT_ELEMENT_PREFIX
            goto L_0x06cf
        L_0x072a:
            r0 = r51
            boolean r6 = r0.seenDeclaration
            if (r6 == 0) goto L_0x06e8
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x06e8
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "default namespace declared after function/variable/option"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x06e8
        L_0x0740:
            java.lang.String r33 = "expected 'namespace' keyword"
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x075c
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x075c
            r0 = r51
            r1 = r33
            gnu.expr.Expression r27 = r0.declError(r1)
            goto L_0x000e
        L_0x075c:
            r0 = r51
            r1 = r33
            r0.warnOldVersion(r1)
            goto L_0x06f8
        L_0x0764:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            if (r28 == 0) goto L_0x07a4
            r6 = 1
            gnu.mapping.Namespace[] r6 = new gnu.mapping.Namespace[r6]
            r0 = r51
            r0.functionNamespacePath = r6
            r0 = r51
            gnu.mapping.Namespace[] r6 = r0.functionNamespacePath
            r9 = 0
            gnu.mapping.Namespace r10 = gnu.mapping.Namespace.valueOf(r48)
            r6[r9] = r10
        L_0x078a:
            r0 = r51
            r1 = r39
            r2 = r48
            r0.pushNamespace(r1, r2)
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x07a4:
            r0 = r48
            r1 = r51
            r1.defaultElementNamespace = r0
            goto L_0x078a
        L_0x07ab:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 != r9) goto L_0x07c0
            java.lang.String r6 = "obsolate '=' in boundary-space declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            r51.getRawToken()
        L_0x07c0:
            r0 = r51
            boolean r6 = r0.boundarySpaceDeclarationSeen
            if (r6 == 0) goto L_0x07d5
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x07d5
            java.lang.String r6 = "duplicate 'declare boundary-space' seen"
            java.lang.String r9 = "XQST0068"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x07d5:
            r6 = 1
            r0 = r51
            r0.boundarySpaceDeclarationSeen = r6
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x07f0
            r6 = 1
            r0 = r51
            r0.boundarySpacePreserve = r6
        L_0x07e9:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x07f0:
            java.lang.String r6 = "strip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0800
            r6 = 0
            r0 = r51
            r0.boundarySpacePreserve = r6
            goto L_0x07e9
        L_0x0800:
            java.lang.String r6 = "skip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0817
            java.lang.String r6 = "update: declare boundary-space skip -> strip"
            r0 = r51
            r0.warnOldVersion(r6)
            r6 = 0
            r0 = r51
            r0.boundarySpacePreserve = r6
            goto L_0x07e9
        L_0x0817:
            java.lang.String r6 = "boundary-space declaration must be preserve or strip"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0821:
            r51.getRawToken()
            r0 = r51
            boolean r6 = r0.constructionModeDeclarationSeen
            if (r6 == 0) goto L_0x0839
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0839
            java.lang.String r6 = "duplicate 'declare construction' seen"
            java.lang.String r9 = "XQST0067"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0839:
            r6 = 1
            r0 = r51
            r0.constructionModeDeclarationSeen = r6
            java.lang.String r6 = "strip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0854
            r6 = 1
            r0 = r51
            r0.constructionModeStrip = r6
        L_0x084d:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0854:
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0864
            r6 = 0
            r0 = r51
            r0.constructionModeStrip = r6
            goto L_0x084d
        L_0x0864:
            java.lang.String r6 = "construction declaration must be strip or preserve"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x086e:
            r51.getRawToken()
            r0 = r51
            boolean r6 = r0.copyNamespacesDeclarationSeen
            if (r6 == 0) goto L_0x0886
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0886
            java.lang.String r6 = "duplicate 'declare copy-namespaces' seen"
            java.lang.String r9 = "XQST0055"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0886:
            r6 = 1
            r0 = r51
            r0.copyNamespacesDeclarationSeen = r6
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08b4
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 | 1
            r0 = r51
            r0.copyNamespacesMode = r6
        L_0x089f:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 44
            if (r6 == r9) goto L_0x08d3
            java.lang.String r6 = "missing ',' in copy-namespaces declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x08b4:
            java.lang.String r6 = "no-preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08c9
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 & -2
            r0 = r51
            r0.copyNamespacesMode = r6
            goto L_0x089f
        L_0x08c9:
            java.lang.String r6 = "expected 'preserve' or 'no-preserve' after 'declare copy-namespaces'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x08d3:
            r51.getRawToken()
            java.lang.String r6 = "inherit"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08f1
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 | 2
            r0 = r51
            r0.copyNamespacesMode = r6
        L_0x08ea:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x08f1:
            java.lang.String r6 = "no-inherit"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0906
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 & -3
            r0 = r51
            r0.copyNamespacesMode = r6
            goto L_0x08ea
        L_0x0906:
            java.lang.String r6 = "expected 'inherit' or 'no-inherit' in copy-namespaces declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0910:
            r51.getRawToken()
            java.lang.String r6 = "empty"
            r0 = r51
            boolean r41 = r0.match(r6)
            r0 = r51
            boolean r6 = r0.emptyOrderDeclarationSeen
            if (r6 == 0) goto L_0x0930
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0930
            java.lang.String r6 = "duplicate 'declare default empty order' seen"
            java.lang.String r9 = "XQST0069"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0930:
            r6 = 1
            r0 = r51
            r0.emptyOrderDeclarationSeen = r6
            if (r41 == 0) goto L_0x0951
            r51.getRawToken()
        L_0x093a:
            java.lang.String r6 = "greatest"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0959
            r6 = 71
            r0 = r51
            r0.defaultEmptyOrder = r6
        L_0x094a:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0951:
            java.lang.String r6 = "expected 'empty greatest' or 'empty least'"
            r0 = r51
            r0.syntaxError(r6)
            goto L_0x093a
        L_0x0959:
            java.lang.String r6 = "least"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x096a
            r6 = 76
            r0 = r51
            r0.defaultEmptyOrder = r6
            goto L_0x094a
        L_0x096a:
            java.lang.String r6 = "expected 'empty greatest' or 'empty least'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0974:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 81
            if (r6 == r9) goto L_0x0992
            java.lang.String r6 = "expected QName after 'declare option'"
            r0 = r51
            r0.syntaxError(r6)
        L_0x0986:
            r51.parseSeparator()
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0992:
            java.lang.String r45 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r45
            r0.<init>(r6, r9, r10)
            gnu.text.SourceMessages r6 = r51.getMessages()
            r0 = r51
            gnu.text.LineBufferedReader r9 = r0.port
            java.lang.String r9 = r9.getName()
            r0 = r51
            int r10 = r0.curLine
            r0 = r51
            int r11 = r0.curColumn
            r6.setLine(r9, r10, r11)
            r6 = 0
            r0 = r51
            r1 = r45
            gnu.mapping.Symbol r46 = r0.namespaceResolve(r1, r6)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x09ee
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = "expected string literal after 'declare option "
            java.lang.StringBuilder r6 = r6.append(r9)
            r0 = r45
            java.lang.StringBuilder r6 = r6.append(r0)
            r9 = 39
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r6 = r6.toString()
            r0 = r51
            r0.syntaxError(r6)
            goto L_0x0986
        L_0x09ee:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            r0 = r51
            r1 = r46
            r0.handleOption(r1, r6)
            goto L_0x0986
        L_0x0a04:
            r0 = r51
            boolean r6 = r0.orderingModeSeen
            if (r6 == 0) goto L_0x0a19
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0a19
            java.lang.String r6 = "duplicate 'declare ordering' seen"
            java.lang.String r9 = "XQST0065"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0a19:
            r6 = 1
            r0 = r51
            r0.orderingModeSeen = r6
            r51.getRawToken()
            java.lang.String r6 = "ordered"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0a37
            r6 = 0
            r0 = r51
            r0.orderingModeUnordered = r6
        L_0x0a30:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0a37:
            java.lang.String r6 = "unordered"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0a47
            r6 = 1
            r0 = r51
            r0.orderingModeUnordered = r6
            goto L_0x0a30
        L_0x0a47:
            java.lang.String r6 = "ordering declaration must be ordered or unordered"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0a51:
            r0 = r51
            int r6 = r0.parseCount
            r9 = 1
            if (r6 == r9) goto L_0x0ac6
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "'xquery version' does not start module"
            r0 = r51
            r0.error(r6, r9)
        L_0x0a61:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 != r9) goto L_0x0ad6
            java.lang.String r50 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r50
            r0.<init>(r6, r9, r10)
            java.lang.String r6 = "1.0"
            r0 = r50
            boolean r6 = r0.equals(r6)
            if (r6 != 0) goto L_0x0aa4
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "unrecognized xquery version "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r50
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0031"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x0aa4:
            r51.getRawToken()
            java.lang.String r6 = "encoding"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0b54
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0ae0
            java.lang.String r6 = "invalid encoding specification"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0ac6:
            r0 = r51
            int r6 = r0.commentCount
            if (r6 <= 0) goto L_0x0a61
            r6 = 119(0x77, float:1.67E-43)
            java.lang.String r9 = "comments should not precede 'xquery version'"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x0a61
        L_0x0ad6:
            java.lang.String r6 = "missing version string after 'xquery version'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0ae0:
            java.lang.String r24 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r24
            r0.<init>(r6, r9, r10)
            r0 = r51
            int r0 = r0.tokenBufferLength
            r29 = r0
            if (r29 != 0) goto L_0x0b41
            r17 = 1
        L_0x0afa:
            int r29 = r29 + -1
            if (r29 < 0) goto L_0x0b44
            if (r17 != 0) goto L_0x0b44
            r0 = r51
            char[] r6 = r0.tokenBuffer
            char r18 = r6[r29]
            r6 = 65
            r0 = r18
            if (r0 < r6) goto L_0x0b12
            r6 = 90
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b12:
            r6 = 97
            r0 = r18
            if (r0 < r6) goto L_0x0b1e
            r6 = 122(0x7a, float:1.71E-43)
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b1e:
            if (r29 == 0) goto L_0x0b3e
            r6 = 48
            r0 = r18
            if (r0 < r6) goto L_0x0b2c
            r6 = 57
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b2c:
            r6 = 46
            r0 = r18
            if (r0 == r6) goto L_0x0afa
            r6 = 95
            r0 = r18
            if (r0 == r6) goto L_0x0afa
            r6 = 45
            r0 = r18
            if (r0 == r6) goto L_0x0afa
        L_0x0b3e:
            r17 = 1
            goto L_0x0afa
        L_0x0b41:
            r17 = 0
            goto L_0x0afa
        L_0x0b44:
            if (r17 == 0) goto L_0x0b51
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "invalid encoding name syntax"
            java.lang.String r10 = "XQST0087"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x0b51:
            r51.getRawToken()
        L_0x0b54:
            r0 = r51
            int r6 = r0.curToken
            r9 = 59
            if (r6 == r9) goto L_0x0b63
            java.lang.String r6 = "missing ';'"
            r0 = r51
            r0.syntaxError(r6)
        L_0x0b63:
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0b67:
            r0 = r51
            boolean r6 = r0.baseURIDeclarationSeen
            if (r6 == 0) goto L_0x0b7c
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0b7c
            java.lang.String r6 = "duplicate 'declare base-uri' seen"
            java.lang.String r9 = "XQST0032"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0b7c:
            r6 = 1
            r0 = r51
            r0.baseURIDeclarationSeen = r6
            java.lang.Object r49 = r51.parseURILiteral()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.Expression
            if (r6 == 0) goto L_0x0b91
            gnu.expr.Expression r49 = (gnu.expr.Expression) r49
            r27 = r49
            goto L_0x000e
        L_0x0b91:
            r51.parseSeparator()
            java.lang.String r49 = (java.lang.String) r49
            r0 = r51
            r1 = r49
            r0.setStaticBaseUri(r1)
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0ba1:
            r6 = move-exception
            goto L_0x05d2
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.xquery.lang.XQParser.parse(gnu.expr.Compilation):gnu.expr.Expression");
    }
/* Code decompiled incorrectly, please refer to instructions dump. */
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .
public gnu.expr.Expression parse(gnu.expr.Compilation r52) throws java.io.IOException, gnu.text.SyntaxException {
        /*
            r51 = this;
            r0 = r52
            r1 = r51
            r1.comp = r0
            int r18 = r51.skipSpace()
            if (r18 >= 0) goto L_0x000f
            r27 = 0
        L_0x000e:
            return r27
        L_0x000f:
            r0 = r51
            int r6 = r0.parseCount
            int r6 = r6 + 1
            r0 = r51
            r0.parseCount = r6
            r0 = r51
            r1 = r18
            r0.unread(r1)
            int r6 = r51.getLineNumber()
            int r44 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r43 = r6 + 1
            r6 = 35
            r0 = r18
            if (r0 != r6) goto L_0x006d
            r6 = 1
            r0 = r44
            if (r0 != r6) goto L_0x006d
            r6 = 1
            r0 = r43
            if (r0 != r6) goto L_0x006d
            r51.read()
            int r18 = r51.read()
            r6 = 33
            r0 = r18
            if (r0 != r6) goto L_0x0053
            int r18 = r51.read()
            r6 = 47
            r0 = r18
            if (r0 == r6) goto L_0x005a
        L_0x0053:
            java.lang.String r6 = "'#' is only allowed in initial '#!/PROGRAM'"
            r0 = r51
            r0.error(r6)
        L_0x005a:
            r6 = 13
            r0 = r18
            if (r0 == r6) goto L_0x006d
            r6 = 10
            r0 = r18
            if (r0 == r6) goto L_0x006d
            if (r18 < 0) goto L_0x006d
            int r18 = r51.read()
            goto L_0x005a
        L_0x006d:
            int r6 = r51.getRawToken()
            r9 = -1
            if (r6 != r9) goto L_0x0077
            r27 = 0
            goto L_0x000e
        L_0x0077:
            r51.peekOperand()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 != r9) goto L_0x00a3
            java.lang.String r9 = "namespace"
            r0 = r51
            java.lang.Object r6 = r0.curValue
            java.lang.String r6 = (java.lang.String) r6
            boolean r6 = r9.equals(r6)
            if (r6 == 0) goto L_0x00a3
            boolean r6 = warnOldVersion
            if (r6 == 0) goto L_0x009d
            r6 = 119(0x77, float:1.67E-43)
            java.lang.String r9 = "use 'declare namespace' instead of 'namespace'"
            r0 = r51
            r0.error(r6, r9)
        L_0x009d:
            r6 = 78
            r0 = r51
            r0.curToken = r6
        L_0x00a3:
            r0 = r51
            int r6 = r0.curToken
            switch(r6) {
                case 66: goto L_0x0b67;
                case 69: goto L_0x06c1;
                case 71: goto L_0x0653;
                case 72: goto L_0x0910;
                case 73: goto L_0x043d;
                case 75: goto L_0x0821;
                case 76: goto L_0x086e;
                case 77: goto L_0x02b9;
                case 78: goto L_0x02b9;
                case 79: goto L_0x06c1;
                case 80: goto L_0x011c;
                case 83: goto L_0x07ab;
                case 84: goto L_0x0434;
                case 85: goto L_0x0a04;
                case 86: goto L_0x0160;
                case 87: goto L_0x00df;
                case 89: goto L_0x0a51;
                case 111: goto L_0x0974;
                default: goto L_0x00aa;
            }
        L_0x00aa:
            r6 = -1
            r9 = 1
            r0 = r51
            gnu.expr.Expression r27 = r0.parseExprSequence(r6, r9)
            r0 = r51
            int r6 = r0.curToken
            r9 = 10
            if (r6 != r9) goto L_0x00c1
            r6 = 10
            r0 = r51
            r0.unread(r6)
        L_0x00c1:
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x000e
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "query body in a library module"
            java.lang.String r10 = "XPST0003"
            r0 = r51
            r0.error(r6, r9, r10)
            goto L_0x000e
        L_0x00df:
            int r6 = r51.getLineNumber()
            int r23 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r22 = r6 + 1
            java.lang.String r6 = "unexpected end-of-file after 'define QName'"
            r0 = r51
            int r36 = r0.peekNonSpace(r6)
            r6 = 40
            r0 = r36
            if (r0 != r6) goto L_0x0112
            java.lang.String r6 = "'missing 'function' after 'define'"
            r0 = r51
            r0.syntaxError(r6)
            r6 = 65
            r0 = r51
            r0.curToken = r6
            r0 = r51
            r1 = r23
            r2 = r22
            gnu.expr.Expression r27 = r0.parseFunctionDefinition(r1, r2)
            goto L_0x000e
        L_0x0112:
            java.lang.String r6 = "missing keyword after 'define'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x011c:
            int r6 = r51.getLineNumber()
            int r23 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r22 = r6 + 1
            r51.getRawToken()
            java.lang.String r6 = "unexpected end-of-file after 'define function'"
            r0 = r51
            r0.peekNonSpace(r6)
            r6 = 100
            r0 = r51
            char r40 = r0.pushNesting(r6)
            r0 = r51
            r1 = r23
            r2 = r22
            gnu.expr.Expression r27 = r0.parseFunctionDefinition(r1, r2)
            r0 = r51
            r1 = r40
            r0.popNesting(r1)
            r51.parseSeparator()
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            goto L_0x000e
        L_0x0160:
            r51.getRawToken()
            gnu.expr.Declaration r21 = r51.parseVariableDeclaration()
            if (r21 != 0) goto L_0x0173
            java.lang.String r6 = "missing Variable"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0173:
            java.lang.Object r35 = r21.getSymbol()
            r0 = r35
            boolean r6 = r0 instanceof java.lang.String
            if (r6 == 0) goto L_0x01a4
            gnu.text.SourceMessages r6 = r51.getMessages()
            r0 = r51
            gnu.text.LineBufferedReader r9 = r0.port
            java.lang.String r9 = r9.getName()
            r0 = r51
            int r10 = r0.curLine
            r0 = r51
            int r11 = r0.curColumn
            r6.setLine(r9, r10, r11)
            java.lang.String r35 = (java.lang.String) r35
            r6 = 0
            r0 = r51
            r1 = r35
            gnu.mapping.Symbol r6 = r0.namespaceResolve(r1, r6)
            r0 = r21
            r0.setSymbol(r6)
        L_0x01a4:
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x01d7
            java.lang.Object r6 = r21.getSymbol()
            gnu.mapping.Symbol r6 = (gnu.mapping.Symbol) r6
            java.lang.String r48 = r6.getNamespaceURI()
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            r0 = r48
            if (r0 == r6) goto L_0x01d7
            java.lang.String r6 = "http://www.w3.org/2005/xquery-local-functions"
            r0 = r48
            boolean r6 = r6.equals(r0)
            if (r6 == 0) goto L_0x01cc
            boolean r6 = r52.isPedantic()
            if (r6 == 0) goto L_0x01d7
        L_0x01cc:
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "variable not in namespace of library module"
            java.lang.String r10 = "XQST0048"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x01d7:
            gnu.expr.ScopeExp r6 = r52.currentScope()
            r0 = r21
            r6.addDeclaration(r0)
            r51.getRawToken()
            gnu.expr.Expression r47 = r51.parseOptionalTypeDeclaration()
            r6 = 1
            r0 = r21
            r0.setCanRead(r6)
            r10 = 16384(0x4000, double:8.0948E-320)
            r0 = r21
            r0.setFlag(r10)
            r30 = 0
            r42 = 0
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0208
            r0 = r51
            int r6 = r0.curToken
            r9 = 76
            if (r6 != r9) goto L_0x021c
        L_0x0208:
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 != r9) goto L_0x0217
            java.lang.String r6 = "declare variable contains '=' instead of ':='"
            r0 = r51
            r0.error(r6)
        L_0x0217:
            r51.getRawToken()
            r42 = 1
        L_0x021c:
            r0 = r51
            int r6 = r0.curToken
            r9 = 123(0x7b, float:1.72E-43)
            if (r6 != r9) goto L_0x025d
            java.lang.String r6 = "obsolete '{' in variable declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            gnu.expr.Expression r30 = r51.parseEnclosedExpr()
            r51.parseSeparator()
        L_0x0232:
            if (r47 == 0) goto L_0x023c
            r0 = r30
            r1 = r47
            gnu.expr.ApplyExp r30 = gnu.expr.Compilation.makeCoercion(r0, r1)
        L_0x023c:
            r0 = r21
            r1 = r30
            r0.noteValue(r1)
            r0 = r21
            r1 = r30
            gnu.expr.SetExp r27 = gnu.expr.SetExp.makeDefinition(r0, r1)
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            goto L_0x000e
        L_0x025d:
            java.lang.String r6 = "external"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x02a1
            r6 = 2
            gnu.expr.Expression[] r15 = new gnu.expr.Expression[r6]
            r6 = 0
            gnu.expr.QuoteExp r9 = new gnu.expr.QuoteExp
            java.lang.Object r10 = r21.getSymbol()
            r9.<init>(r10)
            r10 = 0
            gnu.expr.ApplyExp r9 = castQName(r9, r10)
            r15[r6] = r9
            r9 = 1
            if (r47 != 0) goto L_0x029e
            gnu.expr.QuoteExp r6 = gnu.expr.QuoteExp.nullExp
        L_0x0280:
            r15[r9] = r6
            gnu.expr.ApplyExp r30 = new gnu.expr.ApplyExp
            gnu.expr.QuoteExp r6 = getExternalFunction
            r0 = r30
            r0.<init>(r6, r15)
            r0 = r51
            int r6 = r0.curLine
            r0 = r51
            int r9 = r0.curColumn
            r0 = r51
            r1 = r30
            r0.maybeSetLine(r1, r6, r9)
            r51.getRawToken()
            goto L_0x0232
        L_0x029e:
            r6 = r47
            goto L_0x0280
        L_0x02a1:
            gnu.expr.Expression r30 = r51.parseExpr()
            r25 = 0
            if (r42 == 0) goto L_0x02ab
            if (r30 != 0) goto L_0x02b3
        L_0x02ab:
            java.lang.String r6 = "expected ':= init' or 'external'"
            r0 = r51
            gnu.expr.Expression r25 = r0.syntaxError(r6)
        L_0x02b3:
            if (r30 != 0) goto L_0x0232
            r30 = r25
            goto L_0x0232
        L_0x02b9:
            r0 = r51
            int r0 = r0.curToken
            r20 = r0
            r6 = 77
            r0 = r20
            if (r0 != r6) goto L_0x0304
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x0304
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate module declaration"
            r0 = r51
            r0.error(r6, r9)
        L_0x02d4:
            r0 = r51
            int r6 = r0.nesting
            if (r6 == 0) goto L_0x031a
            r6 = 1
        L_0x02db:
            r0 = r51
            int r36 = r0.skipSpace(r6)
            if (r36 < 0) goto L_0x0434
            r51.unread()
            r0 = r36
            char r6 = (char) r0
            boolean r6 = gnu.xml.XName.isNameStart(r6)
            if (r6 == 0) goto L_0x0434
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 == r9) goto L_0x031c
            java.lang.String r6 = "missing namespace prefix"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0304:
            r0 = r51
            boolean r6 = r0.seenDeclaration
            if (r6 == 0) goto L_0x02d4
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x02d4
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "namespace declared after function/variable/option"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x02d4
        L_0x031a:
            r6 = 0
            goto L_0x02db
        L_0x031c:
            java.lang.String r39 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r39
            r0.<init>(r6, r9, r10)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0341
            java.lang.String r6 = "missing '=' in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0341:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0356
            java.lang.String r6 = "missing uri in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0356:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            java.lang.String r39 = r39.intern()
            r0 = r51
            gnu.xml.NamespaceBinding r0 = r0.prologNamespaces
            r37 = r0
        L_0x0372:
            gnu.xml.NamespaceBinding r6 = builtinNamespaces
            r0 = r37
            if (r0 == r6) goto L_0x03a4
            java.lang.String r6 = r37.getPrefix()
            r0 = r39
            if (r6 != r0) goto L_0x0424
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "duplicate declarations for the same namespace prefix '"
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r39
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = "'"
            java.lang.StringBuilder r9 = r9.append(r10)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0033"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x03a4:
            r0 = r51
            r1 = r39
            r2 = r48
            r0.pushNamespace(r1, r2)
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            r51.parseSeparator()
            r6 = 77
            r0 = r20
            if (r0 != r6) goto L_0x0430
            gnu.expr.ModuleExp r8 = r52.getModule()
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = gnu.expr.Compilation.mangleURI(r48)
            java.lang.StringBuilder r6 = r6.append(r9)
            r9 = 46
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r9 = r8.getFileName()
            java.lang.String r9 = gnu.xquery.lang.XQuery.makeClassName(r9)
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r4 = r6.toString()
            r8.setName(r4)
            gnu.bytecode.ClassType r6 = new gnu.bytecode.ClassType
            r6.<init>(r4)
            r0 = r52
            r0.mainClass = r6
            r0 = r52
            gnu.bytecode.ClassType r6 = r0.mainClass
            r8.setType(r6)
            gnu.expr.ModuleManager r32 = gnu.expr.ModuleManager.getInstance()
            r0 = r32
            r1 = r52
            gnu.expr.ModuleInfo r5 = r0.find(r1)
            r0 = r48
            r5.setNamespaceUri(r0)
            r0 = r52
            gnu.bytecode.ClassType r6 = r0.mainClass
            r8.setType(r6)
            int r6 = r48.length()
            if (r6 != 0) goto L_0x042a
            java.lang.String r6 = "zero-length module namespace"
            java.lang.String r9 = "XQST0088"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6, r9)
            goto L_0x000e
        L_0x0424:
            gnu.xml.NamespaceBinding r37 = r37.getNext()
            goto L_0x0372
        L_0x042a:
            r0 = r48
            r1 = r51
            r1.libraryModuleNamespace = r0
        L_0x0430:
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0434:
            java.lang.String r6 = "'import schema' not implemented"
            java.lang.String r9 = "XQST0009"
            r0 = r51
            r0.fatal(r6, r9)
        L_0x043d:
            r51.getRawToken()
            r39 = 0
            java.lang.String r6 = "namespace"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0489
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 == r9) goto L_0x0461
            java.lang.String r6 = "missing namespace prefix"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0461:
            java.lang.String r39 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r39
            r0.<init>(r6, r9, r10)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0486
            java.lang.String r6 = "missing '=' in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0486:
            r51.getRawToken()
        L_0x0489:
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x049b
            java.lang.String r6 = "missing uri in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x049b:
            r0 = r51
            int r6 = r0.tokenBufferLength
            if (r6 != 0) goto L_0x04ad
            java.lang.String r6 = "zero-length target namespace"
            java.lang.String r9 = "XQST0088"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6, r9)
            goto L_0x000e
        L_0x04ad:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            if (r39 == 0) goto L_0x04d6
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            java.lang.String r6 = r39.intern()
            r0 = r51
            r1 = r48
            r0.pushNamespace(r6, r1)
        L_0x04d6:
            r51.getRawToken()
            gnu.expr.ModuleManager r6 = gnu.expr.ModuleManager.getInstance()
            r0 = r52
            r6.find(r0)
            gnu.expr.ModuleExp r8 = r52.getModule()
            java.util.Vector r7 = new java.util.Vector
            r7.<init>()
            java.lang.String r38 = gnu.expr.Compilation.mangleURI(r48)
            r0 = r51
            gnu.text.LineBufferedReader r6 = r0.port
            java.lang.String r6 = r6.getName()
            r0 = r52
            r1 = r44
            r2 = r43
            r0.setLine(r6, r1, r2)
            java.lang.String r6 = "at"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x05c5
        L_0x050a:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x051f
            java.lang.String r6 = "missing module location"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x051f:
            java.lang.String r16 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r16
            r0.<init>(r6, r9, r10)
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = gnu.expr.Compilation.mangleURI(r48)
            java.lang.StringBuilder r6 = r6.append(r9)
            r9 = 46
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r9 = gnu.xquery.lang.XQuery.makeClassName(r16)
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r4 = r6.toString()
            r0 = r16
            gnu.expr.ModuleInfo r5 = kawa.standard.require.lookupModuleFromSourcePath(r0, r8)
            if (r5 != 0) goto L_0x0572
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "malformed URL: "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r16
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r52
            r0.error(r6, r9)
        L_0x0572:
            r6 = 0
            r9 = r52
            kawa.standard.require.importDefinitions(r4, r5, r6, r7, r8, r9)
            r0 = r51
            int r6 = r0.nesting
            if (r6 == 0) goto L_0x05c3
            r6 = 1
        L_0x057f:
            r0 = r51
            int r36 = r0.skipSpace(r6)
            r6 = 44
            r0 = r36
            if (r0 == r6) goto L_0x050a
            r0 = r51
            r1 = r36
            r0.unread(r1)
            r51.parseSeparator()
        L_0x0595:
            r0 = r52
            java.util.Stack<java.lang.Object> r6 = r0.pendingImports
            if (r6 == 0) goto L_0x05b0
            r0 = r52
            java.util.Stack<java.lang.Object> r6 = r0.pendingImports
            int r6 = r6.size()
            if (r6 <= 0) goto L_0x05b0
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "module import forms a cycle"
            java.lang.String r10 = "XQST0073"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x05b0:
            int r6 = r7.size()
            gnu.expr.Expression[] r0 = new gnu.expr.Expression[r6]
            r31 = r0
            r0 = r31
            r7.toArray(r0)
            gnu.expr.Expression r27 = gnu.expr.BeginExp.canonicalize(r31)
            goto L_0x000e
        L_0x05c3:
            r6 = 0
            goto L_0x057f
        L_0x05c5:
            gnu.expr.ModuleManager r32 = gnu.expr.ModuleManager.getInstance()
            r34 = 0
            r0 = r32
            r1 = r38
            r0.loadPackageInfo(r1)     // Catch:{ ClassNotFoundException -> 0x0ba1, Throwable -> 0x060a }
        L_0x05d2:
            r29 = 0
        L_0x05d4:
            r0 = r32
            r1 = r29
            gnu.expr.ModuleInfo r5 = r0.getModule(r1)
            if (r5 != 0) goto L_0x0634
            if (r34 != 0) goto L_0x05fc
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "no module found for "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r48
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r51
            r0.error(r6, r9)
        L_0x05fc:
            r16 = 0
            r0 = r51
            int r6 = r0.curToken
            r9 = 59
            if (r6 == r9) goto L_0x0595
            r51.parseSeparator()
            goto L_0x0595
        L_0x060a:
            r26 = move-exception
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "error loading map for "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r48
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = " - "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r26
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r51
            r0.error(r6, r9)
            goto L_0x05d2
        L_0x0634:
            java.lang.String r6 = r5.getNamespaceUri()
            r0 = r48
            boolean r6 = r0.equals(r6)
            if (r6 != 0) goto L_0x0643
        L_0x0640:
            int r29 = r29 + 1
            goto L_0x05d4
        L_0x0643:
            int r34 = r34 + 1
            java.lang.String r9 = r5.getClassName()
            r11 = 0
            r10 = r5
            r12 = r7
            r13 = r8
            r14 = r52
            kawa.standard.require.importDefinitions(r9, r10, r11, r12, r13, r14)
            goto L_0x0640
        L_0x0653:
            r0 = r51
            gnu.xquery.util.NamedCollator r6 = r0.defaultCollator
            if (r6 == 0) goto L_0x066a
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x066a
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate default collation declaration"
            java.lang.String r10 = "XQST0038"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x066a:
            java.lang.Object r49 = r51.parseURILiteral()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.Expression
            if (r6 == 0) goto L_0x067a
            gnu.expr.Expression r49 = (gnu.expr.Expression) r49
            r27 = r49
            goto L_0x000e
        L_0x067a:
            r19 = r49
            java.lang.String r19 = (java.lang.String) r19
            r0 = r51
            r1 = r19
            java.lang.String r19 = r0.resolveAgainstBaseUri(r1)     // Catch:{ Exception -> 0x0695 }
            gnu.xquery.util.NamedCollator r6 = gnu.xquery.util.NamedCollator.make(r19)     // Catch:{ Exception -> 0x0695 }
            r0 = r51
            r0.defaultCollator = r6     // Catch:{ Exception -> 0x0695 }
        L_0x068e:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0695:
            r26 = move-exception
            gnu.xquery.util.NamedCollator r6 = gnu.xquery.util.NamedCollator.codepointCollation
            r0 = r51
            r0.defaultCollator = r6
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "unknown collation '"
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r19
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = "'"
            java.lang.StringBuilder r9 = r9.append(r10)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0038"
            r0 = r51
            r0.error(r6, r9, r10)
            goto L_0x068e
        L_0x06c1:
            r0 = r51
            int r6 = r0.curToken
            r9 = 79
            if (r6 != r9) goto L_0x0724
            r28 = 1
        L_0x06cb:
            if (r28 == 0) goto L_0x0727
            java.lang.String r39 = "(functions)"
        L_0x06cf:
            r0 = r51
            gnu.xml.NamespaceBinding r6 = r0.prologNamespaces
            gnu.xml.NamespaceBinding r9 = builtinNamespaces
            r0 = r39
            java.lang.String r6 = r6.resolve(r0, r9)
            if (r6 == 0) goto L_0x072a
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate default namespace declaration"
            java.lang.String r10 = "XQST0066"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x06e8:
            r51.getRawToken()
            java.lang.String r6 = "namespace"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0740
            r51.getRawToken()
        L_0x06f8:
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0708
            r0 = r51
            int r6 = r0.curToken
            r9 = 76
            if (r6 != r9) goto L_0x0712
        L_0x0708:
            java.lang.String r6 = "extra '=' in default namespace declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            r51.getRawToken()
        L_0x0712:
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0764
            java.lang.String r6 = "missing namespace uri"
            r0 = r51
            gnu.expr.Expression r27 = r0.declError(r6)
            goto L_0x000e
        L_0x0724:
            r28 = 0
            goto L_0x06cb
        L_0x0727:
            java.lang.String r39 = gnu.xquery.lang.XQuery.DEFAULT_ELEMENT_PREFIX
            goto L_0x06cf
        L_0x072a:
            r0 = r51
            boolean r6 = r0.seenDeclaration
            if (r6 == 0) goto L_0x06e8
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x06e8
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "default namespace declared after function/variable/option"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x06e8
        L_0x0740:
            java.lang.String r33 = "expected 'namespace' keyword"
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x075c
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x075c
            r0 = r51
            r1 = r33
            gnu.expr.Expression r27 = r0.declError(r1)
            goto L_0x000e
        L_0x075c:
            r0 = r51
            r1 = r33
            r0.warnOldVersion(r1)
            goto L_0x06f8
        L_0x0764:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            if (r28 == 0) goto L_0x07a4
            r6 = 1
            gnu.mapping.Namespace[] r6 = new gnu.mapping.Namespace[r6]
            r0 = r51
            r0.functionNamespacePath = r6
            r0 = r51
            gnu.mapping.Namespace[] r6 = r0.functionNamespacePath
            r9 = 0
            gnu.mapping.Namespace r10 = gnu.mapping.Namespace.valueOf(r48)
            r6[r9] = r10
        L_0x078a:
            r0 = r51
            r1 = r39
            r2 = r48
            r0.pushNamespace(r1, r2)
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x07a4:
            r0 = r48
            r1 = r51
            r1.defaultElementNamespace = r0
            goto L_0x078a
        L_0x07ab:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 != r9) goto L_0x07c0
            java.lang.String r6 = "obsolate '=' in boundary-space declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            r51.getRawToken()
        L_0x07c0:
            r0 = r51
            boolean r6 = r0.boundarySpaceDeclarationSeen
            if (r6 == 0) goto L_0x07d5
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x07d5
            java.lang.String r6 = "duplicate 'declare boundary-space' seen"
            java.lang.String r9 = "XQST0068"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x07d5:
            r6 = 1
            r0 = r51
            r0.boundarySpaceDeclarationSeen = r6
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x07f0
            r6 = 1
            r0 = r51
            r0.boundarySpacePreserve = r6
        L_0x07e9:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x07f0:
            java.lang.String r6 = "strip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0800
            r6 = 0
            r0 = r51
            r0.boundarySpacePreserve = r6
            goto L_0x07e9
        L_0x0800:
            java.lang.String r6 = "skip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0817
            java.lang.String r6 = "update: declare boundary-space skip -> strip"
            r0 = r51
            r0.warnOldVersion(r6)
            r6 = 0
            r0 = r51
            r0.boundarySpacePreserve = r6
            goto L_0x07e9
        L_0x0817:
            java.lang.String r6 = "boundary-space declaration must be preserve or strip"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0821:
            r51.getRawToken()
            r0 = r51
            boolean r6 = r0.constructionModeDeclarationSeen
            if (r6 == 0) goto L_0x0839
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0839
            java.lang.String r6 = "duplicate 'declare construction' seen"
            java.lang.String r9 = "XQST0067"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0839:
            r6 = 1
            r0 = r51
            r0.constructionModeDeclarationSeen = r6
            java.lang.String r6 = "strip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0854
            r6 = 1
            r0 = r51
            r0.constructionModeStrip = r6
        L_0x084d:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0854:
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0864
            r6 = 0
            r0 = r51
            r0.constructionModeStrip = r6
            goto L_0x084d
        L_0x0864:
            java.lang.String r6 = "construction declaration must be strip or preserve"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x086e:
            r51.getRawToken()
            r0 = r51
            boolean r6 = r0.copyNamespacesDeclarationSeen
            if (r6 == 0) goto L_0x0886
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0886
            java.lang.String r6 = "duplicate 'declare copy-namespaces' seen"
            java.lang.String r9 = "XQST0055"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0886:
            r6 = 1
            r0 = r51
            r0.copyNamespacesDeclarationSeen = r6
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08b4
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 | 1
            r0 = r51
            r0.copyNamespacesMode = r6
        L_0x089f:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 44
            if (r6 == r9) goto L_0x08d3
            java.lang.String r6 = "missing ',' in copy-namespaces declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x08b4:
            java.lang.String r6 = "no-preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08c9
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 & -2
            r0 = r51
            r0.copyNamespacesMode = r6
            goto L_0x089f
        L_0x08c9:
            java.lang.String r6 = "expected 'preserve' or 'no-preserve' after 'declare copy-namespaces'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x08d3:
            r51.getRawToken()
            java.lang.String r6 = "inherit"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08f1
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 | 2
            r0 = r51
            r0.copyNamespacesMode = r6
        L_0x08ea:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x08f1:
            java.lang.String r6 = "no-inherit"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0906
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 & -3
            r0 = r51
            r0.copyNamespacesMode = r6
            goto L_0x08ea
        L_0x0906:
            java.lang.String r6 = "expected 'inherit' or 'no-inherit' in copy-namespaces declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0910:
            r51.getRawToken()
            java.lang.String r6 = "empty"
            r0 = r51
            boolean r41 = r0.match(r6)
            r0 = r51
            boolean r6 = r0.emptyOrderDeclarationSeen
            if (r6 == 0) goto L_0x0930
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0930
            java.lang.String r6 = "duplicate 'declare default empty order' seen"
            java.lang.String r9 = "XQST0069"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0930:
            r6 = 1
            r0 = r51
            r0.emptyOrderDeclarationSeen = r6
            if (r41 == 0) goto L_0x0951
            r51.getRawToken()
        L_0x093a:
            java.lang.String r6 = "greatest"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0959
            r6 = 71
            r0 = r51
            r0.defaultEmptyOrder = r6
        L_0x094a:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0951:
            java.lang.String r6 = "expected 'empty greatest' or 'empty least'"
            r0 = r51
            r0.syntaxError(r6)
            goto L_0x093a
        L_0x0959:
            java.lang.String r6 = "least"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x096a
            r6 = 76
            r0 = r51
            r0.defaultEmptyOrder = r6
            goto L_0x094a
        L_0x096a:
            java.lang.String r6 = "expected 'empty greatest' or 'empty least'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0974:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 81
            if (r6 == r9) goto L_0x0992
            java.lang.String r6 = "expected QName after 'declare option'"
            r0 = r51
            r0.syntaxError(r6)
        L_0x0986:
            r51.parseSeparator()
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0992:
            java.lang.String r45 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r45
            r0.<init>(r6, r9, r10)
            gnu.text.SourceMessages r6 = r51.getMessages()
            r0 = r51
            gnu.text.LineBufferedReader r9 = r0.port
            java.lang.String r9 = r9.getName()
            r0 = r51
            int r10 = r0.curLine
            r0 = r51
            int r11 = r0.curColumn
            r6.setLine(r9, r10, r11)
            r6 = 0
            r0 = r51
            r1 = r45
            gnu.mapping.Symbol r46 = r0.namespaceResolve(r1, r6)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x09ee
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = "expected string literal after 'declare option "
            java.lang.StringBuilder r6 = r6.append(r9)
            r0 = r45
            java.lang.StringBuilder r6 = r6.append(r0)
            r9 = 39
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r6 = r6.toString()
            r0 = r51
            r0.syntaxError(r6)
            goto L_0x0986
        L_0x09ee:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            r0 = r51
            r1 = r46
            r0.handleOption(r1, r6)
            goto L_0x0986
        L_0x0a04:
            r0 = r51
            boolean r6 = r0.orderingModeSeen
            if (r6 == 0) goto L_0x0a19
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0a19
            java.lang.String r6 = "duplicate 'declare ordering' seen"
            java.lang.String r9 = "XQST0065"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0a19:
            r6 = 1
            r0 = r51
            r0.orderingModeSeen = r6
            r51.getRawToken()
            java.lang.String r6 = "ordered"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0a37
            r6 = 0
            r0 = r51
            r0.orderingModeUnordered = r6
        L_0x0a30:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0a37:
            java.lang.String r6 = "unordered"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0a47
            r6 = 1
            r0 = r51
            r0.orderingModeUnordered = r6
            goto L_0x0a30
        L_0x0a47:
            java.lang.String r6 = "ordering declaration must be ordered or unordered"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0a51:
            r0 = r51
            int r6 = r0.parseCount
            r9 = 1
            if (r6 == r9) goto L_0x0ac6
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "'xquery version' does not start module"
            r0 = r51
            r0.error(r6, r9)
        L_0x0a61:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 != r9) goto L_0x0ad6
            java.lang.String r50 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r50
            r0.<init>(r6, r9, r10)
            java.lang.String r6 = "1.0"
            r0 = r50
            boolean r6 = r0.equals(r6)
            if (r6 != 0) goto L_0x0aa4
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "unrecognized xquery version "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r50
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0031"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x0aa4:
            r51.getRawToken()
            java.lang.String r6 = "encoding"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0b54
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0ae0
            java.lang.String r6 = "invalid encoding specification"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0ac6:
            r0 = r51
            int r6 = r0.commentCount
            if (r6 <= 0) goto L_0x0a61
            r6 = 119(0x77, float:1.67E-43)
            java.lang.String r9 = "comments should not precede 'xquery version'"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x0a61
        L_0x0ad6:
            java.lang.String r6 = "missing version string after 'xquery version'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0ae0:
            java.lang.String r24 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r24
            r0.<init>(r6, r9, r10)
            r0 = r51
            int r0 = r0.tokenBufferLength
            r29 = r0
            if (r29 != 0) goto L_0x0b41
            r17 = 1
        L_0x0afa:
            int r29 = r29 + -1
            if (r29 < 0) goto L_0x0b44
            if (r17 != 0) goto L_0x0b44
            r0 = r51
            char[] r6 = r0.tokenBuffer
            char r18 = r6[r29]
            r6 = 65
            r0 = r18
            if (r0 < r6) goto L_0x0b12
            r6 = 90
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b12:
            r6 = 97
            r0 = r18
            if (r0 < r6) goto L_0x0b1e
            r6 = 122(0x7a, float:1.71E-43)
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b1e:
            if (r29 == 0) goto L_0x0b3e
            r6 = 48
            r0 = r18
            if (r0 < r6) goto L_0x0b2c
            r6 = 57
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b2c:
            r6 = 46
            r0 = r18
            if (r0 == r6) goto L_0x0afa
            r6 = 95
            r0 = r18
            if (r0 == r6) goto L_0x0afa
            r6 = 45
            r0 = r18
            if (r0 == r6) goto L_0x0afa
        L_0x0b3e:
            r17 = 1
            goto L_0x0afa
        L_0x0b41:
            r17 = 0
            goto L_0x0afa
        L_0x0b44:
            if (r17 == 0) goto L_0x0b51
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "invalid encoding name syntax"
            java.lang.String r10 = "XQST0087"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x0b51:
            r51.getRawToken()
        L_0x0b54:
            r0 = r51
            int r6 = r0.curToken
            r9 = 59
            if (r6 == r9) goto L_0x0b63
            java.lang.String r6 = "missing ';'"
            r0 = r51
            r0.syntaxError(r6)
        L_0x0b63:
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0b67:
            r0 = r51
            boolean r6 = r0.baseURIDeclarationSeen
            if (r6 == 0) goto L_0x0b7c
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0b7c
            java.lang.String r6 = "duplicate 'declare base-uri' seen"
            java.lang.String r9 = "XQST0032"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0b7c:
            r6 = 1
            r0 = r51
            r0.baseURIDeclarationSeen = r6
            java.lang.Object r49 = r51.parseURILiteral()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.Expression
            if (r6 == 0) goto L_0x0b91
            gnu.expr.Expression r49 = (gnu.expr.Expression) r49
            r27 = r49
            goto L_0x000e
        L_0x0b91:
            r51.parseSeparator()
            java.lang.String r49 = (java.lang.String) r49
            r0 = r51
            r1 = r49
            r0.setStaticBaseUri(r1)
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0ba1:
            r6 = move-exception
            goto L_0x05d2
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.xquery.lang.XQParser.parse(gnu.expr.Compilation):gnu.expr.Expression");
    }
public gnu . expr . Expression parse ( gnu . expr . Compilation r52 ) throws java . io . IOException , gnu . text . SyntaxException { /*
            r51 = this;
            r0 = r52
            r1 = r51
            r1.comp = r0
            int r18 = r51.skipSpace()
            if (r18 >= 0) goto L_0x000f
            r27 = 0
        L_0x000e:
            return r27
        L_0x000f:
            r0 = r51
            int r6 = r0.parseCount
            int r6 = r6 + 1
            r0 = r51
            r0.parseCount = r6
            r0 = r51
            r1 = r18
            r0.unread(r1)
            int r6 = r51.getLineNumber()
            int r44 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r43 = r6 + 1
            r6 = 35
            r0 = r18
            if (r0 != r6) goto L_0x006d
            r6 = 1
            r0 = r44
            if (r0 != r6) goto L_0x006d
            r6 = 1
            r0 = r43
            if (r0 != r6) goto L_0x006d
            r51.read()
            int r18 = r51.read()
            r6 = 33
            r0 = r18
            if (r0 != r6) goto L_0x0053
            int r18 = r51.read()
            r6 = 47
            r0 = r18
            if (r0 == r6) goto L_0x005a
        L_0x0053:
            java.lang.String r6 = "'#' is only allowed in initial '#!/PROGRAM'"
            r0 = r51
            r0.error(r6)
        L_0x005a:
            r6 = 13
            r0 = r18
            if (r0 == r6) goto L_0x006d
            r6 = 10
            r0 = r18
            if (r0 == r6) goto L_0x006d
            if (r18 < 0) goto L_0x006d
            int r18 = r51.read()
            goto L_0x005a
        L_0x006d:
            int r6 = r51.getRawToken()
            r9 = -1
            if (r6 != r9) goto L_0x0077
            r27 = 0
            goto L_0x000e
        L_0x0077:
            r51.peekOperand()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 != r9) goto L_0x00a3
            java.lang.String r9 = "namespace"
            r0 = r51
            java.lang.Object r6 = r0.curValue
            java.lang.String r6 = (java.lang.String) r6
            boolean r6 = r9.equals(r6)
            if (r6 == 0) goto L_0x00a3
            boolean r6 = warnOldVersion
            if (r6 == 0) goto L_0x009d
            r6 = 119(0x77, float:1.67E-43)
            java.lang.String r9 = "use 'declare namespace' instead of 'namespace'"
            r0 = r51
            r0.error(r6, r9)
        L_0x009d:
            r6 = 78
            r0 = r51
            r0.curToken = r6
        L_0x00a3:
            r0 = r51
            int r6 = r0.curToken
            switch(r6) {
                case 66: goto L_0x0b67;
                case 69: goto L_0x06c1;
                case 71: goto L_0x0653;
                case 72: goto L_0x0910;
                case 73: goto L_0x043d;
                case 75: goto L_0x0821;
                case 76: goto L_0x086e;
                case 77: goto L_0x02b9;
                case 78: goto L_0x02b9;
                case 79: goto L_0x06c1;
                case 80: goto L_0x011c;
                case 83: goto L_0x07ab;
                case 84: goto L_0x0434;
                case 85: goto L_0x0a04;
                case 86: goto L_0x0160;
                case 87: goto L_0x00df;
                case 89: goto L_0x0a51;
                case 111: goto L_0x0974;
                default: goto L_0x00aa;
            }
        L_0x00aa:
            r6 = -1
            r9 = 1
            r0 = r51
            gnu.expr.Expression r27 = r0.parseExprSequence(r6, r9)
            r0 = r51
            int r6 = r0.curToken
            r9 = 10
            if (r6 != r9) goto L_0x00c1
            r6 = 10
            r0 = r51
            r0.unread(r6)
        L_0x00c1:
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x000e
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "query body in a library module"
            java.lang.String r10 = "XPST0003"
            r0 = r51
            r0.error(r6, r9, r10)
            goto L_0x000e
        L_0x00df:
            int r6 = r51.getLineNumber()
            int r23 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r22 = r6 + 1
            java.lang.String r6 = "unexpected end-of-file after 'define QName'"
            r0 = r51
            int r36 = r0.peekNonSpace(r6)
            r6 = 40
            r0 = r36
            if (r0 != r6) goto L_0x0112
            java.lang.String r6 = "'missing 'function' after 'define'"
            r0 = r51
            r0.syntaxError(r6)
            r6 = 65
            r0 = r51
            r0.curToken = r6
            r0 = r51
            r1 = r23
            r2 = r22
            gnu.expr.Expression r27 = r0.parseFunctionDefinition(r1, r2)
            goto L_0x000e
        L_0x0112:
            java.lang.String r6 = "missing keyword after 'define'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x011c:
            int r6 = r51.getLineNumber()
            int r23 = r6 + 1
            int r6 = r51.getColumnNumber()
            int r22 = r6 + 1
            r51.getRawToken()
            java.lang.String r6 = "unexpected end-of-file after 'define function'"
            r0 = r51
            r0.peekNonSpace(r6)
            r6 = 100
            r0 = r51
            char r40 = r0.pushNesting(r6)
            r0 = r51
            r1 = r23
            r2 = r22
            gnu.expr.Expression r27 = r0.parseFunctionDefinition(r1, r2)
            r0 = r51
            r1 = r40
            r0.popNesting(r1)
            r51.parseSeparator()
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            goto L_0x000e
        L_0x0160:
            r51.getRawToken()
            gnu.expr.Declaration r21 = r51.parseVariableDeclaration()
            if (r21 != 0) goto L_0x0173
            java.lang.String r6 = "missing Variable"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0173:
            java.lang.Object r35 = r21.getSymbol()
            r0 = r35
            boolean r6 = r0 instanceof java.lang.String
            if (r6 == 0) goto L_0x01a4
            gnu.text.SourceMessages r6 = r51.getMessages()
            r0 = r51
            gnu.text.LineBufferedReader r9 = r0.port
            java.lang.String r9 = r9.getName()
            r0 = r51
            int r10 = r0.curLine
            r0 = r51
            int r11 = r0.curColumn
            r6.setLine(r9, r10, r11)
            java.lang.String r35 = (java.lang.String) r35
            r6 = 0
            r0 = r51
            r1 = r35
            gnu.mapping.Symbol r6 = r0.namespaceResolve(r1, r6)
            r0 = r21
            r0.setSymbol(r6)
        L_0x01a4:
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x01d7
            java.lang.Object r6 = r21.getSymbol()
            gnu.mapping.Symbol r6 = (gnu.mapping.Symbol) r6
            java.lang.String r48 = r6.getNamespaceURI()
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            r0 = r48
            if (r0 == r6) goto L_0x01d7
            java.lang.String r6 = "http://www.w3.org/2005/xquery-local-functions"
            r0 = r48
            boolean r6 = r6.equals(r0)
            if (r6 == 0) goto L_0x01cc
            boolean r6 = r52.isPedantic()
            if (r6 == 0) goto L_0x01d7
        L_0x01cc:
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "variable not in namespace of library module"
            java.lang.String r10 = "XQST0048"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x01d7:
            gnu.expr.ScopeExp r6 = r52.currentScope()
            r0 = r21
            r6.addDeclaration(r0)
            r51.getRawToken()
            gnu.expr.Expression r47 = r51.parseOptionalTypeDeclaration()
            r6 = 1
            r0 = r21
            r0.setCanRead(r6)
            r10 = 16384(0x4000, double:8.0948E-320)
            r0 = r21
            r0.setFlag(r10)
            r30 = 0
            r42 = 0
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0208
            r0 = r51
            int r6 = r0.curToken
            r9 = 76
            if (r6 != r9) goto L_0x021c
        L_0x0208:
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 != r9) goto L_0x0217
            java.lang.String r6 = "declare variable contains '=' instead of ':='"
            r0 = r51
            r0.error(r6)
        L_0x0217:
            r51.getRawToken()
            r42 = 1
        L_0x021c:
            r0 = r51
            int r6 = r0.curToken
            r9 = 123(0x7b, float:1.72E-43)
            if (r6 != r9) goto L_0x025d
            java.lang.String r6 = "obsolete '{' in variable declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            gnu.expr.Expression r30 = r51.parseEnclosedExpr()
            r51.parseSeparator()
        L_0x0232:
            if (r47 == 0) goto L_0x023c
            r0 = r30
            r1 = r47
            gnu.expr.ApplyExp r30 = gnu.expr.Compilation.makeCoercion(r0, r1)
        L_0x023c:
            r0 = r21
            r1 = r30
            r0.noteValue(r1)
            r0 = r21
            r1 = r30
            gnu.expr.SetExp r27 = gnu.expr.SetExp.makeDefinition(r0, r1)
            r0 = r51
            r1 = r27
            r2 = r44
            r3 = r43
            r0.maybeSetLine(r1, r2, r3)
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            goto L_0x000e
        L_0x025d:
            java.lang.String r6 = "external"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x02a1
            r6 = 2
            gnu.expr.Expression[] r15 = new gnu.expr.Expression[r6]
            r6 = 0
            gnu.expr.QuoteExp r9 = new gnu.expr.QuoteExp
            java.lang.Object r10 = r21.getSymbol()
            r9.<init>(r10)
            r10 = 0
            gnu.expr.ApplyExp r9 = castQName(r9, r10)
            r15[r6] = r9
            r9 = 1
            if (r47 != 0) goto L_0x029e
            gnu.expr.QuoteExp r6 = gnu.expr.QuoteExp.nullExp
        L_0x0280:
            r15[r9] = r6
            gnu.expr.ApplyExp r30 = new gnu.expr.ApplyExp
            gnu.expr.QuoteExp r6 = getExternalFunction
            r0 = r30
            r0.<init>(r6, r15)
            r0 = r51
            int r6 = r0.curLine
            r0 = r51
            int r9 = r0.curColumn
            r0 = r51
            r1 = r30
            r0.maybeSetLine(r1, r6, r9)
            r51.getRawToken()
            goto L_0x0232
        L_0x029e:
            r6 = r47
            goto L_0x0280
        L_0x02a1:
            gnu.expr.Expression r30 = r51.parseExpr()
            r25 = 0
            if (r42 == 0) goto L_0x02ab
            if (r30 != 0) goto L_0x02b3
        L_0x02ab:
            java.lang.String r6 = "expected ':= init' or 'external'"
            r0 = r51
            gnu.expr.Expression r25 = r0.syntaxError(r6)
        L_0x02b3:
            if (r30 != 0) goto L_0x0232
            r30 = r25
            goto L_0x0232
        L_0x02b9:
            r0 = r51
            int r0 = r0.curToken
            r20 = r0
            r6 = 77
            r0 = r20
            if (r0 != r6) goto L_0x0304
            r0 = r51
            java.lang.String r6 = r0.libraryModuleNamespace
            if (r6 == 0) goto L_0x0304
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate module declaration"
            r0 = r51
            r0.error(r6, r9)
        L_0x02d4:
            r0 = r51
            int r6 = r0.nesting
            if (r6 == 0) goto L_0x031a
            r6 = 1
        L_0x02db:
            r0 = r51
            int r36 = r0.skipSpace(r6)
            if (r36 < 0) goto L_0x0434
            r51.unread()
            r0 = r36
            char r6 = (char) r0
            boolean r6 = gnu.xml.XName.isNameStart(r6)
            if (r6 == 0) goto L_0x0434
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 == r9) goto L_0x031c
            java.lang.String r6 = "missing namespace prefix"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0304:
            r0 = r51
            boolean r6 = r0.seenDeclaration
            if (r6 == 0) goto L_0x02d4
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x02d4
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "namespace declared after function/variable/option"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x02d4
        L_0x031a:
            r6 = 0
            goto L_0x02db
        L_0x031c:
            java.lang.String r39 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r39
            r0.<init>(r6, r9, r10)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0341
            java.lang.String r6 = "missing '=' in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0341:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0356
            java.lang.String r6 = "missing uri in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0356:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            java.lang.String r39 = r39.intern()
            r0 = r51
            gnu.xml.NamespaceBinding r0 = r0.prologNamespaces
            r37 = r0
        L_0x0372:
            gnu.xml.NamespaceBinding r6 = builtinNamespaces
            r0 = r37
            if (r0 == r6) goto L_0x03a4
            java.lang.String r6 = r37.getPrefix()
            r0 = r39
            if (r6 != r0) goto L_0x0424
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "duplicate declarations for the same namespace prefix '"
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r39
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = "'"
            java.lang.StringBuilder r9 = r9.append(r10)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0033"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x03a4:
            r0 = r51
            r1 = r39
            r2 = r48
            r0.pushNamespace(r1, r2)
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            r51.parseSeparator()
            r6 = 77
            r0 = r20
            if (r0 != r6) goto L_0x0430
            gnu.expr.ModuleExp r8 = r52.getModule()
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = gnu.expr.Compilation.mangleURI(r48)
            java.lang.StringBuilder r6 = r6.append(r9)
            r9 = 46
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r9 = r8.getFileName()
            java.lang.String r9 = gnu.xquery.lang.XQuery.makeClassName(r9)
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r4 = r6.toString()
            r8.setName(r4)
            gnu.bytecode.ClassType r6 = new gnu.bytecode.ClassType
            r6.<init>(r4)
            r0 = r52
            r0.mainClass = r6
            r0 = r52
            gnu.bytecode.ClassType r6 = r0.mainClass
            r8.setType(r6)
            gnu.expr.ModuleManager r32 = gnu.expr.ModuleManager.getInstance()
            r0 = r32
            r1 = r52
            gnu.expr.ModuleInfo r5 = r0.find(r1)
            r0 = r48
            r5.setNamespaceUri(r0)
            r0 = r52
            gnu.bytecode.ClassType r6 = r0.mainClass
            r8.setType(r6)
            int r6 = r48.length()
            if (r6 != 0) goto L_0x042a
            java.lang.String r6 = "zero-length module namespace"
            java.lang.String r9 = "XQST0088"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6, r9)
            goto L_0x000e
        L_0x0424:
            gnu.xml.NamespaceBinding r37 = r37.getNext()
            goto L_0x0372
        L_0x042a:
            r0 = r48
            r1 = r51
            r1.libraryModuleNamespace = r0
        L_0x0430:
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0434:
            java.lang.String r6 = "'import schema' not implemented"
            java.lang.String r9 = "XQST0009"
            r0 = r51
            r0.fatal(r6, r9)
        L_0x043d:
            r51.getRawToken()
            r39 = 0
            java.lang.String r6 = "namespace"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0489
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 65
            if (r6 == r9) goto L_0x0461
            java.lang.String r6 = "missing namespace prefix"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0461:
            java.lang.String r39 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r39
            r0.<init>(r6, r9, r10)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0486
            java.lang.String r6 = "missing '=' in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0486:
            r51.getRawToken()
        L_0x0489:
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x049b
            java.lang.String r6 = "missing uri in namespace declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x049b:
            r0 = r51
            int r6 = r0.tokenBufferLength
            if (r6 != 0) goto L_0x04ad
            java.lang.String r6 = "zero-length target namespace"
            java.lang.String r9 = "XQST0088"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6, r9)
            goto L_0x000e
        L_0x04ad:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            if (r39 == 0) goto L_0x04d6
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            java.lang.String r6 = r39.intern()
            r0 = r51
            r1 = r48
            r0.pushNamespace(r6, r1)
        L_0x04d6:
            r51.getRawToken()
            gnu.expr.ModuleManager r6 = gnu.expr.ModuleManager.getInstance()
            r0 = r52
            r6.find(r0)
            gnu.expr.ModuleExp r8 = r52.getModule()
            java.util.Vector r7 = new java.util.Vector
            r7.<init>()
            java.lang.String r38 = gnu.expr.Compilation.mangleURI(r48)
            r0 = r51
            gnu.text.LineBufferedReader r6 = r0.port
            java.lang.String r6 = r6.getName()
            r0 = r52
            r1 = r44
            r2 = r43
            r0.setLine(r6, r1, r2)
            java.lang.String r6 = "at"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x05c5
        L_0x050a:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x051f
            java.lang.String r6 = "missing module location"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x051f:
            java.lang.String r16 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r16
            r0.<init>(r6, r9, r10)
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = gnu.expr.Compilation.mangleURI(r48)
            java.lang.StringBuilder r6 = r6.append(r9)
            r9 = 46
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r9 = gnu.xquery.lang.XQuery.makeClassName(r16)
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r4 = r6.toString()
            r0 = r16
            gnu.expr.ModuleInfo r5 = kawa.standard.require.lookupModuleFromSourcePath(r0, r8)
            if (r5 != 0) goto L_0x0572
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "malformed URL: "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r16
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r52
            r0.error(r6, r9)
        L_0x0572:
            r6 = 0
            r9 = r52
            kawa.standard.require.importDefinitions(r4, r5, r6, r7, r8, r9)
            r0 = r51
            int r6 = r0.nesting
            if (r6 == 0) goto L_0x05c3
            r6 = 1
        L_0x057f:
            r0 = r51
            int r36 = r0.skipSpace(r6)
            r6 = 44
            r0 = r36
            if (r0 == r6) goto L_0x050a
            r0 = r51
            r1 = r36
            r0.unread(r1)
            r51.parseSeparator()
        L_0x0595:
            r0 = r52
            java.util.Stack<java.lang.Object> r6 = r0.pendingImports
            if (r6 == 0) goto L_0x05b0
            r0 = r52
            java.util.Stack<java.lang.Object> r6 = r0.pendingImports
            int r6 = r6.size()
            if (r6 <= 0) goto L_0x05b0
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "module import forms a cycle"
            java.lang.String r10 = "XQST0073"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x05b0:
            int r6 = r7.size()
            gnu.expr.Expression[] r0 = new gnu.expr.Expression[r6]
            r31 = r0
            r0 = r31
            r7.toArray(r0)
            gnu.expr.Expression r27 = gnu.expr.BeginExp.canonicalize(r31)
            goto L_0x000e
        L_0x05c3:
            r6 = 0
            goto L_0x057f
        L_0x05c5:
            gnu.expr.ModuleManager r32 = gnu.expr.ModuleManager.getInstance()
            r34 = 0
            r0 = r32
            r1 = r38
            r0.loadPackageInfo(r1)     // Catch:{ ClassNotFoundException -> 0x0ba1, Throwable -> 0x060a }
        L_0x05d2:
            r29 = 0
        L_0x05d4:
            r0 = r32
            r1 = r29
            gnu.expr.ModuleInfo r5 = r0.getModule(r1)
            if (r5 != 0) goto L_0x0634
            if (r34 != 0) goto L_0x05fc
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "no module found for "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r48
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r51
            r0.error(r6, r9)
        L_0x05fc:
            r16 = 0
            r0 = r51
            int r6 = r0.curToken
            r9 = 59
            if (r6 == r9) goto L_0x0595
            r51.parseSeparator()
            goto L_0x0595
        L_0x060a:
            r26 = move-exception
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "error loading map for "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r48
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = " - "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r26
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            r0 = r51
            r0.error(r6, r9)
            goto L_0x05d2
        L_0x0634:
            java.lang.String r6 = r5.getNamespaceUri()
            r0 = r48
            boolean r6 = r0.equals(r6)
            if (r6 != 0) goto L_0x0643
        L_0x0640:
            int r29 = r29 + 1
            goto L_0x05d4
        L_0x0643:
            int r34 = r34 + 1
            java.lang.String r9 = r5.getClassName()
            r11 = 0
            r10 = r5
            r12 = r7
            r13 = r8
            r14 = r52
            kawa.standard.require.importDefinitions(r9, r10, r11, r12, r13, r14)
            goto L_0x0640
        L_0x0653:
            r0 = r51
            gnu.xquery.util.NamedCollator r6 = r0.defaultCollator
            if (r6 == 0) goto L_0x066a
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x066a
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate default collation declaration"
            java.lang.String r10 = "XQST0038"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x066a:
            java.lang.Object r49 = r51.parseURILiteral()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.Expression
            if (r6 == 0) goto L_0x067a
            gnu.expr.Expression r49 = (gnu.expr.Expression) r49
            r27 = r49
            goto L_0x000e
        L_0x067a:
            r19 = r49
            java.lang.String r19 = (java.lang.String) r19
            r0 = r51
            r1 = r19
            java.lang.String r19 = r0.resolveAgainstBaseUri(r1)     // Catch:{ Exception -> 0x0695 }
            gnu.xquery.util.NamedCollator r6 = gnu.xquery.util.NamedCollator.make(r19)     // Catch:{ Exception -> 0x0695 }
            r0 = r51
            r0.defaultCollator = r6     // Catch:{ Exception -> 0x0695 }
        L_0x068e:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0695:
            r26 = move-exception
            gnu.xquery.util.NamedCollator r6 = gnu.xquery.util.NamedCollator.codepointCollation
            r0 = r51
            r0.defaultCollator = r6
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "unknown collation '"
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r19
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r10 = "'"
            java.lang.StringBuilder r9 = r9.append(r10)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0038"
            r0 = r51
            r0.error(r6, r9, r10)
            goto L_0x068e
        L_0x06c1:
            r0 = r51
            int r6 = r0.curToken
            r9 = 79
            if (r6 != r9) goto L_0x0724
            r28 = 1
        L_0x06cb:
            if (r28 == 0) goto L_0x0727
            java.lang.String r39 = "(functions)"
        L_0x06cf:
            r0 = r51
            gnu.xml.NamespaceBinding r6 = r0.prologNamespaces
            gnu.xml.NamespaceBinding r9 = builtinNamespaces
            r0 = r39
            java.lang.String r6 = r6.resolve(r0, r9)
            if (r6 == 0) goto L_0x072a
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "duplicate default namespace declaration"
            java.lang.String r10 = "XQST0066"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x06e8:
            r51.getRawToken()
            java.lang.String r6 = "namespace"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0740
            r51.getRawToken()
        L_0x06f8:
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x0708
            r0 = r51
            int r6 = r0.curToken
            r9 = 76
            if (r6 != r9) goto L_0x0712
        L_0x0708:
            java.lang.String r6 = "extra '=' in default namespace declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            r51.getRawToken()
        L_0x0712:
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0764
            java.lang.String r6 = "missing namespace uri"
            r0 = r51
            gnu.expr.Expression r27 = r0.declError(r6)
            goto L_0x000e
        L_0x0724:
            r28 = 0
            goto L_0x06cb
        L_0x0727:
            java.lang.String r39 = gnu.xquery.lang.XQuery.DEFAULT_ELEMENT_PREFIX
            goto L_0x06cf
        L_0x072a:
            r0 = r51
            boolean r6 = r0.seenDeclaration
            if (r6 == 0) goto L_0x06e8
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x06e8
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "default namespace declared after function/variable/option"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x06e8
        L_0x0740:
            java.lang.String r33 = "expected 'namespace' keyword"
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x075c
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 == r9) goto L_0x075c
            r0 = r51
            r1 = r33
            gnu.expr.Expression r27 = r0.declError(r1)
            goto L_0x000e
        L_0x075c:
            r0 = r51
            r1 = r33
            r0.warnOldVersion(r1)
            goto L_0x06f8
        L_0x0764:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            java.lang.String r48 = r6.intern()
            if (r28 == 0) goto L_0x07a4
            r6 = 1
            gnu.mapping.Namespace[] r6 = new gnu.mapping.Namespace[r6]
            r0 = r51
            r0.functionNamespacePath = r6
            r0 = r51
            gnu.mapping.Namespace[] r6 = r0.functionNamespacePath
            r9 = 0
            gnu.mapping.Namespace r10 = gnu.mapping.Namespace.valueOf(r48)
            r6[r9] = r10
        L_0x078a:
            r0 = r51
            r1 = r39
            r2 = r48
            r0.pushNamespace(r1, r2)
            r6 = 0
            r0 = r51
            r1 = r39
            r2 = r48
            r0.checkAllowedNamespaceDeclaration(r1, r2, r6)
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x07a4:
            r0 = r48
            r1 = r51
            r1.defaultElementNamespace = r0
            goto L_0x078a
        L_0x07ab:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 402(0x192, float:5.63E-43)
            if (r6 != r9) goto L_0x07c0
            java.lang.String r6 = "obsolate '=' in boundary-space declaration"
            r0 = r51
            r0.warnOldVersion(r6)
            r51.getRawToken()
        L_0x07c0:
            r0 = r51
            boolean r6 = r0.boundarySpaceDeclarationSeen
            if (r6 == 0) goto L_0x07d5
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x07d5
            java.lang.String r6 = "duplicate 'declare boundary-space' seen"
            java.lang.String r9 = "XQST0068"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x07d5:
            r6 = 1
            r0 = r51
            r0.boundarySpaceDeclarationSeen = r6
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x07f0
            r6 = 1
            r0 = r51
            r0.boundarySpacePreserve = r6
        L_0x07e9:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x07f0:
            java.lang.String r6 = "strip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0800
            r6 = 0
            r0 = r51
            r0.boundarySpacePreserve = r6
            goto L_0x07e9
        L_0x0800:
            java.lang.String r6 = "skip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0817
            java.lang.String r6 = "update: declare boundary-space skip -> strip"
            r0 = r51
            r0.warnOldVersion(r6)
            r6 = 0
            r0 = r51
            r0.boundarySpacePreserve = r6
            goto L_0x07e9
        L_0x0817:
            java.lang.String r6 = "boundary-space declaration must be preserve or strip"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0821:
            r51.getRawToken()
            r0 = r51
            boolean r6 = r0.constructionModeDeclarationSeen
            if (r6 == 0) goto L_0x0839
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0839
            java.lang.String r6 = "duplicate 'declare construction' seen"
            java.lang.String r9 = "XQST0067"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0839:
            r6 = 1
            r0 = r51
            r0.constructionModeDeclarationSeen = r6
            java.lang.String r6 = "strip"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0854
            r6 = 1
            r0 = r51
            r0.constructionModeStrip = r6
        L_0x084d:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0854:
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0864
            r6 = 0
            r0 = r51
            r0.constructionModeStrip = r6
            goto L_0x084d
        L_0x0864:
            java.lang.String r6 = "construction declaration must be strip or preserve"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x086e:
            r51.getRawToken()
            r0 = r51
            boolean r6 = r0.copyNamespacesDeclarationSeen
            if (r6 == 0) goto L_0x0886
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0886
            java.lang.String r6 = "duplicate 'declare copy-namespaces' seen"
            java.lang.String r9 = "XQST0055"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0886:
            r6 = 1
            r0 = r51
            r0.copyNamespacesDeclarationSeen = r6
            java.lang.String r6 = "preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08b4
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 | 1
            r0 = r51
            r0.copyNamespacesMode = r6
        L_0x089f:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 44
            if (r6 == r9) goto L_0x08d3
            java.lang.String r6 = "missing ',' in copy-namespaces declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x08b4:
            java.lang.String r6 = "no-preserve"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08c9
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 & -2
            r0 = r51
            r0.copyNamespacesMode = r6
            goto L_0x089f
        L_0x08c9:
            java.lang.String r6 = "expected 'preserve' or 'no-preserve' after 'declare copy-namespaces'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x08d3:
            r51.getRawToken()
            java.lang.String r6 = "inherit"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x08f1
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 | 2
            r0 = r51
            r0.copyNamespacesMode = r6
        L_0x08ea:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x08f1:
            java.lang.String r6 = "no-inherit"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0906
            r0 = r51
            int r6 = r0.copyNamespacesMode
            r6 = r6 & -3
            r0 = r51
            r0.copyNamespacesMode = r6
            goto L_0x08ea
        L_0x0906:
            java.lang.String r6 = "expected 'inherit' or 'no-inherit' in copy-namespaces declaration"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0910:
            r51.getRawToken()
            java.lang.String r6 = "empty"
            r0 = r51
            boolean r41 = r0.match(r6)
            r0 = r51
            boolean r6 = r0.emptyOrderDeclarationSeen
            if (r6 == 0) goto L_0x0930
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0930
            java.lang.String r6 = "duplicate 'declare default empty order' seen"
            java.lang.String r9 = "XQST0069"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0930:
            r6 = 1
            r0 = r51
            r0.emptyOrderDeclarationSeen = r6
            if (r41 == 0) goto L_0x0951
            r51.getRawToken()
        L_0x093a:
            java.lang.String r6 = "greatest"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0959
            r6 = 71
            r0 = r51
            r0.defaultEmptyOrder = r6
        L_0x094a:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0951:
            java.lang.String r6 = "expected 'empty greatest' or 'empty least'"
            r0 = r51
            r0.syntaxError(r6)
            goto L_0x093a
        L_0x0959:
            java.lang.String r6 = "least"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x096a
            r6 = 76
            r0 = r51
            r0.defaultEmptyOrder = r6
            goto L_0x094a
        L_0x096a:
            java.lang.String r6 = "expected 'empty greatest' or 'empty least'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0974:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 81
            if (r6 == r9) goto L_0x0992
            java.lang.String r6 = "expected QName after 'declare option'"
            r0 = r51
            r0.syntaxError(r6)
        L_0x0986:
            r51.parseSeparator()
            r6 = 1
            r0 = r51
            r0.seenDeclaration = r6
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0992:
            java.lang.String r45 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r45
            r0.<init>(r6, r9, r10)
            gnu.text.SourceMessages r6 = r51.getMessages()
            r0 = r51
            gnu.text.LineBufferedReader r9 = r0.port
            java.lang.String r9 = r9.getName()
            r0 = r51
            int r10 = r0.curLine
            r0 = r51
            int r11 = r0.curColumn
            r6.setLine(r9, r10, r11)
            r6 = 0
            r0 = r51
            r1 = r45
            gnu.mapping.Symbol r46 = r0.namespaceResolve(r1, r6)
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x09ee
            java.lang.StringBuilder r6 = new java.lang.StringBuilder
            r6.<init>()
            java.lang.String r9 = "expected string literal after 'declare option "
            java.lang.StringBuilder r6 = r6.append(r9)
            r0 = r45
            java.lang.StringBuilder r6 = r6.append(r0)
            r9 = 39
            java.lang.StringBuilder r6 = r6.append(r9)
            java.lang.String r6 = r6.toString()
            r0 = r51
            r0.syntaxError(r6)
            goto L_0x0986
        L_0x09ee:
            java.lang.String r6 = new java.lang.String
            r0 = r51
            char[] r9 = r0.tokenBuffer
            r10 = 0
            r0 = r51
            int r11 = r0.tokenBufferLength
            r6.<init>(r9, r10, r11)
            r0 = r51
            r1 = r46
            r0.handleOption(r1, r6)
            goto L_0x0986
        L_0x0a04:
            r0 = r51
            boolean r6 = r0.orderingModeSeen
            if (r6 == 0) goto L_0x0a19
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0a19
            java.lang.String r6 = "duplicate 'declare ordering' seen"
            java.lang.String r9 = "XQST0065"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0a19:
            r6 = 1
            r0 = r51
            r0.orderingModeSeen = r6
            r51.getRawToken()
            java.lang.String r6 = "ordered"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0a37
            r6 = 0
            r0 = r51
            r0.orderingModeUnordered = r6
        L_0x0a30:
            r51.parseSeparator()
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0a37:
            java.lang.String r6 = "unordered"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0a47
            r6 = 1
            r0 = r51
            r0.orderingModeUnordered = r6
            goto L_0x0a30
        L_0x0a47:
            java.lang.String r6 = "ordering declaration must be ordered or unordered"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0a51:
            r0 = r51
            int r6 = r0.parseCount
            r9 = 1
            if (r6 == r9) goto L_0x0ac6
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "'xquery version' does not start module"
            r0 = r51
            r0.error(r6, r9)
        L_0x0a61:
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 != r9) goto L_0x0ad6
            java.lang.String r50 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r50
            r0.<init>(r6, r9, r10)
            java.lang.String r6 = "1.0"
            r0 = r50
            boolean r6 = r0.equals(r6)
            if (r6 != 0) goto L_0x0aa4
            r6 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r9 = new java.lang.StringBuilder
            r9.<init>()
            java.lang.String r10 = "unrecognized xquery version "
            java.lang.StringBuilder r9 = r9.append(r10)
            r0 = r50
            java.lang.StringBuilder r9 = r9.append(r0)
            java.lang.String r9 = r9.toString()
            java.lang.String r10 = "XQST0031"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x0aa4:
            r51.getRawToken()
            java.lang.String r6 = "encoding"
            r0 = r51
            boolean r6 = r0.match(r6)
            if (r6 == 0) goto L_0x0b54
            r51.getRawToken()
            r0 = r51
            int r6 = r0.curToken
            r9 = 34
            if (r6 == r9) goto L_0x0ae0
            java.lang.String r6 = "invalid encoding specification"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0ac6:
            r0 = r51
            int r6 = r0.commentCount
            if (r6 <= 0) goto L_0x0a61
            r6 = 119(0x77, float:1.67E-43)
            java.lang.String r9 = "comments should not precede 'xquery version'"
            r0 = r51
            r0.error(r6, r9)
            goto L_0x0a61
        L_0x0ad6:
            java.lang.String r6 = "missing version string after 'xquery version'"
            r0 = r51
            gnu.expr.Expression r27 = r0.syntaxError(r6)
            goto L_0x000e
        L_0x0ae0:
            java.lang.String r24 = new java.lang.String
            r0 = r51
            char[] r6 = r0.tokenBuffer
            r9 = 0
            r0 = r51
            int r10 = r0.tokenBufferLength
            r0 = r24
            r0.<init>(r6, r9, r10)
            r0 = r51
            int r0 = r0.tokenBufferLength
            r29 = r0
            if (r29 != 0) goto L_0x0b41
            r17 = 1
        L_0x0afa:
            int r29 = r29 + -1
            if (r29 < 0) goto L_0x0b44
            if (r17 != 0) goto L_0x0b44
            r0 = r51
            char[] r6 = r0.tokenBuffer
            char r18 = r6[r29]
            r6 = 65
            r0 = r18
            if (r0 < r6) goto L_0x0b12
            r6 = 90
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b12:
            r6 = 97
            r0 = r18
            if (r0 < r6) goto L_0x0b1e
            r6 = 122(0x7a, float:1.71E-43)
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b1e:
            if (r29 == 0) goto L_0x0b3e
            r6 = 48
            r0 = r18
            if (r0 < r6) goto L_0x0b2c
            r6 = 57
            r0 = r18
            if (r0 <= r6) goto L_0x0afa
        L_0x0b2c:
            r6 = 46
            r0 = r18
            if (r0 == r6) goto L_0x0afa
            r6 = 95
            r0 = r18
            if (r0 == r6) goto L_0x0afa
            r6 = 45
            r0 = r18
            if (r0 == r6) goto L_0x0afa
        L_0x0b3e:
            r17 = 1
            goto L_0x0afa
        L_0x0b41:
            r17 = 0
            goto L_0x0afa
        L_0x0b44:
            if (r17 == 0) goto L_0x0b51
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r9 = "invalid encoding name syntax"
            java.lang.String r10 = "XQST0087"
            r0 = r51
            r0.error(r6, r9, r10)
        L_0x0b51:
            r51.getRawToken()
        L_0x0b54:
            r0 = r51
            int r6 = r0.curToken
            r9 = 59
            if (r6 == r9) goto L_0x0b63
            java.lang.String r6 = "missing ';'"
            r0 = r51
            r0.syntaxError(r6)
        L_0x0b63:
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0b67:
            r0 = r51
            boolean r6 = r0.baseURIDeclarationSeen
            if (r6 == 0) goto L_0x0b7c
            r0 = r51
            boolean r6 = r0.interactive
            if (r6 != 0) goto L_0x0b7c
            java.lang.String r6 = "duplicate 'declare base-uri' seen"
            java.lang.String r9 = "XQST0032"
            r0 = r51
            r0.syntaxError(r6, r9)
        L_0x0b7c:
            r6 = 1
            r0 = r51
            r0.baseURIDeclarationSeen = r6
            java.lang.Object r49 = r51.parseURILiteral()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.Expression
            if (r6 == 0) goto L_0x0b91
            gnu.expr.Expression r49 = (gnu.expr.Expression) r49
            r27 = r49
            goto L_0x000e
        L_0x0b91:
            r51.parseSeparator()
            java.lang.String r49 = (java.lang.String) r49
            r0 = r51
            r1 = r49
            r0.setStaticBaseUri(r1)
            gnu.expr.QuoteExp r27 = gnu.expr.QuoteExp.voidExp
            goto L_0x000e
        L_0x0ba1:
            r6 = move-exception
            goto L_0x05d2
        */ throw new UnsupportedOperationException ( "Method not decompiled: gnu.xquery.lang.XQParser.parse(gnu.expr.Compilation):gnu.expr.Expression" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .