Source/sources/kawa/standard/object.java
public void rewriteClassDef(java.lang.Object[] r53, kawa.lang.Translator r54) {
        /*
            r52 = this;
            r6 = 0
            r38 = r53[r6]
            gnu.expr.ClassExp r38 = (gnu.expr.ClassExp) r38
            r6 = 1
            r17 = r53[r6]
            r6 = 2
            r27 = r53[r6]
            java.util.Vector r27 = (java.util.Vector) r27
            r6 = 3
            r34 = r53[r6]
            gnu.expr.LambdaExp r34 = (gnu.expr.LambdaExp) r34
            r6 = 4
            r46 = r53[r6]
            r6 = 5
            r14 = r53[r6]
            r0 = r34
            r1 = r38
            r1.firstChild = r0
            int r36 = kawa.lang.Translator.listLength(r46)
            if (r36 >= 0) goto L_0x002f
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object superclass specification not a list"
            r0 = r54
            r0.error(r6, r8)
            r36 = 0
        L_0x002f:
            r0 = r36
            gnu.expr.Expression[] r0 = new gnu.expr.Expression[r0]
            r48 = r0
            r21 = 0
        L_0x0037:
            r0 = r21
            r1 = r36
            if (r0 >= r1) goto L_0x0087
        L_0x003d:
            r0 = r46
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x004a
            kawa.lang.SyntaxForm r46 = (kawa.lang.SyntaxForm) r46
            java.lang.Object r46 = r46.getDatum()
            goto L_0x003d
        L_0x004a:
            r47 = r46
            gnu.lists.Pair r47 = (gnu.lists.Pair) r47
            r6 = 0
            r0 = r54
            r1 = r47
            gnu.expr.Expression r6 = r0.rewrite_car(r1, r6)
            r48[r21] = r6
            r6 = r48[r21]
            boolean r6 = r6 instanceof gnu.expr.ReferenceExp
            if (r6 == 0) goto L_0x0080
            r6 = r48[r21]
            gnu.expr.ReferenceExp r6 = (gnu.expr.ReferenceExp) r6
            gnu.expr.Declaration r6 = r6.getBinding()
            gnu.expr.Declaration r20 = gnu.expr.Declaration.followAliases(r6)
            if (r20 == 0) goto L_0x0080
            gnu.expr.Expression r49 = r20.getValue()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.ClassExp
            if (r6 == 0) goto L_0x0080
            gnu.expr.ClassExp r49 = (gnu.expr.ClassExp) r49
            r6 = 131072(0x20000, float:1.83671E-40)
            r0 = r49
            r0.setFlag(r6)
        L_0x0080:
            java.lang.Object r46 = r47.getCdr()
            int r21 = r21 + 1
            goto L_0x0037
        L_0x0087:
            if (r14 == 0) goto L_0x00ad
            r6 = r14
            gnu.lists.Pair r6 = (gnu.lists.Pair) r6
            r8 = 0
            r0 = r54
            gnu.expr.Expression r13 = r0.rewrite_car(r6, r8)
            java.lang.Object r16 = r13.valueIfConstant()
            r0 = r16
            boolean r0 = r0 instanceof java.lang.CharSequence
            r29 = r0
            if (r29 == 0) goto L_0x00e7
            java.lang.String r15 = r16.toString()
            int r6 = r15.length()
            if (r6 <= 0) goto L_0x00e7
            r0 = r38
            r0.classNameSpecifier = r15
        L_0x00ad:
            r0 = r48
            r1 = r38
            r1.supers = r0
            r0 = r38
            r1 = r54
            r0.setTypes(r1)
            int r31 = r27.size()
            r21 = 0
        L_0x00c0:
            r0 = r21
            r1 = r31
            if (r0 >= r1) goto L_0x00fe
            int r6 = r21 + 1
            r0 = r27
            java.lang.Object r22 = r0.elementAt(r6)
            if (r22 == 0) goto L_0x00e4
            r0 = r27
            r1 = r21
            java.lang.Object r6 = r0.elementAt(r1)
            gnu.lists.Pair r22 = (gnu.lists.Pair) r22
            r8 = 0
            r0 = r38
            r1 = r22
            r2 = r54
            rewriteInit(r6, r0, r1, r2, r8)
        L_0x00e4:
            int r21 = r21 + 2
            goto L_0x00c0
        L_0x00e7:
            r0 = r54
            java.lang.Object r43 = r0.pushPositionOf(r14)
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "class-name specifier must be a non-empty string literal"
            r0 = r54
            r0.error(r6, r8)
            r0 = r54
            r1 = r43
            r0.popPositionOf(r1)
            goto L_0x00ad
        L_0x00fe:
            r0 = r54
            r1 = r38
            r0.push(r1)
            r7 = r34
            r25 = 0
            r18 = 0
            r37 = r17
        L_0x010d:
            gnu.lists.LList r6 = gnu.lists.LList.Empty
            r0 = r37
            if (r0 == r6) goto L_0x032b
        L_0x0113:
            r0 = r37
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x0122
            r18 = r37
            kawa.lang.SyntaxForm r18 = (kawa.lang.SyntaxForm) r18
            java.lang.Object r37 = r18.getDatum()
            goto L_0x0113
        L_0x0122:
            r39 = r37
            gnu.lists.Pair r39 = (gnu.lists.Pair) r39
            r0 = r54
            r1 = r39
            java.lang.Object r44 = r0.pushPositionOf(r1)
            java.lang.Object r40 = r39.getCar()
            r33 = r18
        L_0x0134:
            r0 = r40
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x0143
            r33 = r40
            kawa.lang.SyntaxForm r33 = (kawa.lang.SyntaxForm) r33
            java.lang.Object r40 = r33.getDatum()
            goto L_0x0134
        L_0x0143:
            java.lang.Object r37 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0164
            r0 = r37
            boolean r6 = r0 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0164
            r0 = r37
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r6 = r0
            java.lang.Object r37 = r6.getCdr()     // Catch:{ all -> 0x0211 }
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            goto L_0x010d
        L_0x0164:
            r0 = r40
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r40 = r39.getCar()     // Catch:{ all -> 0x0211 }
            r32 = r33
        L_0x0170:
            r0 = r40
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0181
            r0 = r40
            kawa.lang.SyntaxForm r0 = (kawa.lang.SyntaxForm) r0     // Catch:{ all -> 0x0211 }
            r32 = r0
            java.lang.Object r40 = r32.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x0170
        L_0x0181:
            r0 = r40
            boolean r6 = r0 instanceof java.lang.String     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x0193
            r0 = r40
            boolean r6 = r0 instanceof gnu.mapping.Symbol     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x0193
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x02b0
        L_0x0193:
            r50 = 0
            r35 = 0
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01b5
            r12 = r39
        L_0x019f:
            r23 = 0
            r24 = 0
        L_0x01a3:
            gnu.lists.LList r6 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r12 == r6) goto L_0x0265
        L_0x01a7:
            boolean r6 = r12 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01ba
            r0 = r12
            kawa.lang.SyntaxForm r0 = (kawa.lang.SyntaxForm) r0     // Catch:{ all -> 0x0211 }
            r33 = r0
            java.lang.Object r12 = r33.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x01a7
        L_0x01b5:
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            goto L_0x019f
        L_0x01ba:
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r30 = r39.getCar()     // Catch:{ all -> 0x0211 }
        L_0x01c3:
            r0 = r30
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01d0
            kawa.lang.SyntaxForm r30 = (kawa.lang.SyntaxForm) r30     // Catch:{ all -> 0x0211 }
            java.lang.Object r30 = r30.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x01c3
        L_0x01d0:
            r0 = r54
            r1 = r39
            java.lang.Object r45 = r0.pushPositionOf(r1)     // Catch:{ all -> 0x0211 }
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.mapping.Symbol r6 = coloncolon     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x01e8
            r0 = r30
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0237
        L_0x01e8:
            boolean r6 = r12 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0237
            int r35 = r35 + 1
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r51 = r39.getCar()     // Catch:{ all -> 0x0211 }
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.mapping.Symbol r6 = coloncolon     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0207
            gnu.expr.Keyword r6 = typeKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 != r6) goto L_0x021a
        L_0x0207:
            r50 = r51
        L_0x0209:
            r0 = r54
            r1 = r45
            r0.popPositionOf(r1)     // Catch:{ all -> 0x0211 }
            goto L_0x01a3
        L_0x0211:
            r6 = move-exception
        L_0x0212:
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            throw r6
        L_0x021a:
            gnu.expr.Keyword r6 = initKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = initformKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = init_formKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = init_valueKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 != r6) goto L_0x0209
        L_0x0232:
            r23 = r39
            r24 = r33
            goto L_0x0209
        L_0x0237:
            gnu.lists.LList r6 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r12 != r6) goto L_0x0242
            if (r23 != 0) goto L_0x0242
            r23 = r39
            r24 = r33
            goto L_0x0209
        L_0x0242:
            boolean r6 = r12 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0264
            if (r35 != 0) goto L_0x0264
            if (r23 != 0) goto L_0x0264
            if (r50 != 0) goto L_0x0264
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r6 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.lists.LList r8 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r6 != r8) goto L_0x0264
            r50 = r30
            r23 = r39
            r24 = r33
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            goto L_0x0209
        L_0x0264:
            r12 = 0
        L_0x0265:
            if (r23 == 0) goto L_0x029b
            int r26 = r25 + 1
            r0 = r27
            r1 = r25
            java.lang.Object r19 = r0.elementAt(r1)     // Catch:{ all -> 0x0356 }
            r0 = r19
            boolean r6 = r0 instanceof gnu.expr.Declaration     // Catch:{ all -> 0x0356 }
            if (r6 == 0) goto L_0x02a4
            r0 = r19
            gnu.expr.Declaration r0 = (gnu.expr.Declaration) r0     // Catch:{ all -> 0x0356 }
            r6 = r0
            r8 = 2048(0x800, double:1.0118E-320)
            boolean r28 = r6.getFlag(r8)     // Catch:{ all -> 0x0356 }
        L_0x0282:
            int r25 = r26 + 1
            r0 = r27
            r1 = r26
            java.lang.Object r6 = r0.elementAt(r1)     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x029b
            r0 = r19
            r1 = r38
            r2 = r23
            r3 = r54
            r4 = r24
            rewriteInit(r0, r1, r2, r3, r4)     // Catch:{ all -> 0x0211 }
        L_0x029b:
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            goto L_0x010d
        L_0x02a4:
            java.lang.Boolean r6 = java.lang.Boolean.TRUE     // Catch:{ all -> 0x0356 }
            r0 = r19
            if (r0 != r6) goto L_0x02ad
            r28 = 1
            goto L_0x0282
        L_0x02ad:
            r28 = 0
            goto L_0x0282
        L_0x02b0:
            r0 = r40
            boolean r6 = r0 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0322
            gnu.expr.ScopeExp r42 = r54.currentScope()     // Catch:{ all -> 0x0211 }
            if (r33 == 0) goto L_0x02c5
            kawa.lang.TemplateScope r6 = r33.getScope()     // Catch:{ all -> 0x0211 }
            r0 = r54
            r0.setCurrentScope(r6)     // Catch:{ all -> 0x0211 }
        L_0x02c5:
            java.lang.String r6 = "*init*"
            java.lang.String r8 = r7.getName()     // Catch:{ all -> 0x0211 }
            boolean r6 = r6.equals(r8)     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x02d6
            gnu.bytecode.PrimType r6 = gnu.bytecode.Type.voidType     // Catch:{ all -> 0x0211 }
            r7.setReturnType(r6)     // Catch:{ all -> 0x0211 }
        L_0x02d6:
            r0 = r39
            kawa.lang.Translator.setLine(r7, r0)     // Catch:{ all -> 0x0211 }
            r0 = r54
            gnu.expr.LambdaExp r0 = r0.curMethodLambda     // Catch:{ all -> 0x0211 }
            r41 = r0
            r0 = r54
            r0.curMethodLambda = r7     // Catch:{ all -> 0x0211 }
            r0 = r52
            kawa.lang.Lambda r6 = r0.lambda     // Catch:{ all -> 0x0211 }
            r0 = r40
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r8 = r0
            java.lang.Object r8 = r8.getCdr()     // Catch:{ all -> 0x0211 }
            java.lang.Object r9 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            if (r32 == 0) goto L_0x0320
            if (r33 == 0) goto L_0x0304
            kawa.lang.TemplateScope r10 = r32.getScope()     // Catch:{ all -> 0x0211 }
            kawa.lang.TemplateScope r11 = r33.getScope()     // Catch:{ all -> 0x0211 }
            if (r10 == r11) goto L_0x0320
        L_0x0304:
            kawa.lang.TemplateScope r11 = r32.getScope()     // Catch:{ all -> 0x0211 }
        L_0x0308:
            r10 = r54
            r6.rewrite(r7, r8, r9, r10, r11)     // Catch:{ all -> 0x0211 }
            r0 = r41
            r1 = r54
            r1.curMethodLambda = r0     // Catch:{ all -> 0x0211 }
            if (r33 == 0) goto L_0x031c
            r0 = r54
            r1 = r42
            r0.setCurrentScope(r1)     // Catch:{ all -> 0x0211 }
        L_0x031c:
            gnu.expr.LambdaExp r7 = r7.nextSibling     // Catch:{ all -> 0x0211 }
            goto L_0x029b
        L_0x0320:
            r11 = 0
            goto L_0x0308
        L_0x0322:
            java.lang.String r6 = "invalid field/method definition"
            r0 = r54
            r0.syntaxError(r6)     // Catch:{ all -> 0x0211 }
            goto L_0x029b
        L_0x032b:
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.initMethod
            if (r6 == 0) goto L_0x0339
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.initMethod
            r0 = r38
            r6.outer = r0
        L_0x0339:
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.clinitMethod
            if (r6 == 0) goto L_0x0347
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.clinitMethod
            r0 = r38
            r6.outer = r0
        L_0x0347:
            r0 = r54
            r1 = r38
            r0.pop(r1)
            r0 = r38
            r1 = r54
            r0.declareParts(r1)
            return
        L_0x0356:
            r6 = move-exception
            r25 = r26
            goto L_0x0212
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.standard.object.rewriteClassDef(java.lang.Object[], kawa.lang.Translator):void");
    }
/* 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 void rewriteClassDef(java.lang.Object[] r53, kawa.lang.Translator r54) {
        /*
            r52 = this;
            r6 = 0
            r38 = r53[r6]
            gnu.expr.ClassExp r38 = (gnu.expr.ClassExp) r38
            r6 = 1
            r17 = r53[r6]
            r6 = 2
            r27 = r53[r6]
            java.util.Vector r27 = (java.util.Vector) r27
            r6 = 3
            r34 = r53[r6]
            gnu.expr.LambdaExp r34 = (gnu.expr.LambdaExp) r34
            r6 = 4
            r46 = r53[r6]
            r6 = 5
            r14 = r53[r6]
            r0 = r34
            r1 = r38
            r1.firstChild = r0
            int r36 = kawa.lang.Translator.listLength(r46)
            if (r36 >= 0) goto L_0x002f
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object superclass specification not a list"
            r0 = r54
            r0.error(r6, r8)
            r36 = 0
        L_0x002f:
            r0 = r36
            gnu.expr.Expression[] r0 = new gnu.expr.Expression[r0]
            r48 = r0
            r21 = 0
        L_0x0037:
            r0 = r21
            r1 = r36
            if (r0 >= r1) goto L_0x0087
        L_0x003d:
            r0 = r46
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x004a
            kawa.lang.SyntaxForm r46 = (kawa.lang.SyntaxForm) r46
            java.lang.Object r46 = r46.getDatum()
            goto L_0x003d
        L_0x004a:
            r47 = r46
            gnu.lists.Pair r47 = (gnu.lists.Pair) r47
            r6 = 0
            r0 = r54
            r1 = r47
            gnu.expr.Expression r6 = r0.rewrite_car(r1, r6)
            r48[r21] = r6
            r6 = r48[r21]
            boolean r6 = r6 instanceof gnu.expr.ReferenceExp
            if (r6 == 0) goto L_0x0080
            r6 = r48[r21]
            gnu.expr.ReferenceExp r6 = (gnu.expr.ReferenceExp) r6
            gnu.expr.Declaration r6 = r6.getBinding()
            gnu.expr.Declaration r20 = gnu.expr.Declaration.followAliases(r6)
            if (r20 == 0) goto L_0x0080
            gnu.expr.Expression r49 = r20.getValue()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.ClassExp
            if (r6 == 0) goto L_0x0080
            gnu.expr.ClassExp r49 = (gnu.expr.ClassExp) r49
            r6 = 131072(0x20000, float:1.83671E-40)
            r0 = r49
            r0.setFlag(r6)
        L_0x0080:
            java.lang.Object r46 = r47.getCdr()
            int r21 = r21 + 1
            goto L_0x0037
        L_0x0087:
            if (r14 == 0) goto L_0x00ad
            r6 = r14
            gnu.lists.Pair r6 = (gnu.lists.Pair) r6
            r8 = 0
            r0 = r54
            gnu.expr.Expression r13 = r0.rewrite_car(r6, r8)
            java.lang.Object r16 = r13.valueIfConstant()
            r0 = r16
            boolean r0 = r0 instanceof java.lang.CharSequence
            r29 = r0
            if (r29 == 0) goto L_0x00e7
            java.lang.String r15 = r16.toString()
            int r6 = r15.length()
            if (r6 <= 0) goto L_0x00e7
            r0 = r38
            r0.classNameSpecifier = r15
        L_0x00ad:
            r0 = r48
            r1 = r38
            r1.supers = r0
            r0 = r38
            r1 = r54
            r0.setTypes(r1)
            int r31 = r27.size()
            r21 = 0
        L_0x00c0:
            r0 = r21
            r1 = r31
            if (r0 >= r1) goto L_0x00fe
            int r6 = r21 + 1
            r0 = r27
            java.lang.Object r22 = r0.elementAt(r6)
            if (r22 == 0) goto L_0x00e4
            r0 = r27
            r1 = r21
            java.lang.Object r6 = r0.elementAt(r1)
            gnu.lists.Pair r22 = (gnu.lists.Pair) r22
            r8 = 0
            r0 = r38
            r1 = r22
            r2 = r54
            rewriteInit(r6, r0, r1, r2, r8)
        L_0x00e4:
            int r21 = r21 + 2
            goto L_0x00c0
        L_0x00e7:
            r0 = r54
            java.lang.Object r43 = r0.pushPositionOf(r14)
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "class-name specifier must be a non-empty string literal"
            r0 = r54
            r0.error(r6, r8)
            r0 = r54
            r1 = r43
            r0.popPositionOf(r1)
            goto L_0x00ad
        L_0x00fe:
            r0 = r54
            r1 = r38
            r0.push(r1)
            r7 = r34
            r25 = 0
            r18 = 0
            r37 = r17
        L_0x010d:
            gnu.lists.LList r6 = gnu.lists.LList.Empty
            r0 = r37
            if (r0 == r6) goto L_0x032b
        L_0x0113:
            r0 = r37
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x0122
            r18 = r37
            kawa.lang.SyntaxForm r18 = (kawa.lang.SyntaxForm) r18
            java.lang.Object r37 = r18.getDatum()
            goto L_0x0113
        L_0x0122:
            r39 = r37
            gnu.lists.Pair r39 = (gnu.lists.Pair) r39
            r0 = r54
            r1 = r39
            java.lang.Object r44 = r0.pushPositionOf(r1)
            java.lang.Object r40 = r39.getCar()
            r33 = r18
        L_0x0134:
            r0 = r40
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x0143
            r33 = r40
            kawa.lang.SyntaxForm r33 = (kawa.lang.SyntaxForm) r33
            java.lang.Object r40 = r33.getDatum()
            goto L_0x0134
        L_0x0143:
            java.lang.Object r37 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0164
            r0 = r37
            boolean r6 = r0 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0164
            r0 = r37
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r6 = r0
            java.lang.Object r37 = r6.getCdr()     // Catch:{ all -> 0x0211 }
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            goto L_0x010d
        L_0x0164:
            r0 = r40
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r40 = r39.getCar()     // Catch:{ all -> 0x0211 }
            r32 = r33
        L_0x0170:
            r0 = r40
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0181
            r0 = r40
            kawa.lang.SyntaxForm r0 = (kawa.lang.SyntaxForm) r0     // Catch:{ all -> 0x0211 }
            r32 = r0
            java.lang.Object r40 = r32.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x0170
        L_0x0181:
            r0 = r40
            boolean r6 = r0 instanceof java.lang.String     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x0193
            r0 = r40
            boolean r6 = r0 instanceof gnu.mapping.Symbol     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x0193
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x02b0
        L_0x0193:
            r50 = 0
            r35 = 0
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01b5
            r12 = r39
        L_0x019f:
            r23 = 0
            r24 = 0
        L_0x01a3:
            gnu.lists.LList r6 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r12 == r6) goto L_0x0265
        L_0x01a7:
            boolean r6 = r12 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01ba
            r0 = r12
            kawa.lang.SyntaxForm r0 = (kawa.lang.SyntaxForm) r0     // Catch:{ all -> 0x0211 }
            r33 = r0
            java.lang.Object r12 = r33.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x01a7
        L_0x01b5:
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            goto L_0x019f
        L_0x01ba:
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r30 = r39.getCar()     // Catch:{ all -> 0x0211 }
        L_0x01c3:
            r0 = r30
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01d0
            kawa.lang.SyntaxForm r30 = (kawa.lang.SyntaxForm) r30     // Catch:{ all -> 0x0211 }
            java.lang.Object r30 = r30.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x01c3
        L_0x01d0:
            r0 = r54
            r1 = r39
            java.lang.Object r45 = r0.pushPositionOf(r1)     // Catch:{ all -> 0x0211 }
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.mapping.Symbol r6 = coloncolon     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x01e8
            r0 = r30
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0237
        L_0x01e8:
            boolean r6 = r12 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0237
            int r35 = r35 + 1
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r51 = r39.getCar()     // Catch:{ all -> 0x0211 }
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.mapping.Symbol r6 = coloncolon     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0207
            gnu.expr.Keyword r6 = typeKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 != r6) goto L_0x021a
        L_0x0207:
            r50 = r51
        L_0x0209:
            r0 = r54
            r1 = r45
            r0.popPositionOf(r1)     // Catch:{ all -> 0x0211 }
            goto L_0x01a3
        L_0x0211:
            r6 = move-exception
        L_0x0212:
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            throw r6
        L_0x021a:
            gnu.expr.Keyword r6 = initKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = initformKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = init_formKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = init_valueKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 != r6) goto L_0x0209
        L_0x0232:
            r23 = r39
            r24 = r33
            goto L_0x0209
        L_0x0237:
            gnu.lists.LList r6 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r12 != r6) goto L_0x0242
            if (r23 != 0) goto L_0x0242
            r23 = r39
            r24 = r33
            goto L_0x0209
        L_0x0242:
            boolean r6 = r12 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0264
            if (r35 != 0) goto L_0x0264
            if (r23 != 0) goto L_0x0264
            if (r50 != 0) goto L_0x0264
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r6 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.lists.LList r8 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r6 != r8) goto L_0x0264
            r50 = r30
            r23 = r39
            r24 = r33
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            goto L_0x0209
        L_0x0264:
            r12 = 0
        L_0x0265:
            if (r23 == 0) goto L_0x029b
            int r26 = r25 + 1
            r0 = r27
            r1 = r25
            java.lang.Object r19 = r0.elementAt(r1)     // Catch:{ all -> 0x0356 }
            r0 = r19
            boolean r6 = r0 instanceof gnu.expr.Declaration     // Catch:{ all -> 0x0356 }
            if (r6 == 0) goto L_0x02a4
            r0 = r19
            gnu.expr.Declaration r0 = (gnu.expr.Declaration) r0     // Catch:{ all -> 0x0356 }
            r6 = r0
            r8 = 2048(0x800, double:1.0118E-320)
            boolean r28 = r6.getFlag(r8)     // Catch:{ all -> 0x0356 }
        L_0x0282:
            int r25 = r26 + 1
            r0 = r27
            r1 = r26
            java.lang.Object r6 = r0.elementAt(r1)     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x029b
            r0 = r19
            r1 = r38
            r2 = r23
            r3 = r54
            r4 = r24
            rewriteInit(r0, r1, r2, r3, r4)     // Catch:{ all -> 0x0211 }
        L_0x029b:
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            goto L_0x010d
        L_0x02a4:
            java.lang.Boolean r6 = java.lang.Boolean.TRUE     // Catch:{ all -> 0x0356 }
            r0 = r19
            if (r0 != r6) goto L_0x02ad
            r28 = 1
            goto L_0x0282
        L_0x02ad:
            r28 = 0
            goto L_0x0282
        L_0x02b0:
            r0 = r40
            boolean r6 = r0 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0322
            gnu.expr.ScopeExp r42 = r54.currentScope()     // Catch:{ all -> 0x0211 }
            if (r33 == 0) goto L_0x02c5
            kawa.lang.TemplateScope r6 = r33.getScope()     // Catch:{ all -> 0x0211 }
            r0 = r54
            r0.setCurrentScope(r6)     // Catch:{ all -> 0x0211 }
        L_0x02c5:
            java.lang.String r6 = "*init*"
            java.lang.String r8 = r7.getName()     // Catch:{ all -> 0x0211 }
            boolean r6 = r6.equals(r8)     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x02d6
            gnu.bytecode.PrimType r6 = gnu.bytecode.Type.voidType     // Catch:{ all -> 0x0211 }
            r7.setReturnType(r6)     // Catch:{ all -> 0x0211 }
        L_0x02d6:
            r0 = r39
            kawa.lang.Translator.setLine(r7, r0)     // Catch:{ all -> 0x0211 }
            r0 = r54
            gnu.expr.LambdaExp r0 = r0.curMethodLambda     // Catch:{ all -> 0x0211 }
            r41 = r0
            r0 = r54
            r0.curMethodLambda = r7     // Catch:{ all -> 0x0211 }
            r0 = r52
            kawa.lang.Lambda r6 = r0.lambda     // Catch:{ all -> 0x0211 }
            r0 = r40
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r8 = r0
            java.lang.Object r8 = r8.getCdr()     // Catch:{ all -> 0x0211 }
            java.lang.Object r9 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            if (r32 == 0) goto L_0x0320
            if (r33 == 0) goto L_0x0304
            kawa.lang.TemplateScope r10 = r32.getScope()     // Catch:{ all -> 0x0211 }
            kawa.lang.TemplateScope r11 = r33.getScope()     // Catch:{ all -> 0x0211 }
            if (r10 == r11) goto L_0x0320
        L_0x0304:
            kawa.lang.TemplateScope r11 = r32.getScope()     // Catch:{ all -> 0x0211 }
        L_0x0308:
            r10 = r54
            r6.rewrite(r7, r8, r9, r10, r11)     // Catch:{ all -> 0x0211 }
            r0 = r41
            r1 = r54
            r1.curMethodLambda = r0     // Catch:{ all -> 0x0211 }
            if (r33 == 0) goto L_0x031c
            r0 = r54
            r1 = r42
            r0.setCurrentScope(r1)     // Catch:{ all -> 0x0211 }
        L_0x031c:
            gnu.expr.LambdaExp r7 = r7.nextSibling     // Catch:{ all -> 0x0211 }
            goto L_0x029b
        L_0x0320:
            r11 = 0
            goto L_0x0308
        L_0x0322:
            java.lang.String r6 = "invalid field/method definition"
            r0 = r54
            r0.syntaxError(r6)     // Catch:{ all -> 0x0211 }
            goto L_0x029b
        L_0x032b:
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.initMethod
            if (r6 == 0) goto L_0x0339
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.initMethod
            r0 = r38
            r6.outer = r0
        L_0x0339:
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.clinitMethod
            if (r6 == 0) goto L_0x0347
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.clinitMethod
            r0 = r38
            r6.outer = r0
        L_0x0347:
            r0 = r54
            r1 = r38
            r0.pop(r1)
            r0 = r38
            r1 = r54
            r0.declareParts(r1)
            return
        L_0x0356:
            r6 = move-exception
            r25 = r26
            goto L_0x0212
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.standard.object.rewriteClassDef(java.lang.Object[], kawa.lang.Translator):void");
    }
public void rewriteClassDef ( java . lang . Object [ ] r53 , kawa . lang . Translator r54 ) { /*
            r52 = this;
            r6 = 0
            r38 = r53[r6]
            gnu.expr.ClassExp r38 = (gnu.expr.ClassExp) r38
            r6 = 1
            r17 = r53[r6]
            r6 = 2
            r27 = r53[r6]
            java.util.Vector r27 = (java.util.Vector) r27
            r6 = 3
            r34 = r53[r6]
            gnu.expr.LambdaExp r34 = (gnu.expr.LambdaExp) r34
            r6 = 4
            r46 = r53[r6]
            r6 = 5
            r14 = r53[r6]
            r0 = r34
            r1 = r38
            r1.firstChild = r0
            int r36 = kawa.lang.Translator.listLength(r46)
            if (r36 >= 0) goto L_0x002f
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object superclass specification not a list"
            r0 = r54
            r0.error(r6, r8)
            r36 = 0
        L_0x002f:
            r0 = r36
            gnu.expr.Expression[] r0 = new gnu.expr.Expression[r0]
            r48 = r0
            r21 = 0
        L_0x0037:
            r0 = r21
            r1 = r36
            if (r0 >= r1) goto L_0x0087
        L_0x003d:
            r0 = r46
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x004a
            kawa.lang.SyntaxForm r46 = (kawa.lang.SyntaxForm) r46
            java.lang.Object r46 = r46.getDatum()
            goto L_0x003d
        L_0x004a:
            r47 = r46
            gnu.lists.Pair r47 = (gnu.lists.Pair) r47
            r6 = 0
            r0 = r54
            r1 = r47
            gnu.expr.Expression r6 = r0.rewrite_car(r1, r6)
            r48[r21] = r6
            r6 = r48[r21]
            boolean r6 = r6 instanceof gnu.expr.ReferenceExp
            if (r6 == 0) goto L_0x0080
            r6 = r48[r21]
            gnu.expr.ReferenceExp r6 = (gnu.expr.ReferenceExp) r6
            gnu.expr.Declaration r6 = r6.getBinding()
            gnu.expr.Declaration r20 = gnu.expr.Declaration.followAliases(r6)
            if (r20 == 0) goto L_0x0080
            gnu.expr.Expression r49 = r20.getValue()
            r0 = r49
            boolean r6 = r0 instanceof gnu.expr.ClassExp
            if (r6 == 0) goto L_0x0080
            gnu.expr.ClassExp r49 = (gnu.expr.ClassExp) r49
            r6 = 131072(0x20000, float:1.83671E-40)
            r0 = r49
            r0.setFlag(r6)
        L_0x0080:
            java.lang.Object r46 = r47.getCdr()
            int r21 = r21 + 1
            goto L_0x0037
        L_0x0087:
            if (r14 == 0) goto L_0x00ad
            r6 = r14
            gnu.lists.Pair r6 = (gnu.lists.Pair) r6
            r8 = 0
            r0 = r54
            gnu.expr.Expression r13 = r0.rewrite_car(r6, r8)
            java.lang.Object r16 = r13.valueIfConstant()
            r0 = r16
            boolean r0 = r0 instanceof java.lang.CharSequence
            r29 = r0
            if (r29 == 0) goto L_0x00e7
            java.lang.String r15 = r16.toString()
            int r6 = r15.length()
            if (r6 <= 0) goto L_0x00e7
            r0 = r38
            r0.classNameSpecifier = r15
        L_0x00ad:
            r0 = r48
            r1 = r38
            r1.supers = r0
            r0 = r38
            r1 = r54
            r0.setTypes(r1)
            int r31 = r27.size()
            r21 = 0
        L_0x00c0:
            r0 = r21
            r1 = r31
            if (r0 >= r1) goto L_0x00fe
            int r6 = r21 + 1
            r0 = r27
            java.lang.Object r22 = r0.elementAt(r6)
            if (r22 == 0) goto L_0x00e4
            r0 = r27
            r1 = r21
            java.lang.Object r6 = r0.elementAt(r1)
            gnu.lists.Pair r22 = (gnu.lists.Pair) r22
            r8 = 0
            r0 = r38
            r1 = r22
            r2 = r54
            rewriteInit(r6, r0, r1, r2, r8)
        L_0x00e4:
            int r21 = r21 + 2
            goto L_0x00c0
        L_0x00e7:
            r0 = r54
            java.lang.Object r43 = r0.pushPositionOf(r14)
            r6 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "class-name specifier must be a non-empty string literal"
            r0 = r54
            r0.error(r6, r8)
            r0 = r54
            r1 = r43
            r0.popPositionOf(r1)
            goto L_0x00ad
        L_0x00fe:
            r0 = r54
            r1 = r38
            r0.push(r1)
            r7 = r34
            r25 = 0
            r18 = 0
            r37 = r17
        L_0x010d:
            gnu.lists.LList r6 = gnu.lists.LList.Empty
            r0 = r37
            if (r0 == r6) goto L_0x032b
        L_0x0113:
            r0 = r37
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x0122
            r18 = r37
            kawa.lang.SyntaxForm r18 = (kawa.lang.SyntaxForm) r18
            java.lang.Object r37 = r18.getDatum()
            goto L_0x0113
        L_0x0122:
            r39 = r37
            gnu.lists.Pair r39 = (gnu.lists.Pair) r39
            r0 = r54
            r1 = r39
            java.lang.Object r44 = r0.pushPositionOf(r1)
            java.lang.Object r40 = r39.getCar()
            r33 = r18
        L_0x0134:
            r0 = r40
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm
            if (r6 == 0) goto L_0x0143
            r33 = r40
            kawa.lang.SyntaxForm r33 = (kawa.lang.SyntaxForm) r33
            java.lang.Object r40 = r33.getDatum()
            goto L_0x0134
        L_0x0143:
            java.lang.Object r37 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0164
            r0 = r37
            boolean r6 = r0 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0164
            r0 = r37
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r6 = r0
            java.lang.Object r37 = r6.getCdr()     // Catch:{ all -> 0x0211 }
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            goto L_0x010d
        L_0x0164:
            r0 = r40
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r40 = r39.getCar()     // Catch:{ all -> 0x0211 }
            r32 = r33
        L_0x0170:
            r0 = r40
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0181
            r0 = r40
            kawa.lang.SyntaxForm r0 = (kawa.lang.SyntaxForm) r0     // Catch:{ all -> 0x0211 }
            r32 = r0
            java.lang.Object r40 = r32.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x0170
        L_0x0181:
            r0 = r40
            boolean r6 = r0 instanceof java.lang.String     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x0193
            r0 = r40
            boolean r6 = r0 instanceof gnu.mapping.Symbol     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x0193
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x02b0
        L_0x0193:
            r50 = 0
            r35 = 0
            r0 = r40
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01b5
            r12 = r39
        L_0x019f:
            r23 = 0
            r24 = 0
        L_0x01a3:
            gnu.lists.LList r6 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r12 == r6) goto L_0x0265
        L_0x01a7:
            boolean r6 = r12 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01ba
            r0 = r12
            kawa.lang.SyntaxForm r0 = (kawa.lang.SyntaxForm) r0     // Catch:{ all -> 0x0211 }
            r33 = r0
            java.lang.Object r12 = r33.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x01a7
        L_0x01b5:
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            goto L_0x019f
        L_0x01ba:
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r30 = r39.getCar()     // Catch:{ all -> 0x0211 }
        L_0x01c3:
            r0 = r30
            boolean r6 = r0 instanceof kawa.lang.SyntaxForm     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x01d0
            kawa.lang.SyntaxForm r30 = (kawa.lang.SyntaxForm) r30     // Catch:{ all -> 0x0211 }
            java.lang.Object r30 = r30.getDatum()     // Catch:{ all -> 0x0211 }
            goto L_0x01c3
        L_0x01d0:
            r0 = r54
            r1 = r39
            java.lang.Object r45 = r0.pushPositionOf(r1)     // Catch:{ all -> 0x0211 }
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.mapping.Symbol r6 = coloncolon     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x01e8
            r0 = r30
            boolean r6 = r0 instanceof gnu.expr.Keyword     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0237
        L_0x01e8:
            boolean r6 = r12 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0237
            int r35 = r35 + 1
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r51 = r39.getCar()     // Catch:{ all -> 0x0211 }
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.mapping.Symbol r6 = coloncolon     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0207
            gnu.expr.Keyword r6 = typeKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 != r6) goto L_0x021a
        L_0x0207:
            r50 = r51
        L_0x0209:
            r0 = r54
            r1 = r45
            r0.popPositionOf(r1)     // Catch:{ all -> 0x0211 }
            goto L_0x01a3
        L_0x0211:
            r6 = move-exception
        L_0x0212:
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            throw r6
        L_0x021a:
            gnu.expr.Keyword r6 = initKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = initformKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = init_formKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 == r6) goto L_0x0232
            gnu.expr.Keyword r6 = init_valueKeyword     // Catch:{ all -> 0x0211 }
            r0 = r30
            if (r0 != r6) goto L_0x0209
        L_0x0232:
            r23 = r39
            r24 = r33
            goto L_0x0209
        L_0x0237:
            gnu.lists.LList r6 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r12 != r6) goto L_0x0242
            if (r23 != 0) goto L_0x0242
            r23 = r39
            r24 = r33
            goto L_0x0209
        L_0x0242:
            boolean r6 = r12 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0264
            if (r35 != 0) goto L_0x0264
            if (r23 != 0) goto L_0x0264
            if (r50 != 0) goto L_0x0264
            r0 = r12
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r39 = r0
            java.lang.Object r6 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            gnu.lists.LList r8 = gnu.lists.LList.Empty     // Catch:{ all -> 0x0211 }
            if (r6 != r8) goto L_0x0264
            r50 = r30
            r23 = r39
            r24 = r33
            java.lang.Object r12 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            goto L_0x0209
        L_0x0264:
            r12 = 0
        L_0x0265:
            if (r23 == 0) goto L_0x029b
            int r26 = r25 + 1
            r0 = r27
            r1 = r25
            java.lang.Object r19 = r0.elementAt(r1)     // Catch:{ all -> 0x0356 }
            r0 = r19
            boolean r6 = r0 instanceof gnu.expr.Declaration     // Catch:{ all -> 0x0356 }
            if (r6 == 0) goto L_0x02a4
            r0 = r19
            gnu.expr.Declaration r0 = (gnu.expr.Declaration) r0     // Catch:{ all -> 0x0356 }
            r6 = r0
            r8 = 2048(0x800, double:1.0118E-320)
            boolean r28 = r6.getFlag(r8)     // Catch:{ all -> 0x0356 }
        L_0x0282:
            int r25 = r26 + 1
            r0 = r27
            r1 = r26
            java.lang.Object r6 = r0.elementAt(r1)     // Catch:{ all -> 0x0211 }
            if (r6 != 0) goto L_0x029b
            r0 = r19
            r1 = r38
            r2 = r23
            r3 = r54
            r4 = r24
            rewriteInit(r0, r1, r2, r3, r4)     // Catch:{ all -> 0x0211 }
        L_0x029b:
            r0 = r54
            r1 = r44
            r0.popPositionOf(r1)
            goto L_0x010d
        L_0x02a4:
            java.lang.Boolean r6 = java.lang.Boolean.TRUE     // Catch:{ all -> 0x0356 }
            r0 = r19
            if (r0 != r6) goto L_0x02ad
            r28 = 1
            goto L_0x0282
        L_0x02ad:
            r28 = 0
            goto L_0x0282
        L_0x02b0:
            r0 = r40
            boolean r6 = r0 instanceof gnu.lists.Pair     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x0322
            gnu.expr.ScopeExp r42 = r54.currentScope()     // Catch:{ all -> 0x0211 }
            if (r33 == 0) goto L_0x02c5
            kawa.lang.TemplateScope r6 = r33.getScope()     // Catch:{ all -> 0x0211 }
            r0 = r54
            r0.setCurrentScope(r6)     // Catch:{ all -> 0x0211 }
        L_0x02c5:
            java.lang.String r6 = "*init*"
            java.lang.String r8 = r7.getName()     // Catch:{ all -> 0x0211 }
            boolean r6 = r6.equals(r8)     // Catch:{ all -> 0x0211 }
            if (r6 == 0) goto L_0x02d6
            gnu.bytecode.PrimType r6 = gnu.bytecode.Type.voidType     // Catch:{ all -> 0x0211 }
            r7.setReturnType(r6)     // Catch:{ all -> 0x0211 }
        L_0x02d6:
            r0 = r39
            kawa.lang.Translator.setLine(r7, r0)     // Catch:{ all -> 0x0211 }
            r0 = r54
            gnu.expr.LambdaExp r0 = r0.curMethodLambda     // Catch:{ all -> 0x0211 }
            r41 = r0
            r0 = r54
            r0.curMethodLambda = r7     // Catch:{ all -> 0x0211 }
            r0 = r52
            kawa.lang.Lambda r6 = r0.lambda     // Catch:{ all -> 0x0211 }
            r0 = r40
            gnu.lists.Pair r0 = (gnu.lists.Pair) r0     // Catch:{ all -> 0x0211 }
            r8 = r0
            java.lang.Object r8 = r8.getCdr()     // Catch:{ all -> 0x0211 }
            java.lang.Object r9 = r39.getCdr()     // Catch:{ all -> 0x0211 }
            if (r32 == 0) goto L_0x0320
            if (r33 == 0) goto L_0x0304
            kawa.lang.TemplateScope r10 = r32.getScope()     // Catch:{ all -> 0x0211 }
            kawa.lang.TemplateScope r11 = r33.getScope()     // Catch:{ all -> 0x0211 }
            if (r10 == r11) goto L_0x0320
        L_0x0304:
            kawa.lang.TemplateScope r11 = r32.getScope()     // Catch:{ all -> 0x0211 }
        L_0x0308:
            r10 = r54
            r6.rewrite(r7, r8, r9, r10, r11)     // Catch:{ all -> 0x0211 }
            r0 = r41
            r1 = r54
            r1.curMethodLambda = r0     // Catch:{ all -> 0x0211 }
            if (r33 == 0) goto L_0x031c
            r0 = r54
            r1 = r42
            r0.setCurrentScope(r1)     // Catch:{ all -> 0x0211 }
        L_0x031c:
            gnu.expr.LambdaExp r7 = r7.nextSibling     // Catch:{ all -> 0x0211 }
            goto L_0x029b
        L_0x0320:
            r11 = 0
            goto L_0x0308
        L_0x0322:
            java.lang.String r6 = "invalid field/method definition"
            r0 = r54
            r0.syntaxError(r6)     // Catch:{ all -> 0x0211 }
            goto L_0x029b
        L_0x032b:
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.initMethod
            if (r6 == 0) goto L_0x0339
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.initMethod
            r0 = r38
            r6.outer = r0
        L_0x0339:
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.clinitMethod
            if (r6 == 0) goto L_0x0347
            r0 = r38
            gnu.expr.LambdaExp r6 = r0.clinitMethod
            r0 = r38
            r6.outer = r0
        L_0x0347:
            r0 = r54
            r1 = r38
            r0.pop(r1)
            r0 = r38
            r1 = r54
            r0.declareParts(r1)
            return
        L_0x0356:
            r6 = move-exception
            r25 = r26
            goto L_0x0212
        */ throw new UnsupportedOperationException ( "Method not decompiled: kawa.standard.object.rewriteClassDef(java.lang.Object[], kawa.lang.Translator):void" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .