Source/sources/gnu/xquery/lang/XQParser.java
public gnu.expr.Expression parseFLWRInner(boolean r33) throws java.io.IOException, gnu.text.SyntaxException {
        /*
            r32 = this;
            if (r33 == 0) goto L_0x003a
            r28 = 102(0x66, float:1.43E-43)
        L_0x0004:
            r0 = r32
            r1 = r28
            char r20 = r0.pushNesting(r1)
            r28 = 36
            r0 = r28
            r1 = r32
            r1.curToken = r0
            gnu.expr.Declaration r12 = r32.parseVariableDeclaration()
            if (r12 != 0) goto L_0x003d
            java.lang.StringBuilder r28 = new java.lang.StringBuilder
            r28.<init>()
            java.lang.String r29 = "missing Variable - saw "
            java.lang.StringBuilder r28 = r28.append(r29)
            java.lang.String r29 = r32.tokenString()
            java.lang.StringBuilder r28 = r28.append(r29)
            java.lang.String r28 = r28.toString()
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
        L_0x0039:
            return r25
        L_0x003a:
            r28 = 108(0x6c, float:1.51E-43)
            goto L_0x0004
        L_0x003d:
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            if (r28 != 0) goto L_0x0164
            r28 = 8
            r0 = r28
            gnu.expr.Declaration[] r0 = new gnu.expr.Declaration[r0]
            r28 = r0
            r0 = r28
            r1 = r32
            r1.flworDecls = r0
        L_0x0053:
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            r0 = r32
            int r0 = r0.flworDeclsCount
            r29 = r0
            int r30 = r29 + 1
            r0 = r30
            r1 = r32
            r1.flworDeclsCount = r0
            r28[r29] = r12
            r32.getRawToken()
            gnu.expr.Expression r27 = r32.parseOptionalTypeDeclaration()
            r28 = 1
            r0 = r28
            gnu.expr.Expression[] r14 = new gnu.expr.Expression[r0]
            r18 = 0
            if (r33 == 0) goto L_0x01ce
            java.lang.String r28 = "at"
            r0 = r32
            r1 = r28
            boolean r21 = r0.match(r1)
            gnu.expr.LambdaExp r16 = new gnu.expr.LambdaExp
            if (r21 == 0) goto L_0x01ae
            r28 = 2
        L_0x008a:
            r0 = r16
            r1 = r28
            r0.<init>(r1)
            if (r21 == 0) goto L_0x00b6
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x00ab
            gnu.expr.Declaration r18 = r32.parseVariableDeclaration()
            r32.getRawToken()
        L_0x00ab:
            if (r18 != 0) goto L_0x00b6
            java.lang.String r28 = "missing Variable after 'at'"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
        L_0x00b6:
            r25 = r16
            java.lang.String r28 = "in"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x01b2
            r32.getRawToken()
        L_0x00c7:
            r28 = 0
            gnu.expr.Expression r29 = r32.parseExprSingle()
            r14[r28] = r29
            if (r27 == 0) goto L_0x00e3
            if (r33 != 0) goto L_0x00e3
            r28 = 0
            r29 = 0
            r29 = r14[r29]
            r0 = r29
            r1 = r27
            gnu.expr.ApplyExp r29 = gnu.expr.Compilation.makeCoercion(r0, r1)
            r14[r28] = r29
        L_0x00e3:
            r0 = r32
            r1 = r20
            r0.popNesting(r1)
            r0 = r32
            gnu.expr.Compilation r0 = r0.comp
            r28 = r0
            r0 = r28
            r1 = r25
            r0.push(r1)
            r0 = r25
            r0.addDeclaration(r12)
            if (r27 == 0) goto L_0x0103
            r0 = r27
            r12.setTypeExp(r0)
        L_0x0103:
            if (r33 == 0) goto L_0x0114
            r28 = 0
            r0 = r28
            r12.noteValue(r0)
            r28 = 262144(0x40000, double:1.295163E-318)
            r0 = r28
            r12.setFlag(r0)
        L_0x0114:
            if (r18 == 0) goto L_0x0139
            r0 = r25
            r1 = r18
            r0.addDeclaration(r1)
            gnu.bytecode.PrimType r28 = gnu.kawa.lispexpr.LangPrimType.intType
            r0 = r18
            r1 = r28
            r0.setType(r1)
            r28 = 0
            r0 = r18
            r1 = r28
            r0.noteValue(r1)
            r28 = 262144(0x40000, double:1.295163E-318)
            r0 = r18
            r1 = r28
            r0.setFlag(r1)
        L_0x0139:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 44
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x0253
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x0201
            java.lang.String r28 = "missing $NAME after ','"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x0164:
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r29 = r0
            r0 = r29
            int r0 = r0.length
            r29 = r0
            r0 = r28
            r1 = r29
            if (r0 < r1) goto L_0x0053
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            int r28 = r28 * 2
            r0 = r28
            gnu.expr.Declaration[] r0 = new gnu.expr.Declaration[r0]
            r26 = r0
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            r29 = 0
            r30 = 0
            r0 = r32
            int r0 = r0.flworDeclsCount
            r31 = r0
            r0 = r28
            r1 = r29
            r2 = r26
            r3 = r30
            r4 = r31
            java.lang.System.arraycopy(r0, r1, r2, r3, r4)
            r0 = r26
            r1 = r32
            r1.flworDecls = r0
            goto L_0x0053
        L_0x01ae:
            r28 = 1
            goto L_0x008a
        L_0x01b2:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 76
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x01c3
            r32.getRawToken()
        L_0x01c3:
            java.lang.String r28 = "missing 'in' in 'for' clause"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
            goto L_0x00c7
        L_0x01ce:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 76
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x01e8
            r32.getRawToken()
        L_0x01df:
            gnu.expr.LetExp r15 = new gnu.expr.LetExp
            r15.<init>(r14)
            r25 = r15
            goto L_0x00c7
        L_0x01e8:
            java.lang.String r28 = "in"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x01f7
            r32.getRawToken()
        L_0x01f7:
            java.lang.String r28 = "missing ':=' in 'let' clause"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
            goto L_0x01df
        L_0x0201:
            gnu.expr.Expression r7 = r32.parseFLWRInner(r33)
        L_0x0205:
            r0 = r32
            gnu.expr.Compilation r0 = r0.comp
            r28 = r0
            r0 = r28
            r1 = r25
            r0.pop(r1)
            if (r33 == 0) goto L_0x03c5
            r16 = r25
            gnu.expr.LambdaExp r16 = (gnu.expr.LambdaExp) r16
            r0 = r16
            r0.body = r7
            r28 = 2
            r0 = r28
            gnu.expr.Expression[] r6 = new gnu.expr.Expression[r0]
            r28 = 0
            r6[r28] = r25
            r28 = 1
            r29 = 0
            r29 = r14[r29]
            r6[r28] = r29
            gnu.expr.ApplyExp r25 = new gnu.expr.ApplyExp
            java.lang.String r29 = "gnu.kawa.functions.ValuesMap"
            r0 = r16
            int r0 = r0.min_args
            r28 = r0
            r30 = 1
            r0 = r28
            r1 = r30
            if (r0 != r1) goto L_0x03c1
            java.lang.String r28 = "valuesMap"
        L_0x0242:
            r0 = r29
            r1 = r28
            gnu.expr.Expression r28 = makeFunctionExp(r0, r1)
            r0 = r25
            r1 = r28
            r0.<init>(r1, r6)
            goto L_0x0039
        L_0x0253:
            java.lang.String r28 = "for"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x0288
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x027c
            java.lang.String r28 = "missing $NAME after 'for'"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x027c:
            r28 = 1
            r0 = r32
            r1 = r28
            gnu.expr.Expression r7 = r0.parseFLWRInner(r1)
            goto L_0x0205
        L_0x0288:
            java.lang.String r28 = "let"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x02bd
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x02b1
            java.lang.String r28 = "missing $NAME after 'let'"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x02b1:
            r28 = 0
            r0 = r32
            r1 = r28
            gnu.expr.Expression r7 = r0.parseFLWRInner(r1)
            goto L_0x0205
        L_0x02bd:
            r28 = 119(0x77, float:1.67E-43)
            r0 = r32
            r1 = r28
            char r19 = r0.pushNesting(r1)
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 196(0xc4, float:2.75E-43)
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x032e
            r32.getRawToken()
            gnu.expr.Expression r11 = r32.parseExprSingle()
        L_0x02dc:
            r0 = r32
            r1 = r19
            r0.popNesting(r1)
            java.lang.String r28 = "stable"
            r0 = r32
            r1 = r28
            boolean r24 = r0.match(r1)
            if (r24 == 0) goto L_0x02f2
            r32.getRawToken()
        L_0x02f2:
            java.lang.String r28 = "return"
            r0 = r32
            r1 = r28
            boolean r23 = r0.match(r1)
            java.lang.String r28 = "order"
            r0 = r32
            r1 = r28
            boolean r22 = r0.match(r1)
            if (r23 != 0) goto L_0x0341
            if (r22 != 0) goto L_0x0341
            java.lang.String r28 = "let"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 != 0) goto L_0x0341
            java.lang.String r28 = "for"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 != 0) goto L_0x0341
            java.lang.String r28 = "missing 'return' clause"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x032e:
            java.lang.String r28 = "where"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x033f
            gnu.expr.Expression r11 = r32.parseExprSingle()
            goto L_0x02dc
        L_0x033f:
            r11 = 0
            goto L_0x02dc
        L_0x0341:
            if (r22 != 0) goto L_0x034c
            java.lang.String r28 = "unexpected eof-of-file after 'return'"
            r0 = r32
            r1 = r28
            r0.peekNonSpace(r1)
        L_0x034c:
            int r28 = r32.getLineNumber()
            int r10 = r28 + 1
            int r28 = r32.getColumnNumber()
            int r9 = r28 + 1
            if (r23 == 0) goto L_0x035d
            r32.getRawToken()
        L_0x035d:
            if (r22 == 0) goto L_0x03bb
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            r0 = r32
            int r0 = r0.flworDeclsFirst
            r29 = r0
            int r17 = r28 - r29
            r0 = r17
            gnu.expr.Expression[] r6 = new gnu.expr.Expression[r0]
            r13 = 0
        L_0x0372:
            r0 = r17
            if (r13 >= r0) goto L_0x0390
            gnu.expr.ReferenceExp r28 = new gnu.expr.ReferenceExp
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r29 = r0
            r0 = r32
            int r0 = r0.flworDeclsFirst
            r30 = r0
            int r30 = r30 + r13
            r29 = r29[r30]
            r28.<init>(r29)
            r6[r13] = r28
            int r13 = r13 + 1
            goto L_0x0372
        L_0x0390:
            gnu.expr.ApplyExp r7 = new gnu.expr.ApplyExp
            gnu.expr.PrimProcedure r28 = new gnu.expr.PrimProcedure
            java.lang.String r29 = "gnu.xquery.util.OrderedMap"
            java.lang.String r30 = "makeTuple$V"
            r31 = 1
            r28.<init>(r29, r30, r31)
            r0 = r28
            r7.<init>(r0, r6)
            r8 = r7
        L_0x03a3:
            if (r11 == 0) goto L_0x03d0
            gnu.expr.IfExp r7 = new gnu.expr.IfExp
            gnu.expr.Expression r28 = booleanValue(r11)
            gnu.expr.QuoteExp r29 = gnu.expr.QuoteExp.voidExp
            r0 = r28
            r1 = r29
            r7.<init>(r0, r8, r1)
        L_0x03b4:
            r0 = r32
            r0.maybeSetLine(r7, r10, r9)
            goto L_0x0205
        L_0x03bb:
            gnu.expr.Expression r7 = r32.parseExprSingle()
            r8 = r7
            goto L_0x03a3
        L_0x03c1:
            java.lang.String r28 = "valuesMapWithPos"
            goto L_0x0242
        L_0x03c5:
            r28 = r25
            gnu.expr.LetExp r28 = (gnu.expr.LetExp) r28
            r0 = r28
            r0.setBody(r7)
            goto L_0x0039
        L_0x03d0:
            r7 = r8
            goto L_0x03b4
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.xquery.lang.XQParser.parseFLWRInner(boolean):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 parseFLWRInner(boolean r33) throws java.io.IOException, gnu.text.SyntaxException {
        /*
            r32 = this;
            if (r33 == 0) goto L_0x003a
            r28 = 102(0x66, float:1.43E-43)
        L_0x0004:
            r0 = r32
            r1 = r28
            char r20 = r0.pushNesting(r1)
            r28 = 36
            r0 = r28
            r1 = r32
            r1.curToken = r0
            gnu.expr.Declaration r12 = r32.parseVariableDeclaration()
            if (r12 != 0) goto L_0x003d
            java.lang.StringBuilder r28 = new java.lang.StringBuilder
            r28.<init>()
            java.lang.String r29 = "missing Variable - saw "
            java.lang.StringBuilder r28 = r28.append(r29)
            java.lang.String r29 = r32.tokenString()
            java.lang.StringBuilder r28 = r28.append(r29)
            java.lang.String r28 = r28.toString()
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
        L_0x0039:
            return r25
        L_0x003a:
            r28 = 108(0x6c, float:1.51E-43)
            goto L_0x0004
        L_0x003d:
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            if (r28 != 0) goto L_0x0164
            r28 = 8
            r0 = r28
            gnu.expr.Declaration[] r0 = new gnu.expr.Declaration[r0]
            r28 = r0
            r0 = r28
            r1 = r32
            r1.flworDecls = r0
        L_0x0053:
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            r0 = r32
            int r0 = r0.flworDeclsCount
            r29 = r0
            int r30 = r29 + 1
            r0 = r30
            r1 = r32
            r1.flworDeclsCount = r0
            r28[r29] = r12
            r32.getRawToken()
            gnu.expr.Expression r27 = r32.parseOptionalTypeDeclaration()
            r28 = 1
            r0 = r28
            gnu.expr.Expression[] r14 = new gnu.expr.Expression[r0]
            r18 = 0
            if (r33 == 0) goto L_0x01ce
            java.lang.String r28 = "at"
            r0 = r32
            r1 = r28
            boolean r21 = r0.match(r1)
            gnu.expr.LambdaExp r16 = new gnu.expr.LambdaExp
            if (r21 == 0) goto L_0x01ae
            r28 = 2
        L_0x008a:
            r0 = r16
            r1 = r28
            r0.<init>(r1)
            if (r21 == 0) goto L_0x00b6
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x00ab
            gnu.expr.Declaration r18 = r32.parseVariableDeclaration()
            r32.getRawToken()
        L_0x00ab:
            if (r18 != 0) goto L_0x00b6
            java.lang.String r28 = "missing Variable after 'at'"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
        L_0x00b6:
            r25 = r16
            java.lang.String r28 = "in"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x01b2
            r32.getRawToken()
        L_0x00c7:
            r28 = 0
            gnu.expr.Expression r29 = r32.parseExprSingle()
            r14[r28] = r29
            if (r27 == 0) goto L_0x00e3
            if (r33 != 0) goto L_0x00e3
            r28 = 0
            r29 = 0
            r29 = r14[r29]
            r0 = r29
            r1 = r27
            gnu.expr.ApplyExp r29 = gnu.expr.Compilation.makeCoercion(r0, r1)
            r14[r28] = r29
        L_0x00e3:
            r0 = r32
            r1 = r20
            r0.popNesting(r1)
            r0 = r32
            gnu.expr.Compilation r0 = r0.comp
            r28 = r0
            r0 = r28
            r1 = r25
            r0.push(r1)
            r0 = r25
            r0.addDeclaration(r12)
            if (r27 == 0) goto L_0x0103
            r0 = r27
            r12.setTypeExp(r0)
        L_0x0103:
            if (r33 == 0) goto L_0x0114
            r28 = 0
            r0 = r28
            r12.noteValue(r0)
            r28 = 262144(0x40000, double:1.295163E-318)
            r0 = r28
            r12.setFlag(r0)
        L_0x0114:
            if (r18 == 0) goto L_0x0139
            r0 = r25
            r1 = r18
            r0.addDeclaration(r1)
            gnu.bytecode.PrimType r28 = gnu.kawa.lispexpr.LangPrimType.intType
            r0 = r18
            r1 = r28
            r0.setType(r1)
            r28 = 0
            r0 = r18
            r1 = r28
            r0.noteValue(r1)
            r28 = 262144(0x40000, double:1.295163E-318)
            r0 = r18
            r1 = r28
            r0.setFlag(r1)
        L_0x0139:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 44
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x0253
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x0201
            java.lang.String r28 = "missing $NAME after ','"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x0164:
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r29 = r0
            r0 = r29
            int r0 = r0.length
            r29 = r0
            r0 = r28
            r1 = r29
            if (r0 < r1) goto L_0x0053
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            int r28 = r28 * 2
            r0 = r28
            gnu.expr.Declaration[] r0 = new gnu.expr.Declaration[r0]
            r26 = r0
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            r29 = 0
            r30 = 0
            r0 = r32
            int r0 = r0.flworDeclsCount
            r31 = r0
            r0 = r28
            r1 = r29
            r2 = r26
            r3 = r30
            r4 = r31
            java.lang.System.arraycopy(r0, r1, r2, r3, r4)
            r0 = r26
            r1 = r32
            r1.flworDecls = r0
            goto L_0x0053
        L_0x01ae:
            r28 = 1
            goto L_0x008a
        L_0x01b2:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 76
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x01c3
            r32.getRawToken()
        L_0x01c3:
            java.lang.String r28 = "missing 'in' in 'for' clause"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
            goto L_0x00c7
        L_0x01ce:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 76
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x01e8
            r32.getRawToken()
        L_0x01df:
            gnu.expr.LetExp r15 = new gnu.expr.LetExp
            r15.<init>(r14)
            r25 = r15
            goto L_0x00c7
        L_0x01e8:
            java.lang.String r28 = "in"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x01f7
            r32.getRawToken()
        L_0x01f7:
            java.lang.String r28 = "missing ':=' in 'let' clause"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
            goto L_0x01df
        L_0x0201:
            gnu.expr.Expression r7 = r32.parseFLWRInner(r33)
        L_0x0205:
            r0 = r32
            gnu.expr.Compilation r0 = r0.comp
            r28 = r0
            r0 = r28
            r1 = r25
            r0.pop(r1)
            if (r33 == 0) goto L_0x03c5
            r16 = r25
            gnu.expr.LambdaExp r16 = (gnu.expr.LambdaExp) r16
            r0 = r16
            r0.body = r7
            r28 = 2
            r0 = r28
            gnu.expr.Expression[] r6 = new gnu.expr.Expression[r0]
            r28 = 0
            r6[r28] = r25
            r28 = 1
            r29 = 0
            r29 = r14[r29]
            r6[r28] = r29
            gnu.expr.ApplyExp r25 = new gnu.expr.ApplyExp
            java.lang.String r29 = "gnu.kawa.functions.ValuesMap"
            r0 = r16
            int r0 = r0.min_args
            r28 = r0
            r30 = 1
            r0 = r28
            r1 = r30
            if (r0 != r1) goto L_0x03c1
            java.lang.String r28 = "valuesMap"
        L_0x0242:
            r0 = r29
            r1 = r28
            gnu.expr.Expression r28 = makeFunctionExp(r0, r1)
            r0 = r25
            r1 = r28
            r0.<init>(r1, r6)
            goto L_0x0039
        L_0x0253:
            java.lang.String r28 = "for"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x0288
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x027c
            java.lang.String r28 = "missing $NAME after 'for'"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x027c:
            r28 = 1
            r0 = r32
            r1 = r28
            gnu.expr.Expression r7 = r0.parseFLWRInner(r1)
            goto L_0x0205
        L_0x0288:
            java.lang.String r28 = "let"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x02bd
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x02b1
            java.lang.String r28 = "missing $NAME after 'let'"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x02b1:
            r28 = 0
            r0 = r32
            r1 = r28
            gnu.expr.Expression r7 = r0.parseFLWRInner(r1)
            goto L_0x0205
        L_0x02bd:
            r28 = 119(0x77, float:1.67E-43)
            r0 = r32
            r1 = r28
            char r19 = r0.pushNesting(r1)
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 196(0xc4, float:2.75E-43)
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x032e
            r32.getRawToken()
            gnu.expr.Expression r11 = r32.parseExprSingle()
        L_0x02dc:
            r0 = r32
            r1 = r19
            r0.popNesting(r1)
            java.lang.String r28 = "stable"
            r0 = r32
            r1 = r28
            boolean r24 = r0.match(r1)
            if (r24 == 0) goto L_0x02f2
            r32.getRawToken()
        L_0x02f2:
            java.lang.String r28 = "return"
            r0 = r32
            r1 = r28
            boolean r23 = r0.match(r1)
            java.lang.String r28 = "order"
            r0 = r32
            r1 = r28
            boolean r22 = r0.match(r1)
            if (r23 != 0) goto L_0x0341
            if (r22 != 0) goto L_0x0341
            java.lang.String r28 = "let"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 != 0) goto L_0x0341
            java.lang.String r28 = "for"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 != 0) goto L_0x0341
            java.lang.String r28 = "missing 'return' clause"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x032e:
            java.lang.String r28 = "where"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x033f
            gnu.expr.Expression r11 = r32.parseExprSingle()
            goto L_0x02dc
        L_0x033f:
            r11 = 0
            goto L_0x02dc
        L_0x0341:
            if (r22 != 0) goto L_0x034c
            java.lang.String r28 = "unexpected eof-of-file after 'return'"
            r0 = r32
            r1 = r28
            r0.peekNonSpace(r1)
        L_0x034c:
            int r28 = r32.getLineNumber()
            int r10 = r28 + 1
            int r28 = r32.getColumnNumber()
            int r9 = r28 + 1
            if (r23 == 0) goto L_0x035d
            r32.getRawToken()
        L_0x035d:
            if (r22 == 0) goto L_0x03bb
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            r0 = r32
            int r0 = r0.flworDeclsFirst
            r29 = r0
            int r17 = r28 - r29
            r0 = r17
            gnu.expr.Expression[] r6 = new gnu.expr.Expression[r0]
            r13 = 0
        L_0x0372:
            r0 = r17
            if (r13 >= r0) goto L_0x0390
            gnu.expr.ReferenceExp r28 = new gnu.expr.ReferenceExp
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r29 = r0
            r0 = r32
            int r0 = r0.flworDeclsFirst
            r30 = r0
            int r30 = r30 + r13
            r29 = r29[r30]
            r28.<init>(r29)
            r6[r13] = r28
            int r13 = r13 + 1
            goto L_0x0372
        L_0x0390:
            gnu.expr.ApplyExp r7 = new gnu.expr.ApplyExp
            gnu.expr.PrimProcedure r28 = new gnu.expr.PrimProcedure
            java.lang.String r29 = "gnu.xquery.util.OrderedMap"
            java.lang.String r30 = "makeTuple$V"
            r31 = 1
            r28.<init>(r29, r30, r31)
            r0 = r28
            r7.<init>(r0, r6)
            r8 = r7
        L_0x03a3:
            if (r11 == 0) goto L_0x03d0
            gnu.expr.IfExp r7 = new gnu.expr.IfExp
            gnu.expr.Expression r28 = booleanValue(r11)
            gnu.expr.QuoteExp r29 = gnu.expr.QuoteExp.voidExp
            r0 = r28
            r1 = r29
            r7.<init>(r0, r8, r1)
        L_0x03b4:
            r0 = r32
            r0.maybeSetLine(r7, r10, r9)
            goto L_0x0205
        L_0x03bb:
            gnu.expr.Expression r7 = r32.parseExprSingle()
            r8 = r7
            goto L_0x03a3
        L_0x03c1:
            java.lang.String r28 = "valuesMapWithPos"
            goto L_0x0242
        L_0x03c5:
            r28 = r25
            gnu.expr.LetExp r28 = (gnu.expr.LetExp) r28
            r0 = r28
            r0.setBody(r7)
            goto L_0x0039
        L_0x03d0:
            r7 = r8
            goto L_0x03b4
        */
        throw new UnsupportedOperationException("Method not decompiled: gnu.xquery.lang.XQParser.parseFLWRInner(boolean):gnu.expr.Expression");
    }
public gnu . expr . Expression parseFLWRInner ( boolean r33 ) throws java . io . IOException , gnu . text . SyntaxException { /*
            r32 = this;
            if (r33 == 0) goto L_0x003a
            r28 = 102(0x66, float:1.43E-43)
        L_0x0004:
            r0 = r32
            r1 = r28
            char r20 = r0.pushNesting(r1)
            r28 = 36
            r0 = r28
            r1 = r32
            r1.curToken = r0
            gnu.expr.Declaration r12 = r32.parseVariableDeclaration()
            if (r12 != 0) goto L_0x003d
            java.lang.StringBuilder r28 = new java.lang.StringBuilder
            r28.<init>()
            java.lang.String r29 = "missing Variable - saw "
            java.lang.StringBuilder r28 = r28.append(r29)
            java.lang.String r29 = r32.tokenString()
            java.lang.StringBuilder r28 = r28.append(r29)
            java.lang.String r28 = r28.toString()
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
        L_0x0039:
            return r25
        L_0x003a:
            r28 = 108(0x6c, float:1.51E-43)
            goto L_0x0004
        L_0x003d:
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            if (r28 != 0) goto L_0x0164
            r28 = 8
            r0 = r28
            gnu.expr.Declaration[] r0 = new gnu.expr.Declaration[r0]
            r28 = r0
            r0 = r28
            r1 = r32
            r1.flworDecls = r0
        L_0x0053:
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            r0 = r32
            int r0 = r0.flworDeclsCount
            r29 = r0
            int r30 = r29 + 1
            r0 = r30
            r1 = r32
            r1.flworDeclsCount = r0
            r28[r29] = r12
            r32.getRawToken()
            gnu.expr.Expression r27 = r32.parseOptionalTypeDeclaration()
            r28 = 1
            r0 = r28
            gnu.expr.Expression[] r14 = new gnu.expr.Expression[r0]
            r18 = 0
            if (r33 == 0) goto L_0x01ce
            java.lang.String r28 = "at"
            r0 = r32
            r1 = r28
            boolean r21 = r0.match(r1)
            gnu.expr.LambdaExp r16 = new gnu.expr.LambdaExp
            if (r21 == 0) goto L_0x01ae
            r28 = 2
        L_0x008a:
            r0 = r16
            r1 = r28
            r0.<init>(r1)
            if (r21 == 0) goto L_0x00b6
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x00ab
            gnu.expr.Declaration r18 = r32.parseVariableDeclaration()
            r32.getRawToken()
        L_0x00ab:
            if (r18 != 0) goto L_0x00b6
            java.lang.String r28 = "missing Variable after 'at'"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
        L_0x00b6:
            r25 = r16
            java.lang.String r28 = "in"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x01b2
            r32.getRawToken()
        L_0x00c7:
            r28 = 0
            gnu.expr.Expression r29 = r32.parseExprSingle()
            r14[r28] = r29
            if (r27 == 0) goto L_0x00e3
            if (r33 != 0) goto L_0x00e3
            r28 = 0
            r29 = 0
            r29 = r14[r29]
            r0 = r29
            r1 = r27
            gnu.expr.ApplyExp r29 = gnu.expr.Compilation.makeCoercion(r0, r1)
            r14[r28] = r29
        L_0x00e3:
            r0 = r32
            r1 = r20
            r0.popNesting(r1)
            r0 = r32
            gnu.expr.Compilation r0 = r0.comp
            r28 = r0
            r0 = r28
            r1 = r25
            r0.push(r1)
            r0 = r25
            r0.addDeclaration(r12)
            if (r27 == 0) goto L_0x0103
            r0 = r27
            r12.setTypeExp(r0)
        L_0x0103:
            if (r33 == 0) goto L_0x0114
            r28 = 0
            r0 = r28
            r12.noteValue(r0)
            r28 = 262144(0x40000, double:1.295163E-318)
            r0 = r28
            r12.setFlag(r0)
        L_0x0114:
            if (r18 == 0) goto L_0x0139
            r0 = r25
            r1 = r18
            r0.addDeclaration(r1)
            gnu.bytecode.PrimType r28 = gnu.kawa.lispexpr.LangPrimType.intType
            r0 = r18
            r1 = r28
            r0.setType(r1)
            r28 = 0
            r0 = r18
            r1 = r28
            r0.noteValue(r1)
            r28 = 262144(0x40000, double:1.295163E-318)
            r0 = r18
            r1 = r28
            r0.setFlag(r1)
        L_0x0139:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 44
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x0253
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x0201
            java.lang.String r28 = "missing $NAME after ','"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x0164:
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r29 = r0
            r0 = r29
            int r0 = r0.length
            r29 = r0
            r0 = r28
            r1 = r29
            if (r0 < r1) goto L_0x0053
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            int r28 = r28 * 2
            r0 = r28
            gnu.expr.Declaration[] r0 = new gnu.expr.Declaration[r0]
            r26 = r0
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r28 = r0
            r29 = 0
            r30 = 0
            r0 = r32
            int r0 = r0.flworDeclsCount
            r31 = r0
            r0 = r28
            r1 = r29
            r2 = r26
            r3 = r30
            r4 = r31
            java.lang.System.arraycopy(r0, r1, r2, r3, r4)
            r0 = r26
            r1 = r32
            r1.flworDecls = r0
            goto L_0x0053
        L_0x01ae:
            r28 = 1
            goto L_0x008a
        L_0x01b2:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 76
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x01c3
            r32.getRawToken()
        L_0x01c3:
            java.lang.String r28 = "missing 'in' in 'for' clause"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
            goto L_0x00c7
        L_0x01ce:
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 76
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x01e8
            r32.getRawToken()
        L_0x01df:
            gnu.expr.LetExp r15 = new gnu.expr.LetExp
            r15.<init>(r14)
            r25 = r15
            goto L_0x00c7
        L_0x01e8:
            java.lang.String r28 = "in"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x01f7
            r32.getRawToken()
        L_0x01f7:
            java.lang.String r28 = "missing ':=' in 'let' clause"
            r0 = r32
            r1 = r28
            r0.syntaxError(r1)
            goto L_0x01df
        L_0x0201:
            gnu.expr.Expression r7 = r32.parseFLWRInner(r33)
        L_0x0205:
            r0 = r32
            gnu.expr.Compilation r0 = r0.comp
            r28 = r0
            r0 = r28
            r1 = r25
            r0.pop(r1)
            if (r33 == 0) goto L_0x03c5
            r16 = r25
            gnu.expr.LambdaExp r16 = (gnu.expr.LambdaExp) r16
            r0 = r16
            r0.body = r7
            r28 = 2
            r0 = r28
            gnu.expr.Expression[] r6 = new gnu.expr.Expression[r0]
            r28 = 0
            r6[r28] = r25
            r28 = 1
            r29 = 0
            r29 = r14[r29]
            r6[r28] = r29
            gnu.expr.ApplyExp r25 = new gnu.expr.ApplyExp
            java.lang.String r29 = "gnu.kawa.functions.ValuesMap"
            r0 = r16
            int r0 = r0.min_args
            r28 = r0
            r30 = 1
            r0 = r28
            r1 = r30
            if (r0 != r1) goto L_0x03c1
            java.lang.String r28 = "valuesMap"
        L_0x0242:
            r0 = r29
            r1 = r28
            gnu.expr.Expression r28 = makeFunctionExp(r0, r1)
            r0 = r25
            r1 = r28
            r0.<init>(r1, r6)
            goto L_0x0039
        L_0x0253:
            java.lang.String r28 = "for"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x0288
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x027c
            java.lang.String r28 = "missing $NAME after 'for'"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x027c:
            r28 = 1
            r0 = r32
            r1 = r28
            gnu.expr.Expression r7 = r0.parseFLWRInner(r1)
            goto L_0x0205
        L_0x0288:
            java.lang.String r28 = "let"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x02bd
            r32.getRawToken()
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 36
            r0 = r28
            r1 = r29
            if (r0 == r1) goto L_0x02b1
            java.lang.String r28 = "missing $NAME after 'let'"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x02b1:
            r28 = 0
            r0 = r32
            r1 = r28
            gnu.expr.Expression r7 = r0.parseFLWRInner(r1)
            goto L_0x0205
        L_0x02bd:
            r28 = 119(0x77, float:1.67E-43)
            r0 = r32
            r1 = r28
            char r19 = r0.pushNesting(r1)
            r0 = r32
            int r0 = r0.curToken
            r28 = r0
            r29 = 196(0xc4, float:2.75E-43)
            r0 = r28
            r1 = r29
            if (r0 != r1) goto L_0x032e
            r32.getRawToken()
            gnu.expr.Expression r11 = r32.parseExprSingle()
        L_0x02dc:
            r0 = r32
            r1 = r19
            r0.popNesting(r1)
            java.lang.String r28 = "stable"
            r0 = r32
            r1 = r28
            boolean r24 = r0.match(r1)
            if (r24 == 0) goto L_0x02f2
            r32.getRawToken()
        L_0x02f2:
            java.lang.String r28 = "return"
            r0 = r32
            r1 = r28
            boolean r23 = r0.match(r1)
            java.lang.String r28 = "order"
            r0 = r32
            r1 = r28
            boolean r22 = r0.match(r1)
            if (r23 != 0) goto L_0x0341
            if (r22 != 0) goto L_0x0341
            java.lang.String r28 = "let"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 != 0) goto L_0x0341
            java.lang.String r28 = "for"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 != 0) goto L_0x0341
            java.lang.String r28 = "missing 'return' clause"
            r0 = r32
            r1 = r28
            gnu.expr.Expression r25 = r0.syntaxError(r1)
            goto L_0x0039
        L_0x032e:
            java.lang.String r28 = "where"
            r0 = r32
            r1 = r28
            boolean r28 = r0.match(r1)
            if (r28 == 0) goto L_0x033f
            gnu.expr.Expression r11 = r32.parseExprSingle()
            goto L_0x02dc
        L_0x033f:
            r11 = 0
            goto L_0x02dc
        L_0x0341:
            if (r22 != 0) goto L_0x034c
            java.lang.String r28 = "unexpected eof-of-file after 'return'"
            r0 = r32
            r1 = r28
            r0.peekNonSpace(r1)
        L_0x034c:
            int r28 = r32.getLineNumber()
            int r10 = r28 + 1
            int r28 = r32.getColumnNumber()
            int r9 = r28 + 1
            if (r23 == 0) goto L_0x035d
            r32.getRawToken()
        L_0x035d:
            if (r22 == 0) goto L_0x03bb
            r0 = r32
            int r0 = r0.flworDeclsCount
            r28 = r0
            r0 = r32
            int r0 = r0.flworDeclsFirst
            r29 = r0
            int r17 = r28 - r29
            r0 = r17
            gnu.expr.Expression[] r6 = new gnu.expr.Expression[r0]
            r13 = 0
        L_0x0372:
            r0 = r17
            if (r13 >= r0) goto L_0x0390
            gnu.expr.ReferenceExp r28 = new gnu.expr.ReferenceExp
            r0 = r32
            gnu.expr.Declaration[] r0 = r0.flworDecls
            r29 = r0
            r0 = r32
            int r0 = r0.flworDeclsFirst
            r30 = r0
            int r30 = r30 + r13
            r29 = r29[r30]
            r28.<init>(r29)
            r6[r13] = r28
            int r13 = r13 + 1
            goto L_0x0372
        L_0x0390:
            gnu.expr.ApplyExp r7 = new gnu.expr.ApplyExp
            gnu.expr.PrimProcedure r28 = new gnu.expr.PrimProcedure
            java.lang.String r29 = "gnu.xquery.util.OrderedMap"
            java.lang.String r30 = "makeTuple$V"
            r31 = 1
            r28.<init>(r29, r30, r31)
            r0 = r28
            r7.<init>(r0, r6)
            r8 = r7
        L_0x03a3:
            if (r11 == 0) goto L_0x03d0
            gnu.expr.IfExp r7 = new gnu.expr.IfExp
            gnu.expr.Expression r28 = booleanValue(r11)
            gnu.expr.QuoteExp r29 = gnu.expr.QuoteExp.voidExp
            r0 = r28
            r1 = r29
            r7.<init>(r0, r8, r1)
        L_0x03b4:
            r0 = r32
            r0.maybeSetLine(r7, r10, r9)
            goto L_0x0205
        L_0x03bb:
            gnu.expr.Expression r7 = r32.parseExprSingle()
            r8 = r7
            goto L_0x03a3
        L_0x03c1:
            java.lang.String r28 = "valuesMapWithPos"
            goto L_0x0242
        L_0x03c5:
            r28 = r25
            gnu.expr.LetExp r28 = (gnu.expr.LetExp) r28
            r0 = r28
            r0.setBody(r7)
            goto L_0x0039
        L_0x03d0:
            r7 = r8
            goto L_0x03b4
        */ throw new UnsupportedOperationException ( "Method not decompiled: gnu.xquery.lang.XQParser.parseFLWRInner(boolean):gnu.expr.Expression" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .