Source/sources/kawa/lang/Quote.java
public java.lang.Object expand_pair(gnu.lists.Pair r39, int r40, kawa.lang.SyntaxForm r41, java.lang.Object r42, kawa.lang.Translator r43) {
        /*
            r38 = this;
            r25 = r39
        L_0x0002:
            r30 = r25
            boolean r3 = r38.expandColonForms()
            if (r3 == 0) goto L_0x0129
            r0 = r25
            r1 = r39
            if (r0 != r1) goto L_0x0129
            java.lang.Object r3 = r25.getCar()
            gnu.mapping.Symbol r5 = gnu.kawa.lispexpr.LispLanguage.lookup_sym
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x0129
            java.lang.Object r3 = r25.getCdr()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r23 = r25.getCdr()
            gnu.lists.Pair r23 = (gnu.lists.Pair) r23
            r0 = r23
            boolean r3 = r0 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r24 = r23.getCdr()
            gnu.lists.Pair r24 = (gnu.lists.Pair) r24
            r0 = r24
            boolean r3 = r0 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r3 = r24.getCdr()
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            if (r3 != r5) goto L_0x0129
            r3 = 0
            r0 = r43
            r1 = r23
            gnu.expr.Expression r28 = r0.rewrite_car(r1, r3)
            r3 = 0
            r0 = r43
            r1 = r24
            gnu.expr.Expression r29 = r0.rewrite_car(r1, r3)
            r0 = r43
            r1 = r28
            gnu.mapping.Namespace r20 = r0.namespaceResolvePrefix(r1)
            r0 = r43
            r1 = r20
            r2 = r29
            gnu.mapping.Symbol r35 = r0.namespaceResolve(r1, r2)
            if (r35 == 0) goto L_0x0078
            r13 = r35
            r4 = r30
            r3 = r13
        L_0x0073:
            r0 = r39
            if (r0 != r4) goto L_0x0327
        L_0x0077:
            return r3
        L_0x0078:
            if (r20 == 0) goto L_0x009e
            r3 = 1
            r0 = r40
            if (r0 != r3) goto L_0x009e
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            gnu.bytecode.ClassType r3 = quoteType
            java.lang.String r5 = "makeSymbol"
            r6 = 2
            gnu.bytecode.Method r3 = r3.getDeclaredMethod(r5, r6)
            r5 = 2
            gnu.expr.Expression[] r5 = new gnu.expr.Expression[r5]
            r6 = 0
            gnu.expr.QuoteExp r7 = gnu.expr.QuoteExp.getInstance(r20)
            r5[r6] = r7
            r6 = 1
            r5[r6] = r29
            r13.<init>(r3, r5)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x009e:
            r0 = r28
            boolean r3 = r0 instanceof gnu.expr.ReferenceExp
            if (r3 == 0) goto L_0x00dd
            r0 = r29
            boolean r3 = r0 instanceof gnu.expr.QuoteExp
            if (r3 == 0) goto L_0x00dd
            gnu.mapping.Environment r3 = r43.getGlobalEnvironment()
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            gnu.expr.ReferenceExp r28 = (gnu.expr.ReferenceExp) r28
            java.lang.String r6 = r28.getName()
            java.lang.StringBuilder r5 = r5.append(r6)
            r6 = 58
            java.lang.StringBuilder r5 = r5.append(r6)
            gnu.expr.QuoteExp r29 = (gnu.expr.QuoteExp) r29
            java.lang.Object r6 = r29.getValue()
            java.lang.String r6 = r6.toString()
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r5 = r5.toString()
            gnu.mapping.Symbol r13 = r3.getSymbol(r5)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x00dd:
            java.lang.String r14 = gnu.kawa.functions.CompileNamedPart.combineName(r28, r29)
            if (r14 == 0) goto L_0x00ef
            gnu.mapping.Environment r3 = r43.getGlobalEnvironment()
            gnu.mapping.Symbol r13 = r3.getSymbol(r14)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x00ef:
            r0 = r43
            r1 = r25
            java.lang.Object r32 = r0.pushPositionOf(r1)
            r3 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            java.lang.String r6 = "'"
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.Object r6 = r23.getCar()
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r6 = "' is not a valid prefix"
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r5 = r5.toString()
            r0 = r43
            r0.error(r3, r5)
            r0 = r43
            r1 = r32
            r0.popPositionOf(r1)
            r13 = r35
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x0129:
            if (r40 >= 0) goto L_0x014b
        L_0x012b:
            r3 = 1
            r0 = r40
            if (r0 != r3) goto L_0x02a6
            java.lang.Object r3 = r25.getCar()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x02a6
            java.lang.Object r15 = r25.getCar()
            r34 = r41
        L_0x013e:
            boolean r3 = r15 instanceof kawa.lang.SyntaxForm
            if (r3 == 0) goto L_0x01f1
            r34 = r15
            kawa.lang.SyntaxForm r34 = (kawa.lang.SyntaxForm) r34
            java.lang.Object r15 = r34.getDatum()
            goto L_0x013e
        L_0x014b:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "quasiquote"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x015e
            int r40 = r40 + 1
            goto L_0x012b
        L_0x015e:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "unquote"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x01bc
            int r40 = r40 + -1
            java.lang.Object r3 = r25.getCdr()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0186
            java.lang.Object r26 = r25.getCdr()
            gnu.lists.Pair r26 = (gnu.lists.Pair) r26
            java.lang.Object r3 = r26.getCdr()
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            if (r3 == r5) goto L_0x01ab
        L_0x0186:
            java.lang.StringBuilder r3 = new java.lang.StringBuilder
            r3.<init>()
            java.lang.String r5 = "invalid used of "
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.Object r5 = r25.getCar()
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r5 = " in quasiquote template"
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r3 = r3.toString()
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x01ab:
            if (r40 != 0) goto L_0x012b
            r0 = r43
            r1 = r26
            r2 = r41
            gnu.expr.Expression r13 = r0.rewrite_car(r1, r2)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x01bc:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "unquote-splicing"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x012b
            java.lang.StringBuilder r3 = new java.lang.StringBuilder
            r3.<init>()
            java.lang.String r5 = "invalid used of "
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.Object r5 = r25.getCar()
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r5 = " in quasiquote template"
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r3 = r3.toString()
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x01f1:
            r33 = -1
            boolean r3 = r15 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x020e
            r3 = r15
            gnu.lists.Pair r3 = (gnu.lists.Pair) r3
            java.lang.Object r21 = r3.getCar()
            java.lang.String r3 = "unquote"
            r0 = r43
            r1 = r21
            r2 = r34
            boolean r3 = r0.matches(r1, r2, r3)
            if (r3 == 0) goto L_0x026d
            r33 = 0
        L_0x020e:
            if (r33 < 0) goto L_0x02a6
            gnu.lists.Pair r15 = (gnu.lists.Pair) r15
            java.lang.Object r15 = r15.getCdr()
            java.util.Vector r37 = new java.util.Vector
            r37.<init>()
            r13 = 0
        L_0x021c:
            boolean r3 = r15 instanceof kawa.lang.SyntaxForm
            if (r3 == 0) goto L_0x0228
            r34 = r15
            kawa.lang.SyntaxForm r34 = (kawa.lang.SyntaxForm) r34
            java.lang.Object r15 = r34.getDatum()
        L_0x0228:
            gnu.lists.LList r3 = gnu.lists.LList.Empty
            if (r15 != r3) goto L_0x027e
            int r3 = r37.size()
            int r17 = r3 + 1
            java.lang.Object r4 = r25.getCdr()
            r5 = 1
            r3 = r38
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r13 = r3.expand(r4, r5, r6, r7, r8)
            r3 = 1
            r0 = r17
            if (r0 <= r3) goto L_0x0268
            r0 = r17
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r0]
            r0 = r37
            r0.copyInto(r11)
            int r3 = r17 + -1
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r13, r1)
            r11[r3] = r5
            if (r33 != 0) goto L_0x02a3
            gnu.bytecode.Method r16 = consXMethod
        L_0x0261:
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            r0 = r16
            r13.<init>(r0, r11)
        L_0x0268:
            r4 = r25
            r3 = r13
            goto L_0x0073
        L_0x026d:
            java.lang.String r3 = "unquote-splicing"
            r0 = r43
            r1 = r21
            r2 = r34
            boolean r3 = r0.matches(r1, r2, r3)
            if (r3 == 0) goto L_0x020e
            r33 = 1
            goto L_0x020e
        L_0x027e:
            boolean r3 = r15 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0299
            r3 = r15
            gnu.lists.Pair r3 = (gnu.lists.Pair) r3
            r0 = r43
            r1 = r34
            gnu.expr.Expression r3 = r0.rewrite_car(r3, r1)
            r0 = r37
            r0.addElement(r3)
            gnu.lists.Pair r15 = (gnu.lists.Pair) r15
            java.lang.Object r15 = r15.getCdr()
            goto L_0x021c
        L_0x0299:
            java.lang.String r3 = "improper list argument to unquote"
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x02a3:
            gnu.bytecode.Method r16 = appendMethod
            goto L_0x0261
        L_0x02a6:
            java.lang.Object r4 = r25.getCar()
            r3 = r38
            r5 = r40
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r12 = r3.expand(r4, r5, r6, r7, r8)
            java.lang.Object r3 = r25.getCar()
            if (r12 != r3) goto L_0x02dd
            java.lang.Object r4 = r25.getCdr()
            boolean r3 = r4 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x02cc
            r25 = r4
            gnu.lists.Pair r25 = (gnu.lists.Pair) r25
            goto L_0x0002
        L_0x02cc:
            r3 = r38
            r5 = r40
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r13 = r3.expand(r4, r5, r6, r7, r8)
            r3 = r13
            goto L_0x0073
        L_0x02dd:
            java.lang.Object r6 = r25.getCdr()
            r5 = r38
            r7 = r40
            r8 = r41
            r9 = r42
            r10 = r43
            java.lang.Object r13 = r5.expand(r6, r7, r8, r9, r10)
            boolean r3 = r12 instanceof gnu.expr.Expression
            if (r3 != 0) goto L_0x02f7
            boolean r3 = r13 instanceof gnu.expr.Expression
            if (r3 == 0) goto L_0x031c
        L_0x02f7:
            r3 = 2
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r3]
            r3 = 0
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r12, r1)
            r11[r3] = r5
            r3 = 1
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r13, r1)
            r11[r3] = r5
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r3 = makePairMethod
            r13.<init>(r3, r11)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x031c:
            r0 = r25
            gnu.lists.Pair r13 = kawa.lang.Translator.makePair(r0, r12, r13)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x0327:
            r22 = r39
            r5 = 20
            gnu.lists.Pair[] r0 = new gnu.lists.Pair[r5]
            r27 = r0
            r18 = 0
        L_0x0331:
            r0 = r27
            int r5 = r0.length
            r0 = r18
            if (r0 < r5) goto L_0x034b
            int r5 = r18 * 2
            gnu.lists.Pair[] r0 = new gnu.lists.Pair[r5]
            r36 = r0
            r5 = 0
            r6 = 0
            r0 = r27
            r1 = r36
            r2 = r18
            java.lang.System.arraycopy(r0, r5, r1, r6, r2)
            r27 = r36
        L_0x034b:
            int r19 = r18 + 1
            r27[r18] = r22
            java.lang.Object r5 = r22.getCdr()
            if (r5 != r4) goto L_0x0370
            boolean r5 = r3 instanceof gnu.expr.Expression
            if (r5 == 0) goto L_0x0379
            gnu.lists.LList r31 = gnu.lists.LList.Empty
        L_0x035b:
            r18 = r19
        L_0x035d:
            int r18 = r18 + -1
            if (r18 < 0) goto L_0x037c
            r22 = r27[r18]
            java.lang.Object r5 = r22.getCar()
            r0 = r22
            r1 = r31
            gnu.lists.Pair r31 = kawa.lang.Translator.makePair(r0, r5, r1)
            goto L_0x035d
        L_0x0370:
            java.lang.Object r22 = r22.getCdr()
            gnu.lists.Pair r22 = (gnu.lists.Pair) r22
            r18 = r19
            goto L_0x0331
        L_0x0379:
            r31 = r3
            goto L_0x035b
        L_0x037c:
            boolean r5 = r3 instanceof gnu.expr.Expression
            if (r5 == 0) goto L_0x03bb
            r5 = 2
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r5]
            r5 = 1
            gnu.expr.Expression r3 = (gnu.expr.Expression) r3
            r11[r5] = r3
            r3 = 1
            r0 = r18
            if (r0 != r3) goto L_0x03a5
            r3 = 0
            java.lang.Object r5 = r39.getCar()
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.leaf(r5, r1)
            r11[r3] = r5
            gnu.expr.ApplyExp r3 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r5 = makePairMethod
            r3.<init>(r5, r11)
            goto L_0x0077
        L_0x03a5:
            r3 = 0
            r0 = r38
            r1 = r31
            r2 = r43
            gnu.expr.Expression r5 = r0.leaf(r1, r2)
            r11[r3] = r5
            gnu.expr.ApplyExp r3 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r5 = appendMethod
            r3.<init>(r5, r11)
            goto L_0x0077
        L_0x03bb:
            r3 = r31
            goto L_0x0077
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.lang.Quote.expand_pair(gnu.lists.Pair, int, kawa.lang.SyntaxForm, java.lang.Object, kawa.lang.Translator):java.lang.Object");
    }
/* 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 java.lang.Object expand_pair(gnu.lists.Pair r39, int r40, kawa.lang.SyntaxForm r41, java.lang.Object r42, kawa.lang.Translator r43) {
        /*
            r38 = this;
            r25 = r39
        L_0x0002:
            r30 = r25
            boolean r3 = r38.expandColonForms()
            if (r3 == 0) goto L_0x0129
            r0 = r25
            r1 = r39
            if (r0 != r1) goto L_0x0129
            java.lang.Object r3 = r25.getCar()
            gnu.mapping.Symbol r5 = gnu.kawa.lispexpr.LispLanguage.lookup_sym
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x0129
            java.lang.Object r3 = r25.getCdr()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r23 = r25.getCdr()
            gnu.lists.Pair r23 = (gnu.lists.Pair) r23
            r0 = r23
            boolean r3 = r0 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r24 = r23.getCdr()
            gnu.lists.Pair r24 = (gnu.lists.Pair) r24
            r0 = r24
            boolean r3 = r0 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r3 = r24.getCdr()
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            if (r3 != r5) goto L_0x0129
            r3 = 0
            r0 = r43
            r1 = r23
            gnu.expr.Expression r28 = r0.rewrite_car(r1, r3)
            r3 = 0
            r0 = r43
            r1 = r24
            gnu.expr.Expression r29 = r0.rewrite_car(r1, r3)
            r0 = r43
            r1 = r28
            gnu.mapping.Namespace r20 = r0.namespaceResolvePrefix(r1)
            r0 = r43
            r1 = r20
            r2 = r29
            gnu.mapping.Symbol r35 = r0.namespaceResolve(r1, r2)
            if (r35 == 0) goto L_0x0078
            r13 = r35
            r4 = r30
            r3 = r13
        L_0x0073:
            r0 = r39
            if (r0 != r4) goto L_0x0327
        L_0x0077:
            return r3
        L_0x0078:
            if (r20 == 0) goto L_0x009e
            r3 = 1
            r0 = r40
            if (r0 != r3) goto L_0x009e
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            gnu.bytecode.ClassType r3 = quoteType
            java.lang.String r5 = "makeSymbol"
            r6 = 2
            gnu.bytecode.Method r3 = r3.getDeclaredMethod(r5, r6)
            r5 = 2
            gnu.expr.Expression[] r5 = new gnu.expr.Expression[r5]
            r6 = 0
            gnu.expr.QuoteExp r7 = gnu.expr.QuoteExp.getInstance(r20)
            r5[r6] = r7
            r6 = 1
            r5[r6] = r29
            r13.<init>(r3, r5)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x009e:
            r0 = r28
            boolean r3 = r0 instanceof gnu.expr.ReferenceExp
            if (r3 == 0) goto L_0x00dd
            r0 = r29
            boolean r3 = r0 instanceof gnu.expr.QuoteExp
            if (r3 == 0) goto L_0x00dd
            gnu.mapping.Environment r3 = r43.getGlobalEnvironment()
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            gnu.expr.ReferenceExp r28 = (gnu.expr.ReferenceExp) r28
            java.lang.String r6 = r28.getName()
            java.lang.StringBuilder r5 = r5.append(r6)
            r6 = 58
            java.lang.StringBuilder r5 = r5.append(r6)
            gnu.expr.QuoteExp r29 = (gnu.expr.QuoteExp) r29
            java.lang.Object r6 = r29.getValue()
            java.lang.String r6 = r6.toString()
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r5 = r5.toString()
            gnu.mapping.Symbol r13 = r3.getSymbol(r5)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x00dd:
            java.lang.String r14 = gnu.kawa.functions.CompileNamedPart.combineName(r28, r29)
            if (r14 == 0) goto L_0x00ef
            gnu.mapping.Environment r3 = r43.getGlobalEnvironment()
            gnu.mapping.Symbol r13 = r3.getSymbol(r14)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x00ef:
            r0 = r43
            r1 = r25
            java.lang.Object r32 = r0.pushPositionOf(r1)
            r3 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            java.lang.String r6 = "'"
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.Object r6 = r23.getCar()
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r6 = "' is not a valid prefix"
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r5 = r5.toString()
            r0 = r43
            r0.error(r3, r5)
            r0 = r43
            r1 = r32
            r0.popPositionOf(r1)
            r13 = r35
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x0129:
            if (r40 >= 0) goto L_0x014b
        L_0x012b:
            r3 = 1
            r0 = r40
            if (r0 != r3) goto L_0x02a6
            java.lang.Object r3 = r25.getCar()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x02a6
            java.lang.Object r15 = r25.getCar()
            r34 = r41
        L_0x013e:
            boolean r3 = r15 instanceof kawa.lang.SyntaxForm
            if (r3 == 0) goto L_0x01f1
            r34 = r15
            kawa.lang.SyntaxForm r34 = (kawa.lang.SyntaxForm) r34
            java.lang.Object r15 = r34.getDatum()
            goto L_0x013e
        L_0x014b:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "quasiquote"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x015e
            int r40 = r40 + 1
            goto L_0x012b
        L_0x015e:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "unquote"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x01bc
            int r40 = r40 + -1
            java.lang.Object r3 = r25.getCdr()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0186
            java.lang.Object r26 = r25.getCdr()
            gnu.lists.Pair r26 = (gnu.lists.Pair) r26
            java.lang.Object r3 = r26.getCdr()
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            if (r3 == r5) goto L_0x01ab
        L_0x0186:
            java.lang.StringBuilder r3 = new java.lang.StringBuilder
            r3.<init>()
            java.lang.String r5 = "invalid used of "
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.Object r5 = r25.getCar()
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r5 = " in quasiquote template"
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r3 = r3.toString()
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x01ab:
            if (r40 != 0) goto L_0x012b
            r0 = r43
            r1 = r26
            r2 = r41
            gnu.expr.Expression r13 = r0.rewrite_car(r1, r2)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x01bc:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "unquote-splicing"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x012b
            java.lang.StringBuilder r3 = new java.lang.StringBuilder
            r3.<init>()
            java.lang.String r5 = "invalid used of "
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.Object r5 = r25.getCar()
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r5 = " in quasiquote template"
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r3 = r3.toString()
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x01f1:
            r33 = -1
            boolean r3 = r15 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x020e
            r3 = r15
            gnu.lists.Pair r3 = (gnu.lists.Pair) r3
            java.lang.Object r21 = r3.getCar()
            java.lang.String r3 = "unquote"
            r0 = r43
            r1 = r21
            r2 = r34
            boolean r3 = r0.matches(r1, r2, r3)
            if (r3 == 0) goto L_0x026d
            r33 = 0
        L_0x020e:
            if (r33 < 0) goto L_0x02a6
            gnu.lists.Pair r15 = (gnu.lists.Pair) r15
            java.lang.Object r15 = r15.getCdr()
            java.util.Vector r37 = new java.util.Vector
            r37.<init>()
            r13 = 0
        L_0x021c:
            boolean r3 = r15 instanceof kawa.lang.SyntaxForm
            if (r3 == 0) goto L_0x0228
            r34 = r15
            kawa.lang.SyntaxForm r34 = (kawa.lang.SyntaxForm) r34
            java.lang.Object r15 = r34.getDatum()
        L_0x0228:
            gnu.lists.LList r3 = gnu.lists.LList.Empty
            if (r15 != r3) goto L_0x027e
            int r3 = r37.size()
            int r17 = r3 + 1
            java.lang.Object r4 = r25.getCdr()
            r5 = 1
            r3 = r38
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r13 = r3.expand(r4, r5, r6, r7, r8)
            r3 = 1
            r0 = r17
            if (r0 <= r3) goto L_0x0268
            r0 = r17
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r0]
            r0 = r37
            r0.copyInto(r11)
            int r3 = r17 + -1
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r13, r1)
            r11[r3] = r5
            if (r33 != 0) goto L_0x02a3
            gnu.bytecode.Method r16 = consXMethod
        L_0x0261:
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            r0 = r16
            r13.<init>(r0, r11)
        L_0x0268:
            r4 = r25
            r3 = r13
            goto L_0x0073
        L_0x026d:
            java.lang.String r3 = "unquote-splicing"
            r0 = r43
            r1 = r21
            r2 = r34
            boolean r3 = r0.matches(r1, r2, r3)
            if (r3 == 0) goto L_0x020e
            r33 = 1
            goto L_0x020e
        L_0x027e:
            boolean r3 = r15 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0299
            r3 = r15
            gnu.lists.Pair r3 = (gnu.lists.Pair) r3
            r0 = r43
            r1 = r34
            gnu.expr.Expression r3 = r0.rewrite_car(r3, r1)
            r0 = r37
            r0.addElement(r3)
            gnu.lists.Pair r15 = (gnu.lists.Pair) r15
            java.lang.Object r15 = r15.getCdr()
            goto L_0x021c
        L_0x0299:
            java.lang.String r3 = "improper list argument to unquote"
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x02a3:
            gnu.bytecode.Method r16 = appendMethod
            goto L_0x0261
        L_0x02a6:
            java.lang.Object r4 = r25.getCar()
            r3 = r38
            r5 = r40
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r12 = r3.expand(r4, r5, r6, r7, r8)
            java.lang.Object r3 = r25.getCar()
            if (r12 != r3) goto L_0x02dd
            java.lang.Object r4 = r25.getCdr()
            boolean r3 = r4 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x02cc
            r25 = r4
            gnu.lists.Pair r25 = (gnu.lists.Pair) r25
            goto L_0x0002
        L_0x02cc:
            r3 = r38
            r5 = r40
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r13 = r3.expand(r4, r5, r6, r7, r8)
            r3 = r13
            goto L_0x0073
        L_0x02dd:
            java.lang.Object r6 = r25.getCdr()
            r5 = r38
            r7 = r40
            r8 = r41
            r9 = r42
            r10 = r43
            java.lang.Object r13 = r5.expand(r6, r7, r8, r9, r10)
            boolean r3 = r12 instanceof gnu.expr.Expression
            if (r3 != 0) goto L_0x02f7
            boolean r3 = r13 instanceof gnu.expr.Expression
            if (r3 == 0) goto L_0x031c
        L_0x02f7:
            r3 = 2
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r3]
            r3 = 0
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r12, r1)
            r11[r3] = r5
            r3 = 1
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r13, r1)
            r11[r3] = r5
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r3 = makePairMethod
            r13.<init>(r3, r11)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x031c:
            r0 = r25
            gnu.lists.Pair r13 = kawa.lang.Translator.makePair(r0, r12, r13)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x0327:
            r22 = r39
            r5 = 20
            gnu.lists.Pair[] r0 = new gnu.lists.Pair[r5]
            r27 = r0
            r18 = 0
        L_0x0331:
            r0 = r27
            int r5 = r0.length
            r0 = r18
            if (r0 < r5) goto L_0x034b
            int r5 = r18 * 2
            gnu.lists.Pair[] r0 = new gnu.lists.Pair[r5]
            r36 = r0
            r5 = 0
            r6 = 0
            r0 = r27
            r1 = r36
            r2 = r18
            java.lang.System.arraycopy(r0, r5, r1, r6, r2)
            r27 = r36
        L_0x034b:
            int r19 = r18 + 1
            r27[r18] = r22
            java.lang.Object r5 = r22.getCdr()
            if (r5 != r4) goto L_0x0370
            boolean r5 = r3 instanceof gnu.expr.Expression
            if (r5 == 0) goto L_0x0379
            gnu.lists.LList r31 = gnu.lists.LList.Empty
        L_0x035b:
            r18 = r19
        L_0x035d:
            int r18 = r18 + -1
            if (r18 < 0) goto L_0x037c
            r22 = r27[r18]
            java.lang.Object r5 = r22.getCar()
            r0 = r22
            r1 = r31
            gnu.lists.Pair r31 = kawa.lang.Translator.makePair(r0, r5, r1)
            goto L_0x035d
        L_0x0370:
            java.lang.Object r22 = r22.getCdr()
            gnu.lists.Pair r22 = (gnu.lists.Pair) r22
            r18 = r19
            goto L_0x0331
        L_0x0379:
            r31 = r3
            goto L_0x035b
        L_0x037c:
            boolean r5 = r3 instanceof gnu.expr.Expression
            if (r5 == 0) goto L_0x03bb
            r5 = 2
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r5]
            r5 = 1
            gnu.expr.Expression r3 = (gnu.expr.Expression) r3
            r11[r5] = r3
            r3 = 1
            r0 = r18
            if (r0 != r3) goto L_0x03a5
            r3 = 0
            java.lang.Object r5 = r39.getCar()
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.leaf(r5, r1)
            r11[r3] = r5
            gnu.expr.ApplyExp r3 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r5 = makePairMethod
            r3.<init>(r5, r11)
            goto L_0x0077
        L_0x03a5:
            r3 = 0
            r0 = r38
            r1 = r31
            r2 = r43
            gnu.expr.Expression r5 = r0.leaf(r1, r2)
            r11[r3] = r5
            gnu.expr.ApplyExp r3 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r5 = appendMethod
            r3.<init>(r5, r11)
            goto L_0x0077
        L_0x03bb:
            r3 = r31
            goto L_0x0077
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.lang.Quote.expand_pair(gnu.lists.Pair, int, kawa.lang.SyntaxForm, java.lang.Object, kawa.lang.Translator):java.lang.Object");
    }
public java . lang . Object expand_pair ( gnu . lists . Pair r39 , int r40 , kawa . lang . SyntaxForm r41 , java . lang . Object r42 , kawa . lang . Translator r43 ) { /*
            r38 = this;
            r25 = r39
        L_0x0002:
            r30 = r25
            boolean r3 = r38.expandColonForms()
            if (r3 == 0) goto L_0x0129
            r0 = r25
            r1 = r39
            if (r0 != r1) goto L_0x0129
            java.lang.Object r3 = r25.getCar()
            gnu.mapping.Symbol r5 = gnu.kawa.lispexpr.LispLanguage.lookup_sym
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x0129
            java.lang.Object r3 = r25.getCdr()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r23 = r25.getCdr()
            gnu.lists.Pair r23 = (gnu.lists.Pair) r23
            r0 = r23
            boolean r3 = r0 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r24 = r23.getCdr()
            gnu.lists.Pair r24 = (gnu.lists.Pair) r24
            r0 = r24
            boolean r3 = r0 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0129
            java.lang.Object r3 = r24.getCdr()
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            if (r3 != r5) goto L_0x0129
            r3 = 0
            r0 = r43
            r1 = r23
            gnu.expr.Expression r28 = r0.rewrite_car(r1, r3)
            r3 = 0
            r0 = r43
            r1 = r24
            gnu.expr.Expression r29 = r0.rewrite_car(r1, r3)
            r0 = r43
            r1 = r28
            gnu.mapping.Namespace r20 = r0.namespaceResolvePrefix(r1)
            r0 = r43
            r1 = r20
            r2 = r29
            gnu.mapping.Symbol r35 = r0.namespaceResolve(r1, r2)
            if (r35 == 0) goto L_0x0078
            r13 = r35
            r4 = r30
            r3 = r13
        L_0x0073:
            r0 = r39
            if (r0 != r4) goto L_0x0327
        L_0x0077:
            return r3
        L_0x0078:
            if (r20 == 0) goto L_0x009e
            r3 = 1
            r0 = r40
            if (r0 != r3) goto L_0x009e
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            gnu.bytecode.ClassType r3 = quoteType
            java.lang.String r5 = "makeSymbol"
            r6 = 2
            gnu.bytecode.Method r3 = r3.getDeclaredMethod(r5, r6)
            r5 = 2
            gnu.expr.Expression[] r5 = new gnu.expr.Expression[r5]
            r6 = 0
            gnu.expr.QuoteExp r7 = gnu.expr.QuoteExp.getInstance(r20)
            r5[r6] = r7
            r6 = 1
            r5[r6] = r29
            r13.<init>(r3, r5)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x009e:
            r0 = r28
            boolean r3 = r0 instanceof gnu.expr.ReferenceExp
            if (r3 == 0) goto L_0x00dd
            r0 = r29
            boolean r3 = r0 instanceof gnu.expr.QuoteExp
            if (r3 == 0) goto L_0x00dd
            gnu.mapping.Environment r3 = r43.getGlobalEnvironment()
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            gnu.expr.ReferenceExp r28 = (gnu.expr.ReferenceExp) r28
            java.lang.String r6 = r28.getName()
            java.lang.StringBuilder r5 = r5.append(r6)
            r6 = 58
            java.lang.StringBuilder r5 = r5.append(r6)
            gnu.expr.QuoteExp r29 = (gnu.expr.QuoteExp) r29
            java.lang.Object r6 = r29.getValue()
            java.lang.String r6 = r6.toString()
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r5 = r5.toString()
            gnu.mapping.Symbol r13 = r3.getSymbol(r5)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x00dd:
            java.lang.String r14 = gnu.kawa.functions.CompileNamedPart.combineName(r28, r29)
            if (r14 == 0) goto L_0x00ef
            gnu.mapping.Environment r3 = r43.getGlobalEnvironment()
            gnu.mapping.Symbol r13 = r3.getSymbol(r14)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x00ef:
            r0 = r43
            r1 = r25
            java.lang.Object r32 = r0.pushPositionOf(r1)
            r3 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            java.lang.String r6 = "'"
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.Object r6 = r23.getCar()
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r6 = "' is not a valid prefix"
            java.lang.StringBuilder r5 = r5.append(r6)
            java.lang.String r5 = r5.toString()
            r0 = r43
            r0.error(r3, r5)
            r0 = r43
            r1 = r32
            r0.popPositionOf(r1)
            r13 = r35
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x0129:
            if (r40 >= 0) goto L_0x014b
        L_0x012b:
            r3 = 1
            r0 = r40
            if (r0 != r3) goto L_0x02a6
            java.lang.Object r3 = r25.getCar()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x02a6
            java.lang.Object r15 = r25.getCar()
            r34 = r41
        L_0x013e:
            boolean r3 = r15 instanceof kawa.lang.SyntaxForm
            if (r3 == 0) goto L_0x01f1
            r34 = r15
            kawa.lang.SyntaxForm r34 = (kawa.lang.SyntaxForm) r34
            java.lang.Object r15 = r34.getDatum()
            goto L_0x013e
        L_0x014b:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "quasiquote"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x015e
            int r40 = r40 + 1
            goto L_0x012b
        L_0x015e:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "unquote"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x01bc
            int r40 = r40 + -1
            java.lang.Object r3 = r25.getCdr()
            boolean r3 = r3 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0186
            java.lang.Object r26 = r25.getCdr()
            gnu.lists.Pair r26 = (gnu.lists.Pair) r26
            java.lang.Object r3 = r26.getCdr()
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            if (r3 == r5) goto L_0x01ab
        L_0x0186:
            java.lang.StringBuilder r3 = new java.lang.StringBuilder
            r3.<init>()
            java.lang.String r5 = "invalid used of "
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.Object r5 = r25.getCar()
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r5 = " in quasiquote template"
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r3 = r3.toString()
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x01ab:
            if (r40 != 0) goto L_0x012b
            r0 = r43
            r1 = r26
            r2 = r41
            gnu.expr.Expression r13 = r0.rewrite_car(r1, r2)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x01bc:
            java.lang.Object r3 = r25.getCar()
            java.lang.String r5 = "unquote-splicing"
            r0 = r43
            r1 = r41
            boolean r3 = r0.matches(r3, r1, r5)
            if (r3 == 0) goto L_0x012b
            java.lang.StringBuilder r3 = new java.lang.StringBuilder
            r3.<init>()
            java.lang.String r5 = "invalid used of "
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.Object r5 = r25.getCar()
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r5 = " in quasiquote template"
            java.lang.StringBuilder r3 = r3.append(r5)
            java.lang.String r3 = r3.toString()
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x01f1:
            r33 = -1
            boolean r3 = r15 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x020e
            r3 = r15
            gnu.lists.Pair r3 = (gnu.lists.Pair) r3
            java.lang.Object r21 = r3.getCar()
            java.lang.String r3 = "unquote"
            r0 = r43
            r1 = r21
            r2 = r34
            boolean r3 = r0.matches(r1, r2, r3)
            if (r3 == 0) goto L_0x026d
            r33 = 0
        L_0x020e:
            if (r33 < 0) goto L_0x02a6
            gnu.lists.Pair r15 = (gnu.lists.Pair) r15
            java.lang.Object r15 = r15.getCdr()
            java.util.Vector r37 = new java.util.Vector
            r37.<init>()
            r13 = 0
        L_0x021c:
            boolean r3 = r15 instanceof kawa.lang.SyntaxForm
            if (r3 == 0) goto L_0x0228
            r34 = r15
            kawa.lang.SyntaxForm r34 = (kawa.lang.SyntaxForm) r34
            java.lang.Object r15 = r34.getDatum()
        L_0x0228:
            gnu.lists.LList r3 = gnu.lists.LList.Empty
            if (r15 != r3) goto L_0x027e
            int r3 = r37.size()
            int r17 = r3 + 1
            java.lang.Object r4 = r25.getCdr()
            r5 = 1
            r3 = r38
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r13 = r3.expand(r4, r5, r6, r7, r8)
            r3 = 1
            r0 = r17
            if (r0 <= r3) goto L_0x0268
            r0 = r17
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r0]
            r0 = r37
            r0.copyInto(r11)
            int r3 = r17 + -1
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r13, r1)
            r11[r3] = r5
            if (r33 != 0) goto L_0x02a3
            gnu.bytecode.Method r16 = consXMethod
        L_0x0261:
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            r0 = r16
            r13.<init>(r0, r11)
        L_0x0268:
            r4 = r25
            r3 = r13
            goto L_0x0073
        L_0x026d:
            java.lang.String r3 = "unquote-splicing"
            r0 = r43
            r1 = r21
            r2 = r34
            boolean r3 = r0.matches(r1, r2, r3)
            if (r3 == 0) goto L_0x020e
            r33 = 1
            goto L_0x020e
        L_0x027e:
            boolean r3 = r15 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x0299
            r3 = r15
            gnu.lists.Pair r3 = (gnu.lists.Pair) r3
            r0 = r43
            r1 = r34
            gnu.expr.Expression r3 = r0.rewrite_car(r3, r1)
            r0 = r37
            r0.addElement(r3)
            gnu.lists.Pair r15 = (gnu.lists.Pair) r15
            java.lang.Object r15 = r15.getCdr()
            goto L_0x021c
        L_0x0299:
            java.lang.String r3 = "improper list argument to unquote"
            r0 = r43
            gnu.expr.Expression r3 = r0.syntaxError(r3)
            goto L_0x0077
        L_0x02a3:
            gnu.bytecode.Method r16 = appendMethod
            goto L_0x0261
        L_0x02a6:
            java.lang.Object r4 = r25.getCar()
            r3 = r38
            r5 = r40
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r12 = r3.expand(r4, r5, r6, r7, r8)
            java.lang.Object r3 = r25.getCar()
            if (r12 != r3) goto L_0x02dd
            java.lang.Object r4 = r25.getCdr()
            boolean r3 = r4 instanceof gnu.lists.Pair
            if (r3 == 0) goto L_0x02cc
            r25 = r4
            gnu.lists.Pair r25 = (gnu.lists.Pair) r25
            goto L_0x0002
        L_0x02cc:
            r3 = r38
            r5 = r40
            r6 = r41
            r7 = r42
            r8 = r43
            java.lang.Object r13 = r3.expand(r4, r5, r6, r7, r8)
            r3 = r13
            goto L_0x0073
        L_0x02dd:
            java.lang.Object r6 = r25.getCdr()
            r5 = r38
            r7 = r40
            r8 = r41
            r9 = r42
            r10 = r43
            java.lang.Object r13 = r5.expand(r6, r7, r8, r9, r10)
            boolean r3 = r12 instanceof gnu.expr.Expression
            if (r3 != 0) goto L_0x02f7
            boolean r3 = r13 instanceof gnu.expr.Expression
            if (r3 == 0) goto L_0x031c
        L_0x02f7:
            r3 = 2
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r3]
            r3 = 0
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r12, r1)
            r11[r3] = r5
            r3 = 1
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.coerceExpression(r13, r1)
            r11[r3] = r5
            gnu.expr.ApplyExp r13 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r3 = makePairMethod
            r13.<init>(r3, r11)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x031c:
            r0 = r25
            gnu.lists.Pair r13 = kawa.lang.Translator.makePair(r0, r12, r13)
            r4 = r30
            r3 = r13
            goto L_0x0073
        L_0x0327:
            r22 = r39
            r5 = 20
            gnu.lists.Pair[] r0 = new gnu.lists.Pair[r5]
            r27 = r0
            r18 = 0
        L_0x0331:
            r0 = r27
            int r5 = r0.length
            r0 = r18
            if (r0 < r5) goto L_0x034b
            int r5 = r18 * 2
            gnu.lists.Pair[] r0 = new gnu.lists.Pair[r5]
            r36 = r0
            r5 = 0
            r6 = 0
            r0 = r27
            r1 = r36
            r2 = r18
            java.lang.System.arraycopy(r0, r5, r1, r6, r2)
            r27 = r36
        L_0x034b:
            int r19 = r18 + 1
            r27[r18] = r22
            java.lang.Object r5 = r22.getCdr()
            if (r5 != r4) goto L_0x0370
            boolean r5 = r3 instanceof gnu.expr.Expression
            if (r5 == 0) goto L_0x0379
            gnu.lists.LList r31 = gnu.lists.LList.Empty
        L_0x035b:
            r18 = r19
        L_0x035d:
            int r18 = r18 + -1
            if (r18 < 0) goto L_0x037c
            r22 = r27[r18]
            java.lang.Object r5 = r22.getCar()
            r0 = r22
            r1 = r31
            gnu.lists.Pair r31 = kawa.lang.Translator.makePair(r0, r5, r1)
            goto L_0x035d
        L_0x0370:
            java.lang.Object r22 = r22.getCdr()
            gnu.lists.Pair r22 = (gnu.lists.Pair) r22
            r18 = r19
            goto L_0x0331
        L_0x0379:
            r31 = r3
            goto L_0x035b
        L_0x037c:
            boolean r5 = r3 instanceof gnu.expr.Expression
            if (r5 == 0) goto L_0x03bb
            r5 = 2
            gnu.expr.Expression[] r11 = new gnu.expr.Expression[r5]
            r5 = 1
            gnu.expr.Expression r3 = (gnu.expr.Expression) r3
            r11[r5] = r3
            r3 = 1
            r0 = r18
            if (r0 != r3) goto L_0x03a5
            r3 = 0
            java.lang.Object r5 = r39.getCar()
            r0 = r38
            r1 = r43
            gnu.expr.Expression r5 = r0.leaf(r5, r1)
            r11[r3] = r5
            gnu.expr.ApplyExp r3 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r5 = makePairMethod
            r3.<init>(r5, r11)
            goto L_0x0077
        L_0x03a5:
            r3 = 0
            r0 = r38
            r1 = r31
            r2 = r43
            gnu.expr.Expression r5 = r0.leaf(r1, r2)
            r11[r3] = r5
            gnu.expr.ApplyExp r3 = new gnu.expr.ApplyExp
            gnu.bytecode.Method r5 = appendMethod
            r3.<init>(r5, r11)
            goto L_0x0077
        L_0x03bb:
            r3 = r31
            goto L_0x0077
        */ throw new UnsupportedOperationException ( "Method not decompiled: kawa.lang.Quote.expand_pair(gnu.lists.Pair, int, kawa.lang.SyntaxForm, java.lang.Object, kawa.lang.Translator):java.lang.Object" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .