Source/sources/kawa/lang/Translator.java
public gnu.lists.LList scanBody(java.lang.Object r13, gnu.expr.ScopeExp r14, boolean r15) {
        /*
            r12 = this;
            if (r15 == 0) goto L_0x0036
            gnu.lists.LList r5 = gnu.lists.LList.Empty
        L_0x0004:
            r4 = 0
        L_0x0005:
            gnu.lists.LList r10 = gnu.lists.LList.Empty
            if (r13 == r10) goto L_0x0035
            boolean r10 = r13 instanceof kawa.lang.SyntaxForm
            if (r10 == 0) goto L_0x0056
            r9 = r13
            kawa.lang.SyntaxForm r9 = (kawa.lang.SyntaxForm) r9
            gnu.expr.ScopeExp r8 = r12.current_scope
            kawa.lang.TemplateScope r10 = r9.getScope()     // Catch:{ all -> 0x0051 }
            r12.setCurrentScope(r10)     // Catch:{ all -> 0x0051 }
            java.util.Stack r10 = r12.formStack     // Catch:{ all -> 0x0051 }
            int r1 = r10.size()     // Catch:{ all -> 0x0051 }
            java.lang.Object r10 = r9.getDatum()     // Catch:{ all -> 0x0051 }
            gnu.lists.LList r0 = r12.scanBody(r10, r14, r15)     // Catch:{ all -> 0x0051 }
            if (r15 == 0) goto L_0x003f
            java.lang.Object r0 = kawa.lang.SyntaxForms.fromDatumIfNeeded(r0, r9)     // Catch:{ all -> 0x0051 }
            gnu.lists.LList r0 = (gnu.lists.LList) r0     // Catch:{ all -> 0x0051 }
            if (r4 != 0) goto L_0x0038
            r12.setCurrentScope(r8)
            r5 = r0
        L_0x0035:
            return r5
        L_0x0036:
            r5 = 0
            goto L_0x0004
        L_0x0038:
            r4.setCdrBackdoor(r0)     // Catch:{ all -> 0x0051 }
            r12.setCurrentScope(r8)
            goto L_0x0035
        L_0x003f:
            java.util.Stack r10 = r12.formStack     // Catch:{ all -> 0x0051 }
            java.lang.Object r11 = r12.popForms(r1)     // Catch:{ all -> 0x0051 }
            java.lang.Object r11 = wrapSyntax(r11, r9)     // Catch:{ all -> 0x0051 }
            r10.add(r11)     // Catch:{ all -> 0x0051 }
            r5 = 0
            r12.setCurrentScope(r8)
            goto L_0x0035
        L_0x0051:
            r10 = move-exception
            r12.setCurrentScope(r8)
            throw r10
        L_0x0056:
            boolean r10 = r13 instanceof gnu.lists.Pair
            if (r10 == 0) goto L_0x00bc
            r7 = r13
            gnu.lists.Pair r7 = (gnu.lists.Pair) r7
            java.util.Stack r10 = r12.formStack
            int r1 = r10.size()
            java.lang.Object r10 = r7.getCar()
            r12.scanForm(r10, r14)
            int r10 = r12.getState()
            r11 = 2
            if (r10 != r11) goto L_0x008f
            java.lang.Object r10 = r7.getCar()
            java.lang.Object r11 = r12.pendingForm
            if (r10 == r11) goto L_0x0083
            java.lang.Object r10 = r12.pendingForm
            java.lang.Object r11 = r7.getCdr()
            gnu.lists.Pair r7 = makePair(r7, r10, r11)
        L_0x0083:
            gnu.lists.Pair r10 = new gnu.lists.Pair
            kawa.standard.begin r11 = kawa.standard.begin.begin
            r10.<init>(r11, r7)
            r12.pendingForm = r10
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            goto L_0x0035
        L_0x008f:
            java.util.Stack r10 = r12.formStack
            int r2 = r10.size()
            if (r15 == 0) goto L_0x00b6
            r3 = r1
        L_0x0098:
            if (r3 >= r2) goto L_0x00b1
            java.util.Stack r10 = r12.formStack
            java.lang.Object r10 = r10.elementAt(r3)
            gnu.lists.LList r11 = gnu.lists.LList.Empty
            gnu.lists.Pair r6 = makePair(r7, r10, r11)
            if (r4 != 0) goto L_0x00ad
            r5 = r6
        L_0x00a9:
            r4 = r6
            int r3 = r3 + 1
            goto L_0x0098
        L_0x00ad:
            r4.setCdrBackdoor(r6)
            goto L_0x00a9
        L_0x00b1:
            java.util.Stack r10 = r12.formStack
            r10.setSize(r1)
        L_0x00b6:
            java.lang.Object r13 = r7.getCdr()
            goto L_0x0005
        L_0x00bc:
            java.util.Stack r10 = r12.formStack
            java.lang.String r11 = "body is not a proper list"
            gnu.expr.Expression r11 = r12.syntaxError(r11)
            r10.add(r11)
            goto L_0x0035
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.lang.Translator.scanBody(java.lang.Object, gnu.expr.ScopeExp, boolean):gnu.lists.LList");
    }
/* 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.lists.LList scanBody(java.lang.Object r13, gnu.expr.ScopeExp r14, boolean r15) {
        /*
            r12 = this;
            if (r15 == 0) goto L_0x0036
            gnu.lists.LList r5 = gnu.lists.LList.Empty
        L_0x0004:
            r4 = 0
        L_0x0005:
            gnu.lists.LList r10 = gnu.lists.LList.Empty
            if (r13 == r10) goto L_0x0035
            boolean r10 = r13 instanceof kawa.lang.SyntaxForm
            if (r10 == 0) goto L_0x0056
            r9 = r13
            kawa.lang.SyntaxForm r9 = (kawa.lang.SyntaxForm) r9
            gnu.expr.ScopeExp r8 = r12.current_scope
            kawa.lang.TemplateScope r10 = r9.getScope()     // Catch:{ all -> 0x0051 }
            r12.setCurrentScope(r10)     // Catch:{ all -> 0x0051 }
            java.util.Stack r10 = r12.formStack     // Catch:{ all -> 0x0051 }
            int r1 = r10.size()     // Catch:{ all -> 0x0051 }
            java.lang.Object r10 = r9.getDatum()     // Catch:{ all -> 0x0051 }
            gnu.lists.LList r0 = r12.scanBody(r10, r14, r15)     // Catch:{ all -> 0x0051 }
            if (r15 == 0) goto L_0x003f
            java.lang.Object r0 = kawa.lang.SyntaxForms.fromDatumIfNeeded(r0, r9)     // Catch:{ all -> 0x0051 }
            gnu.lists.LList r0 = (gnu.lists.LList) r0     // Catch:{ all -> 0x0051 }
            if (r4 != 0) goto L_0x0038
            r12.setCurrentScope(r8)
            r5 = r0
        L_0x0035:
            return r5
        L_0x0036:
            r5 = 0
            goto L_0x0004
        L_0x0038:
            r4.setCdrBackdoor(r0)     // Catch:{ all -> 0x0051 }
            r12.setCurrentScope(r8)
            goto L_0x0035
        L_0x003f:
            java.util.Stack r10 = r12.formStack     // Catch:{ all -> 0x0051 }
            java.lang.Object r11 = r12.popForms(r1)     // Catch:{ all -> 0x0051 }
            java.lang.Object r11 = wrapSyntax(r11, r9)     // Catch:{ all -> 0x0051 }
            r10.add(r11)     // Catch:{ all -> 0x0051 }
            r5 = 0
            r12.setCurrentScope(r8)
            goto L_0x0035
        L_0x0051:
            r10 = move-exception
            r12.setCurrentScope(r8)
            throw r10
        L_0x0056:
            boolean r10 = r13 instanceof gnu.lists.Pair
            if (r10 == 0) goto L_0x00bc
            r7 = r13
            gnu.lists.Pair r7 = (gnu.lists.Pair) r7
            java.util.Stack r10 = r12.formStack
            int r1 = r10.size()
            java.lang.Object r10 = r7.getCar()
            r12.scanForm(r10, r14)
            int r10 = r12.getState()
            r11 = 2
            if (r10 != r11) goto L_0x008f
            java.lang.Object r10 = r7.getCar()
            java.lang.Object r11 = r12.pendingForm
            if (r10 == r11) goto L_0x0083
            java.lang.Object r10 = r12.pendingForm
            java.lang.Object r11 = r7.getCdr()
            gnu.lists.Pair r7 = makePair(r7, r10, r11)
        L_0x0083:
            gnu.lists.Pair r10 = new gnu.lists.Pair
            kawa.standard.begin r11 = kawa.standard.begin.begin
            r10.<init>(r11, r7)
            r12.pendingForm = r10
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            goto L_0x0035
        L_0x008f:
            java.util.Stack r10 = r12.formStack
            int r2 = r10.size()
            if (r15 == 0) goto L_0x00b6
            r3 = r1
        L_0x0098:
            if (r3 >= r2) goto L_0x00b1
            java.util.Stack r10 = r12.formStack
            java.lang.Object r10 = r10.elementAt(r3)
            gnu.lists.LList r11 = gnu.lists.LList.Empty
            gnu.lists.Pair r6 = makePair(r7, r10, r11)
            if (r4 != 0) goto L_0x00ad
            r5 = r6
        L_0x00a9:
            r4 = r6
            int r3 = r3 + 1
            goto L_0x0098
        L_0x00ad:
            r4.setCdrBackdoor(r6)
            goto L_0x00a9
        L_0x00b1:
            java.util.Stack r10 = r12.formStack
            r10.setSize(r1)
        L_0x00b6:
            java.lang.Object r13 = r7.getCdr()
            goto L_0x0005
        L_0x00bc:
            java.util.Stack r10 = r12.formStack
            java.lang.String r11 = "body is not a proper list"
            gnu.expr.Expression r11 = r12.syntaxError(r11)
            r10.add(r11)
            goto L_0x0035
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.lang.Translator.scanBody(java.lang.Object, gnu.expr.ScopeExp, boolean):gnu.lists.LList");
    }
public gnu . lists . LList scanBody ( java . lang . Object r13 , gnu . expr . ScopeExp r14 , boolean r15 ) { /*
            r12 = this;
            if (r15 == 0) goto L_0x0036
            gnu.lists.LList r5 = gnu.lists.LList.Empty
        L_0x0004:
            r4 = 0
        L_0x0005:
            gnu.lists.LList r10 = gnu.lists.LList.Empty
            if (r13 == r10) goto L_0x0035
            boolean r10 = r13 instanceof kawa.lang.SyntaxForm
            if (r10 == 0) goto L_0x0056
            r9 = r13
            kawa.lang.SyntaxForm r9 = (kawa.lang.SyntaxForm) r9
            gnu.expr.ScopeExp r8 = r12.current_scope
            kawa.lang.TemplateScope r10 = r9.getScope()     // Catch:{ all -> 0x0051 }
            r12.setCurrentScope(r10)     // Catch:{ all -> 0x0051 }
            java.util.Stack r10 = r12.formStack     // Catch:{ all -> 0x0051 }
            int r1 = r10.size()     // Catch:{ all -> 0x0051 }
            java.lang.Object r10 = r9.getDatum()     // Catch:{ all -> 0x0051 }
            gnu.lists.LList r0 = r12.scanBody(r10, r14, r15)     // Catch:{ all -> 0x0051 }
            if (r15 == 0) goto L_0x003f
            java.lang.Object r0 = kawa.lang.SyntaxForms.fromDatumIfNeeded(r0, r9)     // Catch:{ all -> 0x0051 }
            gnu.lists.LList r0 = (gnu.lists.LList) r0     // Catch:{ all -> 0x0051 }
            if (r4 != 0) goto L_0x0038
            r12.setCurrentScope(r8)
            r5 = r0
        L_0x0035:
            return r5
        L_0x0036:
            r5 = 0
            goto L_0x0004
        L_0x0038:
            r4.setCdrBackdoor(r0)     // Catch:{ all -> 0x0051 }
            r12.setCurrentScope(r8)
            goto L_0x0035
        L_0x003f:
            java.util.Stack r10 = r12.formStack     // Catch:{ all -> 0x0051 }
            java.lang.Object r11 = r12.popForms(r1)     // Catch:{ all -> 0x0051 }
            java.lang.Object r11 = wrapSyntax(r11, r9)     // Catch:{ all -> 0x0051 }
            r10.add(r11)     // Catch:{ all -> 0x0051 }
            r5 = 0
            r12.setCurrentScope(r8)
            goto L_0x0035
        L_0x0051:
            r10 = move-exception
            r12.setCurrentScope(r8)
            throw r10
        L_0x0056:
            boolean r10 = r13 instanceof gnu.lists.Pair
            if (r10 == 0) goto L_0x00bc
            r7 = r13
            gnu.lists.Pair r7 = (gnu.lists.Pair) r7
            java.util.Stack r10 = r12.formStack
            int r1 = r10.size()
            java.lang.Object r10 = r7.getCar()
            r12.scanForm(r10, r14)
            int r10 = r12.getState()
            r11 = 2
            if (r10 != r11) goto L_0x008f
            java.lang.Object r10 = r7.getCar()
            java.lang.Object r11 = r12.pendingForm
            if (r10 == r11) goto L_0x0083
            java.lang.Object r10 = r12.pendingForm
            java.lang.Object r11 = r7.getCdr()
            gnu.lists.Pair r7 = makePair(r7, r10, r11)
        L_0x0083:
            gnu.lists.Pair r10 = new gnu.lists.Pair
            kawa.standard.begin r11 = kawa.standard.begin.begin
            r10.<init>(r11, r7)
            r12.pendingForm = r10
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            goto L_0x0035
        L_0x008f:
            java.util.Stack r10 = r12.formStack
            int r2 = r10.size()
            if (r15 == 0) goto L_0x00b6
            r3 = r1
        L_0x0098:
            if (r3 >= r2) goto L_0x00b1
            java.util.Stack r10 = r12.formStack
            java.lang.Object r10 = r10.elementAt(r3)
            gnu.lists.LList r11 = gnu.lists.LList.Empty
            gnu.lists.Pair r6 = makePair(r7, r10, r11)
            if (r4 != 0) goto L_0x00ad
            r5 = r6
        L_0x00a9:
            r4 = r6
            int r3 = r3 + 1
            goto L_0x0098
        L_0x00ad:
            r4.setCdrBackdoor(r6)
            goto L_0x00a9
        L_0x00b1:
            java.util.Stack r10 = r12.formStack
            r10.setSize(r1)
        L_0x00b6:
            java.lang.Object r13 = r7.getCdr()
            goto L_0x0005
        L_0x00bc:
            java.util.Stack r10 = r12.formStack
            java.lang.String r11 = "body is not a proper list"
            gnu.expr.Expression r11 = r12.syntaxError(r11)
            r10.add(r11)
            goto L_0x0035
        */ throw new UnsupportedOperationException ( "Method not decompiled: kawa.lang.Translator.scanBody(java.lang.Object, gnu.expr.ScopeExp, boolean):gnu.lists.LList" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .