Source/sources/kawa/standard/object.java
public java.lang.Object[] scanClassDef(gnu.lists.Pair r43, gnu.expr.ClassExp r44, kawa.lang.Translator r45) {
        /*
            r42 = this;
            r45.mustCompileHere()
            java.lang.Object r39 = r43.getCar()
            java.lang.Object r18 = r43.getCdr()
            r17 = 0
            r27 = 0
            r25 = 0
            r6 = 0
            java.util.Vector r21 = new java.util.Vector
            r5 = 20
            r0 = r21
            r0.<init>(r5)
            r31 = r18
        L_0x001e:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r31
            if (r0 == r5) goto L_0x042c
        L_0x0024:
            r0 = r31
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0031
            kawa.lang.SyntaxForm r31 = (kawa.lang.SyntaxForm) r31
            java.lang.Object r31 = r31.getDatum()
            goto L_0x0024
        L_0x0031:
            r0 = r31
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 != 0) goto L_0x0043
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object member not a list"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
        L_0x0042:
            return r33
        L_0x0043:
            r43 = r31
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r32 = r43.getCar()
        L_0x004b:
            r0 = r32
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0058
            kawa.lang.SyntaxForm r32 = (kawa.lang.SyntaxForm) r32
            java.lang.Object r32 = r32.getDatum()
            goto L_0x004b
        L_0x0058:
            java.lang.Object r31 = r43.getCdr()
            r0 = r45
            r1 = r43
            java.lang.Object r34 = r0.pushPositionOf(r1)
            r0 = r32
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x011a
        L_0x006a:
            r0 = r31
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0077
            kawa.lang.SyntaxForm r31 = (kawa.lang.SyntaxForm) r31
            java.lang.Object r31 = r31.getDatum()
            goto L_0x006a
        L_0x0077:
            r0 = r31
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x011a
            gnu.expr.Keyword r5 = interfaceKeyword
            r0 = r32
            if (r0 != r5) goto L_0x00b0
            r5 = r31
            gnu.lists.Pair r5 = (gnu.lists.Pair) r5
            java.lang.Object r41 = r5.getCar()
            java.lang.Boolean r5 = java.lang.Boolean.FALSE
            r0 = r41
            if (r0 != r5) goto L_0x00a7
            r5 = 65536(0x10000, float:9.18355E-41)
            r0 = r44
            r0.setFlag(r5)
        L_0x0098:
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x00a7:
            r5 = 32768(0x8000, float:4.5918E-41)
            r0 = r44
            r0.setFlag(r5)
            goto L_0x0098
        L_0x00b0:
            gnu.expr.Keyword r5 = classNameKeyword
            r0 = r32
            if (r0 != r5) goto L_0x00d2
            if (r17 == 0) goto L_0x00c1
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate class-name specifiers"
            r0 = r45
            r0.error(r5, r8)
        L_0x00c1:
            r17 = r31
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x00d2:
            gnu.expr.Keyword r5 = accessKeyword
            r0 = r32
            if (r0 != r5) goto L_0x011a
            r0 = r45
            r1 = r31
            java.lang.Object r35 = r0.pushPositionOf(r1)
            r5 = r31
            gnu.lists.Pair r5 = (gnu.lists.Pair) r5
            java.lang.Object r5 = r5.getCar()
            r8 = 25820135424(0x603000000, double:1.2756841884E-313)
            java.lang.String r10 = "class"
            r11 = r45
            long r6 = addAccessFlags(r5, r6, r8, r10, r11)
            r0 = r44
            gnu.expr.Declaration r5 = r0.nameDecl
            if (r5 != 0) goto L_0x0104
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "access specifier for anonymous class"
            r0 = r45
            r0.error(r5, r8)
        L_0x0104:
            r0 = r45
            r1 = r35
            r0.popPositionOf(r1)
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x011a:
            r0 = r32
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 != 0) goto L_0x012d
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object member not a list"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x012d:
            r43 = r32
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r32 = r43.getCar()
        L_0x0135:
            r0 = r32
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0142
            kawa.lang.SyntaxForm r32 = (kawa.lang.SyntaxForm) r32
            java.lang.Object r32 = r32.getDatum()
            goto L_0x0135
        L_0x0142:
            r0 = r32
            boolean r5 = r0 instanceof java.lang.String
            if (r5 != 0) goto L_0x0154
            r0 = r32
            boolean r5 = r0 instanceof gnu.mapping.Symbol
            if (r5 != 0) goto L_0x0154
            r0 = r32
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x03d7
        L_0x0154:
            r40 = 0
            r38 = r32
            r4 = 0
            r10 = 0
            r0 = r38
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x0180
            r19 = 0
            r16 = r43
        L_0x0165:
            r30 = 0
            r37 = 0
            r20 = 0
        L_0x016b:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 == r5) goto L_0x0329
            r5 = r16
        L_0x0173:
            boolean r8 = r5 instanceof kawa.lang.SyntaxForm
            if (r8 == 0) goto L_0x01a2
            kawa.lang.SyntaxForm r5 = (kawa.lang.SyntaxForm) r5
            java.lang.Object r16 = r5.getDatum()
            r5 = r16
            goto L_0x0173
        L_0x0180:
            r0 = r44
            r1 = r38
            gnu.expr.Declaration r19 = r0.addDeclaration(r1)
            r5 = 0
            r0 = r19
            r0.setSimple(r5)
            r12 = 1048576(0x100000, double:5.180654E-318)
            r0 = r19
            r0.setFlag(r12)
            r0 = r19
            r1 = r43
            kawa.lang.Translator.setLine(r0, r1)
            java.lang.Object r16 = r43.getCdr()
            goto L_0x0165
        L_0x01a2:
            r43 = r5
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            r24 = r43
            java.lang.Object r23 = r43.getCar()
        L_0x01ac:
            r0 = r23
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x01b9
            kawa.lang.SyntaxForm r23 = (kawa.lang.SyntaxForm) r23
            java.lang.Object r23 = r23.getDatum()
            goto L_0x01ac
        L_0x01b9:
            r0 = r45
            r1 = r43
            java.lang.Object r35 = r0.pushPositionOf(r1)
            java.lang.Object r16 = r43.getCdr()
            gnu.mapping.Symbol r5 = coloncolon
            r0 = r23
            if (r0 == r5) goto L_0x01d1
            r0 = r23
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x02f5
        L_0x01d1:
            r0 = r16
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x02f5
            int r30 = r30 + 1
            r43 = r16
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r9 = r43.getCar()
            java.lang.Object r16 = r43.getCdr()
            gnu.mapping.Symbol r5 = coloncolon
            r0 = r23
            if (r0 == r5) goto L_0x01f1
            gnu.expr.Keyword r5 = typeKeyword
            r0 = r23
            if (r0 != r5) goto L_0x01fc
        L_0x01f1:
            r40 = r43
        L_0x01f3:
            r0 = r45
            r1 = r35
            r0.popPositionOf(r1)
            goto L_0x016b
        L_0x01fc:
            gnu.expr.Keyword r5 = allocationKeyword
            r0 = r23
            if (r0 != r5) goto L_0x0252
            if (r4 == 0) goto L_0x020d
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate allocation: specification"
            r0 = r45
            r0.error(r5, r8)
        L_0x020d:
            java.lang.String r5 = "class"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 != 0) goto L_0x0221
            java.lang.String r5 = "static"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 == 0) goto L_0x0224
        L_0x0221:
            r4 = 2048(0x800, float:2.87E-42)
            goto L_0x01f3
        L_0x0224:
            java.lang.String r5 = "instance"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 == 0) goto L_0x0231
            r4 = 4096(0x1000, float:5.74E-42)
            goto L_0x01f3
        L_0x0231:
            r5 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r8 = new java.lang.StringBuilder
            r8.<init>()
            java.lang.String r12 = "unknown allocation kind '"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.StringBuilder r8 = r8.append(r9)
            java.lang.String r12 = "'"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.String r8 = r8.toString()
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x0252:
            gnu.expr.Keyword r5 = initKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = initformKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = init_formKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = init_valueKeyword
            r0 = r23
            if (r0 != r5) goto L_0x0281
        L_0x026a:
            if (r37 == 0) goto L_0x0275
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate initialization"
            r0 = r45
            r0.error(r5, r8)
        L_0x0275:
            r37 = 1
            gnu.expr.Keyword r5 = initKeyword
            r0 = r23
            if (r0 == r5) goto L_0x01f3
            r20 = r43
            goto L_0x01f3
        L_0x0281:
            gnu.expr.Keyword r5 = init_keywordKeyword
            r0 = r23
            if (r0 != r5) goto L_0x02ad
            boolean r5 = r9 instanceof gnu.expr.Keyword
            if (r5 != 0) goto L_0x0296
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "invalid 'init-keyword' - not a keyword"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x0296:
            gnu.expr.Keyword r9 = (gnu.expr.Keyword) r9
            java.lang.String r5 = r9.getName()
            java.lang.String r8 = r38.toString()
            if (r5 == r8) goto L_0x01f3
            r5 = 119(0x77, float:1.67E-43)
            java.lang.String r8 = "init-keyword option ignored"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x02ad:
            gnu.expr.Keyword r5 = accessKeyword
            r0 = r23
            if (r0 != r5) goto L_0x02d1
            r0 = r45
            r1 = r43
            java.lang.Object r36 = r0.pushPositionOf(r1)
            r12 = 32463912960(0x78f000000, double:1.6039304123E-313)
            java.lang.String r14 = "field"
            r15 = r45
            long r10 = addAccessFlags(r9, r10, r12, r14, r15)
            r0 = r45
            r1 = r36
            r0.popPositionOf(r1)
            goto L_0x01f3
        L_0x02d1:
            r5 = 119(0x77, float:1.67E-43)
            java.lang.StringBuilder r8 = new java.lang.StringBuilder
            r8.<init>()
            java.lang.String r12 = "unknown slot keyword '"
            java.lang.StringBuilder r8 = r8.append(r12)
            r0 = r23
            java.lang.StringBuilder r8 = r8.append(r0)
            java.lang.String r12 = "'"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.String r8 = r8.toString()
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x02f5:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 != r5) goto L_0x0303
            if (r37 != 0) goto L_0x0303
            r20 = r24
            r37 = 1
            goto L_0x01f3
        L_0x0303:
            r0 = r16
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x0327
            if (r30 != 0) goto L_0x0327
            if (r37 != 0) goto L_0x0327
            if (r40 != 0) goto L_0x0327
            r43 = r16
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r5 = r43.getCdr()
            gnu.lists.LList r8 = gnu.lists.LList.Empty
            if (r5 != r8) goto L_0x0327
            r40 = r24
            r20 = r43
            java.lang.Object r16 = r43.getCdr()
            r37 = 1
            goto L_0x01f3
        L_0x0327:
            r16 = 0
        L_0x0329:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 == r5) goto L_0x036c
            r8 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            java.lang.String r12 = "invalid argument list for slot '"
            java.lang.StringBuilder r5 = r5.append(r12)
            r0 = r38
            java.lang.StringBuilder r5 = r5.append(r0)
            r12 = 39
            java.lang.StringBuilder r5 = r5.append(r12)
            java.lang.String r12 = " args:"
            java.lang.StringBuilder r12 = r5.append(r12)
            if (r16 != 0) goto L_0x0363
            java.lang.String r5 = "null"
        L_0x0352:
            java.lang.StringBuilder r5 = r12.append(r5)
            java.lang.String r5 = r5.toString()
            r0 = r45
            r0.error(r8, r5)
            r33 = 0
            goto L_0x0042
        L_0x0363:
            java.lang.Class r5 = r16.getClass()
            java.lang.String r5 = r5.getName()
            goto L_0x0352
        L_0x036c:
            if (r37 == 0) goto L_0x0384
            r5 = 2048(0x800, float:2.87E-42)
            if (r4 != r5) goto L_0x0395
            r22 = 1
        L_0x0374:
            if (r19 == 0) goto L_0x0398
            r5 = r19
        L_0x0378:
            r0 = r21
            r0.addElement(r5)
            r0 = r21
            r1 = r20
            r0.addElement(r1)
        L_0x0384:
            if (r19 != 0) goto L_0x03a0
            if (r37 != 0) goto L_0x03ce
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "missing field name"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x0395:
            r22 = 0
            goto L_0x0374
        L_0x0398:
            if (r22 == 0) goto L_0x039d
            java.lang.Boolean r5 = java.lang.Boolean.TRUE
            goto L_0x0378
        L_0x039d:
            java.lang.Boolean r5 = java.lang.Boolean.FALSE
            goto L_0x0378
        L_0x03a0:
            if (r40 == 0) goto L_0x03af
            r0 = r45
            r1 = r40
            gnu.bytecode.Type r5 = r0.exp2Type(r1)
            r0 = r19
            r0.setType(r5)
        L_0x03af:
            if (r4 == 0) goto L_0x03b7
            long r12 = (long) r4
            r0 = r19
            r0.setFlag(r12)
        L_0x03b7:
            r12 = 0
            int r5 = (r10 > r12 ? 1 : (r10 == r12 ? 0 : -1))
            if (r5 == 0) goto L_0x03c2
            r0 = r19
            r0.setFlag(r10)
        L_0x03c2:
            r5 = 1
            r0 = r19
            r0.setCanRead(r5)
            r5 = 1
            r0 = r19
            r0.setCanWrite(r5)
        L_0x03ce:
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x03d7:
            r0 = r32
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x0422
            r29 = r32
            gnu.lists.Pair r29 = (gnu.lists.Pair) r29
            java.lang.Object r28 = r29.getCar()
            r0 = r28
            boolean r5 = r0 instanceof java.lang.String
            if (r5 != 0) goto L_0x03fe
            r0 = r28
            boolean r5 = r0 instanceof gnu.mapping.Symbol
            if (r5 != 0) goto L_0x03fe
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "missing method name"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x03fe:
            gnu.expr.LambdaExp r26 = new gnu.expr.LambdaExp
            r26.<init>()
            r0 = r44
            r1 = r26
            r2 = r28
            gnu.expr.Declaration r19 = r0.addMethod(r1, r2)
            r0 = r19
            r1 = r29
            kawa.lang.Translator.setLine(r0, r1)
            if (r25 != 0) goto L_0x041b
            r27 = r26
        L_0x0418:
            r25 = r26
            goto L_0x03ce
        L_0x041b:
            r0 = r26
            r1 = r25
            r1.nextSibling = r0
            goto L_0x0418
        L_0x0422:
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "invalid field/method definition"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x03ce
        L_0x042c:
            r12 = 0
            int r5 = (r6 > r12 ? 1 : (r6 == r12 ? 0 : -1))
            if (r5 == 0) goto L_0x0439
            r0 = r44
            gnu.expr.Declaration r5 = r0.nameDecl
            r5.setFlag(r6)
        L_0x0439:
            r5 = 6
            java.lang.Object[] r0 = new java.lang.Object[r5]
            r33 = r0
            r5 = 0
            r33[r5] = r44
            r5 = 1
            r33[r5] = r18
            r5 = 2
            r33[r5] = r21
            r5 = 3
            r33[r5] = r27
            r5 = 4
            r33[r5] = r39
            r5 = 5
            r33[r5] = r17
            goto L_0x0042
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.standard.object.scanClassDef(gnu.lists.Pair, gnu.expr.ClassExp, 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[] scanClassDef(gnu.lists.Pair r43, gnu.expr.ClassExp r44, kawa.lang.Translator r45) {
        /*
            r42 = this;
            r45.mustCompileHere()
            java.lang.Object r39 = r43.getCar()
            java.lang.Object r18 = r43.getCdr()
            r17 = 0
            r27 = 0
            r25 = 0
            r6 = 0
            java.util.Vector r21 = new java.util.Vector
            r5 = 20
            r0 = r21
            r0.<init>(r5)
            r31 = r18
        L_0x001e:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r31
            if (r0 == r5) goto L_0x042c
        L_0x0024:
            r0 = r31
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0031
            kawa.lang.SyntaxForm r31 = (kawa.lang.SyntaxForm) r31
            java.lang.Object r31 = r31.getDatum()
            goto L_0x0024
        L_0x0031:
            r0 = r31
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 != 0) goto L_0x0043
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object member not a list"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
        L_0x0042:
            return r33
        L_0x0043:
            r43 = r31
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r32 = r43.getCar()
        L_0x004b:
            r0 = r32
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0058
            kawa.lang.SyntaxForm r32 = (kawa.lang.SyntaxForm) r32
            java.lang.Object r32 = r32.getDatum()
            goto L_0x004b
        L_0x0058:
            java.lang.Object r31 = r43.getCdr()
            r0 = r45
            r1 = r43
            java.lang.Object r34 = r0.pushPositionOf(r1)
            r0 = r32
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x011a
        L_0x006a:
            r0 = r31
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0077
            kawa.lang.SyntaxForm r31 = (kawa.lang.SyntaxForm) r31
            java.lang.Object r31 = r31.getDatum()
            goto L_0x006a
        L_0x0077:
            r0 = r31
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x011a
            gnu.expr.Keyword r5 = interfaceKeyword
            r0 = r32
            if (r0 != r5) goto L_0x00b0
            r5 = r31
            gnu.lists.Pair r5 = (gnu.lists.Pair) r5
            java.lang.Object r41 = r5.getCar()
            java.lang.Boolean r5 = java.lang.Boolean.FALSE
            r0 = r41
            if (r0 != r5) goto L_0x00a7
            r5 = 65536(0x10000, float:9.18355E-41)
            r0 = r44
            r0.setFlag(r5)
        L_0x0098:
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x00a7:
            r5 = 32768(0x8000, float:4.5918E-41)
            r0 = r44
            r0.setFlag(r5)
            goto L_0x0098
        L_0x00b0:
            gnu.expr.Keyword r5 = classNameKeyword
            r0 = r32
            if (r0 != r5) goto L_0x00d2
            if (r17 == 0) goto L_0x00c1
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate class-name specifiers"
            r0 = r45
            r0.error(r5, r8)
        L_0x00c1:
            r17 = r31
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x00d2:
            gnu.expr.Keyword r5 = accessKeyword
            r0 = r32
            if (r0 != r5) goto L_0x011a
            r0 = r45
            r1 = r31
            java.lang.Object r35 = r0.pushPositionOf(r1)
            r5 = r31
            gnu.lists.Pair r5 = (gnu.lists.Pair) r5
            java.lang.Object r5 = r5.getCar()
            r8 = 25820135424(0x603000000, double:1.2756841884E-313)
            java.lang.String r10 = "class"
            r11 = r45
            long r6 = addAccessFlags(r5, r6, r8, r10, r11)
            r0 = r44
            gnu.expr.Declaration r5 = r0.nameDecl
            if (r5 != 0) goto L_0x0104
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "access specifier for anonymous class"
            r0 = r45
            r0.error(r5, r8)
        L_0x0104:
            r0 = r45
            r1 = r35
            r0.popPositionOf(r1)
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x011a:
            r0 = r32
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 != 0) goto L_0x012d
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object member not a list"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x012d:
            r43 = r32
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r32 = r43.getCar()
        L_0x0135:
            r0 = r32
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0142
            kawa.lang.SyntaxForm r32 = (kawa.lang.SyntaxForm) r32
            java.lang.Object r32 = r32.getDatum()
            goto L_0x0135
        L_0x0142:
            r0 = r32
            boolean r5 = r0 instanceof java.lang.String
            if (r5 != 0) goto L_0x0154
            r0 = r32
            boolean r5 = r0 instanceof gnu.mapping.Symbol
            if (r5 != 0) goto L_0x0154
            r0 = r32
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x03d7
        L_0x0154:
            r40 = 0
            r38 = r32
            r4 = 0
            r10 = 0
            r0 = r38
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x0180
            r19 = 0
            r16 = r43
        L_0x0165:
            r30 = 0
            r37 = 0
            r20 = 0
        L_0x016b:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 == r5) goto L_0x0329
            r5 = r16
        L_0x0173:
            boolean r8 = r5 instanceof kawa.lang.SyntaxForm
            if (r8 == 0) goto L_0x01a2
            kawa.lang.SyntaxForm r5 = (kawa.lang.SyntaxForm) r5
            java.lang.Object r16 = r5.getDatum()
            r5 = r16
            goto L_0x0173
        L_0x0180:
            r0 = r44
            r1 = r38
            gnu.expr.Declaration r19 = r0.addDeclaration(r1)
            r5 = 0
            r0 = r19
            r0.setSimple(r5)
            r12 = 1048576(0x100000, double:5.180654E-318)
            r0 = r19
            r0.setFlag(r12)
            r0 = r19
            r1 = r43
            kawa.lang.Translator.setLine(r0, r1)
            java.lang.Object r16 = r43.getCdr()
            goto L_0x0165
        L_0x01a2:
            r43 = r5
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            r24 = r43
            java.lang.Object r23 = r43.getCar()
        L_0x01ac:
            r0 = r23
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x01b9
            kawa.lang.SyntaxForm r23 = (kawa.lang.SyntaxForm) r23
            java.lang.Object r23 = r23.getDatum()
            goto L_0x01ac
        L_0x01b9:
            r0 = r45
            r1 = r43
            java.lang.Object r35 = r0.pushPositionOf(r1)
            java.lang.Object r16 = r43.getCdr()
            gnu.mapping.Symbol r5 = coloncolon
            r0 = r23
            if (r0 == r5) goto L_0x01d1
            r0 = r23
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x02f5
        L_0x01d1:
            r0 = r16
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x02f5
            int r30 = r30 + 1
            r43 = r16
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r9 = r43.getCar()
            java.lang.Object r16 = r43.getCdr()
            gnu.mapping.Symbol r5 = coloncolon
            r0 = r23
            if (r0 == r5) goto L_0x01f1
            gnu.expr.Keyword r5 = typeKeyword
            r0 = r23
            if (r0 != r5) goto L_0x01fc
        L_0x01f1:
            r40 = r43
        L_0x01f3:
            r0 = r45
            r1 = r35
            r0.popPositionOf(r1)
            goto L_0x016b
        L_0x01fc:
            gnu.expr.Keyword r5 = allocationKeyword
            r0 = r23
            if (r0 != r5) goto L_0x0252
            if (r4 == 0) goto L_0x020d
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate allocation: specification"
            r0 = r45
            r0.error(r5, r8)
        L_0x020d:
            java.lang.String r5 = "class"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 != 0) goto L_0x0221
            java.lang.String r5 = "static"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 == 0) goto L_0x0224
        L_0x0221:
            r4 = 2048(0x800, float:2.87E-42)
            goto L_0x01f3
        L_0x0224:
            java.lang.String r5 = "instance"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 == 0) goto L_0x0231
            r4 = 4096(0x1000, float:5.74E-42)
            goto L_0x01f3
        L_0x0231:
            r5 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r8 = new java.lang.StringBuilder
            r8.<init>()
            java.lang.String r12 = "unknown allocation kind '"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.StringBuilder r8 = r8.append(r9)
            java.lang.String r12 = "'"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.String r8 = r8.toString()
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x0252:
            gnu.expr.Keyword r5 = initKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = initformKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = init_formKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = init_valueKeyword
            r0 = r23
            if (r0 != r5) goto L_0x0281
        L_0x026a:
            if (r37 == 0) goto L_0x0275
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate initialization"
            r0 = r45
            r0.error(r5, r8)
        L_0x0275:
            r37 = 1
            gnu.expr.Keyword r5 = initKeyword
            r0 = r23
            if (r0 == r5) goto L_0x01f3
            r20 = r43
            goto L_0x01f3
        L_0x0281:
            gnu.expr.Keyword r5 = init_keywordKeyword
            r0 = r23
            if (r0 != r5) goto L_0x02ad
            boolean r5 = r9 instanceof gnu.expr.Keyword
            if (r5 != 0) goto L_0x0296
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "invalid 'init-keyword' - not a keyword"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x0296:
            gnu.expr.Keyword r9 = (gnu.expr.Keyword) r9
            java.lang.String r5 = r9.getName()
            java.lang.String r8 = r38.toString()
            if (r5 == r8) goto L_0x01f3
            r5 = 119(0x77, float:1.67E-43)
            java.lang.String r8 = "init-keyword option ignored"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x02ad:
            gnu.expr.Keyword r5 = accessKeyword
            r0 = r23
            if (r0 != r5) goto L_0x02d1
            r0 = r45
            r1 = r43
            java.lang.Object r36 = r0.pushPositionOf(r1)
            r12 = 32463912960(0x78f000000, double:1.6039304123E-313)
            java.lang.String r14 = "field"
            r15 = r45
            long r10 = addAccessFlags(r9, r10, r12, r14, r15)
            r0 = r45
            r1 = r36
            r0.popPositionOf(r1)
            goto L_0x01f3
        L_0x02d1:
            r5 = 119(0x77, float:1.67E-43)
            java.lang.StringBuilder r8 = new java.lang.StringBuilder
            r8.<init>()
            java.lang.String r12 = "unknown slot keyword '"
            java.lang.StringBuilder r8 = r8.append(r12)
            r0 = r23
            java.lang.StringBuilder r8 = r8.append(r0)
            java.lang.String r12 = "'"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.String r8 = r8.toString()
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x02f5:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 != r5) goto L_0x0303
            if (r37 != 0) goto L_0x0303
            r20 = r24
            r37 = 1
            goto L_0x01f3
        L_0x0303:
            r0 = r16
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x0327
            if (r30 != 0) goto L_0x0327
            if (r37 != 0) goto L_0x0327
            if (r40 != 0) goto L_0x0327
            r43 = r16
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r5 = r43.getCdr()
            gnu.lists.LList r8 = gnu.lists.LList.Empty
            if (r5 != r8) goto L_0x0327
            r40 = r24
            r20 = r43
            java.lang.Object r16 = r43.getCdr()
            r37 = 1
            goto L_0x01f3
        L_0x0327:
            r16 = 0
        L_0x0329:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 == r5) goto L_0x036c
            r8 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            java.lang.String r12 = "invalid argument list for slot '"
            java.lang.StringBuilder r5 = r5.append(r12)
            r0 = r38
            java.lang.StringBuilder r5 = r5.append(r0)
            r12 = 39
            java.lang.StringBuilder r5 = r5.append(r12)
            java.lang.String r12 = " args:"
            java.lang.StringBuilder r12 = r5.append(r12)
            if (r16 != 0) goto L_0x0363
            java.lang.String r5 = "null"
        L_0x0352:
            java.lang.StringBuilder r5 = r12.append(r5)
            java.lang.String r5 = r5.toString()
            r0 = r45
            r0.error(r8, r5)
            r33 = 0
            goto L_0x0042
        L_0x0363:
            java.lang.Class r5 = r16.getClass()
            java.lang.String r5 = r5.getName()
            goto L_0x0352
        L_0x036c:
            if (r37 == 0) goto L_0x0384
            r5 = 2048(0x800, float:2.87E-42)
            if (r4 != r5) goto L_0x0395
            r22 = 1
        L_0x0374:
            if (r19 == 0) goto L_0x0398
            r5 = r19
        L_0x0378:
            r0 = r21
            r0.addElement(r5)
            r0 = r21
            r1 = r20
            r0.addElement(r1)
        L_0x0384:
            if (r19 != 0) goto L_0x03a0
            if (r37 != 0) goto L_0x03ce
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "missing field name"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x0395:
            r22 = 0
            goto L_0x0374
        L_0x0398:
            if (r22 == 0) goto L_0x039d
            java.lang.Boolean r5 = java.lang.Boolean.TRUE
            goto L_0x0378
        L_0x039d:
            java.lang.Boolean r5 = java.lang.Boolean.FALSE
            goto L_0x0378
        L_0x03a0:
            if (r40 == 0) goto L_0x03af
            r0 = r45
            r1 = r40
            gnu.bytecode.Type r5 = r0.exp2Type(r1)
            r0 = r19
            r0.setType(r5)
        L_0x03af:
            if (r4 == 0) goto L_0x03b7
            long r12 = (long) r4
            r0 = r19
            r0.setFlag(r12)
        L_0x03b7:
            r12 = 0
            int r5 = (r10 > r12 ? 1 : (r10 == r12 ? 0 : -1))
            if (r5 == 0) goto L_0x03c2
            r0 = r19
            r0.setFlag(r10)
        L_0x03c2:
            r5 = 1
            r0 = r19
            r0.setCanRead(r5)
            r5 = 1
            r0 = r19
            r0.setCanWrite(r5)
        L_0x03ce:
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x03d7:
            r0 = r32
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x0422
            r29 = r32
            gnu.lists.Pair r29 = (gnu.lists.Pair) r29
            java.lang.Object r28 = r29.getCar()
            r0 = r28
            boolean r5 = r0 instanceof java.lang.String
            if (r5 != 0) goto L_0x03fe
            r0 = r28
            boolean r5 = r0 instanceof gnu.mapping.Symbol
            if (r5 != 0) goto L_0x03fe
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "missing method name"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x03fe:
            gnu.expr.LambdaExp r26 = new gnu.expr.LambdaExp
            r26.<init>()
            r0 = r44
            r1 = r26
            r2 = r28
            gnu.expr.Declaration r19 = r0.addMethod(r1, r2)
            r0 = r19
            r1 = r29
            kawa.lang.Translator.setLine(r0, r1)
            if (r25 != 0) goto L_0x041b
            r27 = r26
        L_0x0418:
            r25 = r26
            goto L_0x03ce
        L_0x041b:
            r0 = r26
            r1 = r25
            r1.nextSibling = r0
            goto L_0x0418
        L_0x0422:
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "invalid field/method definition"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x03ce
        L_0x042c:
            r12 = 0
            int r5 = (r6 > r12 ? 1 : (r6 == r12 ? 0 : -1))
            if (r5 == 0) goto L_0x0439
            r0 = r44
            gnu.expr.Declaration r5 = r0.nameDecl
            r5.setFlag(r6)
        L_0x0439:
            r5 = 6
            java.lang.Object[] r0 = new java.lang.Object[r5]
            r33 = r0
            r5 = 0
            r33[r5] = r44
            r5 = 1
            r33[r5] = r18
            r5 = 2
            r33[r5] = r21
            r5 = 3
            r33[r5] = r27
            r5 = 4
            r33[r5] = r39
            r5 = 5
            r33[r5] = r17
            goto L_0x0042
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.standard.object.scanClassDef(gnu.lists.Pair, gnu.expr.ClassExp, kawa.lang.Translator):java.lang.Object[]");
    }
public java . lang . Object [ ] scanClassDef ( gnu . lists . Pair r43 , gnu . expr . ClassExp r44 , kawa . lang . Translator r45 ) { /*
            r42 = this;
            r45.mustCompileHere()
            java.lang.Object r39 = r43.getCar()
            java.lang.Object r18 = r43.getCdr()
            r17 = 0
            r27 = 0
            r25 = 0
            r6 = 0
            java.util.Vector r21 = new java.util.Vector
            r5 = 20
            r0 = r21
            r0.<init>(r5)
            r31 = r18
        L_0x001e:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r31
            if (r0 == r5) goto L_0x042c
        L_0x0024:
            r0 = r31
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0031
            kawa.lang.SyntaxForm r31 = (kawa.lang.SyntaxForm) r31
            java.lang.Object r31 = r31.getDatum()
            goto L_0x0024
        L_0x0031:
            r0 = r31
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 != 0) goto L_0x0043
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object member not a list"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
        L_0x0042:
            return r33
        L_0x0043:
            r43 = r31
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r32 = r43.getCar()
        L_0x004b:
            r0 = r32
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0058
            kawa.lang.SyntaxForm r32 = (kawa.lang.SyntaxForm) r32
            java.lang.Object r32 = r32.getDatum()
            goto L_0x004b
        L_0x0058:
            java.lang.Object r31 = r43.getCdr()
            r0 = r45
            r1 = r43
            java.lang.Object r34 = r0.pushPositionOf(r1)
            r0 = r32
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x011a
        L_0x006a:
            r0 = r31
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0077
            kawa.lang.SyntaxForm r31 = (kawa.lang.SyntaxForm) r31
            java.lang.Object r31 = r31.getDatum()
            goto L_0x006a
        L_0x0077:
            r0 = r31
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x011a
            gnu.expr.Keyword r5 = interfaceKeyword
            r0 = r32
            if (r0 != r5) goto L_0x00b0
            r5 = r31
            gnu.lists.Pair r5 = (gnu.lists.Pair) r5
            java.lang.Object r41 = r5.getCar()
            java.lang.Boolean r5 = java.lang.Boolean.FALSE
            r0 = r41
            if (r0 != r5) goto L_0x00a7
            r5 = 65536(0x10000, float:9.18355E-41)
            r0 = r44
            r0.setFlag(r5)
        L_0x0098:
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x00a7:
            r5 = 32768(0x8000, float:4.5918E-41)
            r0 = r44
            r0.setFlag(r5)
            goto L_0x0098
        L_0x00b0:
            gnu.expr.Keyword r5 = classNameKeyword
            r0 = r32
            if (r0 != r5) goto L_0x00d2
            if (r17 == 0) goto L_0x00c1
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate class-name specifiers"
            r0 = r45
            r0.error(r5, r8)
        L_0x00c1:
            r17 = r31
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x00d2:
            gnu.expr.Keyword r5 = accessKeyword
            r0 = r32
            if (r0 != r5) goto L_0x011a
            r0 = r45
            r1 = r31
            java.lang.Object r35 = r0.pushPositionOf(r1)
            r5 = r31
            gnu.lists.Pair r5 = (gnu.lists.Pair) r5
            java.lang.Object r5 = r5.getCar()
            r8 = 25820135424(0x603000000, double:1.2756841884E-313)
            java.lang.String r10 = "class"
            r11 = r45
            long r6 = addAccessFlags(r5, r6, r8, r10, r11)
            r0 = r44
            gnu.expr.Declaration r5 = r0.nameDecl
            if (r5 != 0) goto L_0x0104
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "access specifier for anonymous class"
            r0 = r45
            r0.error(r5, r8)
        L_0x0104:
            r0 = r45
            r1 = r35
            r0.popPositionOf(r1)
            gnu.lists.Pair r31 = (gnu.lists.Pair) r31
            java.lang.Object r31 = r31.getCdr()
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x011a:
            r0 = r32
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 != 0) goto L_0x012d
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "object member not a list"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x012d:
            r43 = r32
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r32 = r43.getCar()
        L_0x0135:
            r0 = r32
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x0142
            kawa.lang.SyntaxForm r32 = (kawa.lang.SyntaxForm) r32
            java.lang.Object r32 = r32.getDatum()
            goto L_0x0135
        L_0x0142:
            r0 = r32
            boolean r5 = r0 instanceof java.lang.String
            if (r5 != 0) goto L_0x0154
            r0 = r32
            boolean r5 = r0 instanceof gnu.mapping.Symbol
            if (r5 != 0) goto L_0x0154
            r0 = r32
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x03d7
        L_0x0154:
            r40 = 0
            r38 = r32
            r4 = 0
            r10 = 0
            r0 = r38
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x0180
            r19 = 0
            r16 = r43
        L_0x0165:
            r30 = 0
            r37 = 0
            r20 = 0
        L_0x016b:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 == r5) goto L_0x0329
            r5 = r16
        L_0x0173:
            boolean r8 = r5 instanceof kawa.lang.SyntaxForm
            if (r8 == 0) goto L_0x01a2
            kawa.lang.SyntaxForm r5 = (kawa.lang.SyntaxForm) r5
            java.lang.Object r16 = r5.getDatum()
            r5 = r16
            goto L_0x0173
        L_0x0180:
            r0 = r44
            r1 = r38
            gnu.expr.Declaration r19 = r0.addDeclaration(r1)
            r5 = 0
            r0 = r19
            r0.setSimple(r5)
            r12 = 1048576(0x100000, double:5.180654E-318)
            r0 = r19
            r0.setFlag(r12)
            r0 = r19
            r1 = r43
            kawa.lang.Translator.setLine(r0, r1)
            java.lang.Object r16 = r43.getCdr()
            goto L_0x0165
        L_0x01a2:
            r43 = r5
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            r24 = r43
            java.lang.Object r23 = r43.getCar()
        L_0x01ac:
            r0 = r23
            boolean r5 = r0 instanceof kawa.lang.SyntaxForm
            if (r5 == 0) goto L_0x01b9
            kawa.lang.SyntaxForm r23 = (kawa.lang.SyntaxForm) r23
            java.lang.Object r23 = r23.getDatum()
            goto L_0x01ac
        L_0x01b9:
            r0 = r45
            r1 = r43
            java.lang.Object r35 = r0.pushPositionOf(r1)
            java.lang.Object r16 = r43.getCdr()
            gnu.mapping.Symbol r5 = coloncolon
            r0 = r23
            if (r0 == r5) goto L_0x01d1
            r0 = r23
            boolean r5 = r0 instanceof gnu.expr.Keyword
            if (r5 == 0) goto L_0x02f5
        L_0x01d1:
            r0 = r16
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x02f5
            int r30 = r30 + 1
            r43 = r16
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r9 = r43.getCar()
            java.lang.Object r16 = r43.getCdr()
            gnu.mapping.Symbol r5 = coloncolon
            r0 = r23
            if (r0 == r5) goto L_0x01f1
            gnu.expr.Keyword r5 = typeKeyword
            r0 = r23
            if (r0 != r5) goto L_0x01fc
        L_0x01f1:
            r40 = r43
        L_0x01f3:
            r0 = r45
            r1 = r35
            r0.popPositionOf(r1)
            goto L_0x016b
        L_0x01fc:
            gnu.expr.Keyword r5 = allocationKeyword
            r0 = r23
            if (r0 != r5) goto L_0x0252
            if (r4 == 0) goto L_0x020d
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate allocation: specification"
            r0 = r45
            r0.error(r5, r8)
        L_0x020d:
            java.lang.String r5 = "class"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 != 0) goto L_0x0221
            java.lang.String r5 = "static"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 == 0) goto L_0x0224
        L_0x0221:
            r4 = 2048(0x800, float:2.87E-42)
            goto L_0x01f3
        L_0x0224:
            java.lang.String r5 = "instance"
            r0 = r45
            boolean r5 = matches(r9, r5, r0)
            if (r5 == 0) goto L_0x0231
            r4 = 4096(0x1000, float:5.74E-42)
            goto L_0x01f3
        L_0x0231:
            r5 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r8 = new java.lang.StringBuilder
            r8.<init>()
            java.lang.String r12 = "unknown allocation kind '"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.StringBuilder r8 = r8.append(r9)
            java.lang.String r12 = "'"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.String r8 = r8.toString()
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x0252:
            gnu.expr.Keyword r5 = initKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = initformKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = init_formKeyword
            r0 = r23
            if (r0 == r5) goto L_0x026a
            gnu.expr.Keyword r5 = init_valueKeyword
            r0 = r23
            if (r0 != r5) goto L_0x0281
        L_0x026a:
            if (r37 == 0) goto L_0x0275
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "duplicate initialization"
            r0 = r45
            r0.error(r5, r8)
        L_0x0275:
            r37 = 1
            gnu.expr.Keyword r5 = initKeyword
            r0 = r23
            if (r0 == r5) goto L_0x01f3
            r20 = r43
            goto L_0x01f3
        L_0x0281:
            gnu.expr.Keyword r5 = init_keywordKeyword
            r0 = r23
            if (r0 != r5) goto L_0x02ad
            boolean r5 = r9 instanceof gnu.expr.Keyword
            if (r5 != 0) goto L_0x0296
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "invalid 'init-keyword' - not a keyword"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x0296:
            gnu.expr.Keyword r9 = (gnu.expr.Keyword) r9
            java.lang.String r5 = r9.getName()
            java.lang.String r8 = r38.toString()
            if (r5 == r8) goto L_0x01f3
            r5 = 119(0x77, float:1.67E-43)
            java.lang.String r8 = "init-keyword option ignored"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x02ad:
            gnu.expr.Keyword r5 = accessKeyword
            r0 = r23
            if (r0 != r5) goto L_0x02d1
            r0 = r45
            r1 = r43
            java.lang.Object r36 = r0.pushPositionOf(r1)
            r12 = 32463912960(0x78f000000, double:1.6039304123E-313)
            java.lang.String r14 = "field"
            r15 = r45
            long r10 = addAccessFlags(r9, r10, r12, r14, r15)
            r0 = r45
            r1 = r36
            r0.popPositionOf(r1)
            goto L_0x01f3
        L_0x02d1:
            r5 = 119(0x77, float:1.67E-43)
            java.lang.StringBuilder r8 = new java.lang.StringBuilder
            r8.<init>()
            java.lang.String r12 = "unknown slot keyword '"
            java.lang.StringBuilder r8 = r8.append(r12)
            r0 = r23
            java.lang.StringBuilder r8 = r8.append(r0)
            java.lang.String r12 = "'"
            java.lang.StringBuilder r8 = r8.append(r12)
            java.lang.String r8 = r8.toString()
            r0 = r45
            r0.error(r5, r8)
            goto L_0x01f3
        L_0x02f5:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 != r5) goto L_0x0303
            if (r37 != 0) goto L_0x0303
            r20 = r24
            r37 = 1
            goto L_0x01f3
        L_0x0303:
            r0 = r16
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x0327
            if (r30 != 0) goto L_0x0327
            if (r37 != 0) goto L_0x0327
            if (r40 != 0) goto L_0x0327
            r43 = r16
            gnu.lists.Pair r43 = (gnu.lists.Pair) r43
            java.lang.Object r5 = r43.getCdr()
            gnu.lists.LList r8 = gnu.lists.LList.Empty
            if (r5 != r8) goto L_0x0327
            r40 = r24
            r20 = r43
            java.lang.Object r16 = r43.getCdr()
            r37 = 1
            goto L_0x01f3
        L_0x0327:
            r16 = 0
        L_0x0329:
            gnu.lists.LList r5 = gnu.lists.LList.Empty
            r0 = r16
            if (r0 == r5) goto L_0x036c
            r8 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r5 = new java.lang.StringBuilder
            r5.<init>()
            java.lang.String r12 = "invalid argument list for slot '"
            java.lang.StringBuilder r5 = r5.append(r12)
            r0 = r38
            java.lang.StringBuilder r5 = r5.append(r0)
            r12 = 39
            java.lang.StringBuilder r5 = r5.append(r12)
            java.lang.String r12 = " args:"
            java.lang.StringBuilder r12 = r5.append(r12)
            if (r16 != 0) goto L_0x0363
            java.lang.String r5 = "null"
        L_0x0352:
            java.lang.StringBuilder r5 = r12.append(r5)
            java.lang.String r5 = r5.toString()
            r0 = r45
            r0.error(r8, r5)
            r33 = 0
            goto L_0x0042
        L_0x0363:
            java.lang.Class r5 = r16.getClass()
            java.lang.String r5 = r5.getName()
            goto L_0x0352
        L_0x036c:
            if (r37 == 0) goto L_0x0384
            r5 = 2048(0x800, float:2.87E-42)
            if (r4 != r5) goto L_0x0395
            r22 = 1
        L_0x0374:
            if (r19 == 0) goto L_0x0398
            r5 = r19
        L_0x0378:
            r0 = r21
            r0.addElement(r5)
            r0 = r21
            r1 = r20
            r0.addElement(r1)
        L_0x0384:
            if (r19 != 0) goto L_0x03a0
            if (r37 != 0) goto L_0x03ce
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "missing field name"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x0395:
            r22 = 0
            goto L_0x0374
        L_0x0398:
            if (r22 == 0) goto L_0x039d
            java.lang.Boolean r5 = java.lang.Boolean.TRUE
            goto L_0x0378
        L_0x039d:
            java.lang.Boolean r5 = java.lang.Boolean.FALSE
            goto L_0x0378
        L_0x03a0:
            if (r40 == 0) goto L_0x03af
            r0 = r45
            r1 = r40
            gnu.bytecode.Type r5 = r0.exp2Type(r1)
            r0 = r19
            r0.setType(r5)
        L_0x03af:
            if (r4 == 0) goto L_0x03b7
            long r12 = (long) r4
            r0 = r19
            r0.setFlag(r12)
        L_0x03b7:
            r12 = 0
            int r5 = (r10 > r12 ? 1 : (r10 == r12 ? 0 : -1))
            if (r5 == 0) goto L_0x03c2
            r0 = r19
            r0.setFlag(r10)
        L_0x03c2:
            r5 = 1
            r0 = r19
            r0.setCanRead(r5)
            r5 = 1
            r0 = r19
            r0.setCanWrite(r5)
        L_0x03ce:
            r0 = r45
            r1 = r34
            r0.popPositionOf(r1)
            goto L_0x001e
        L_0x03d7:
            r0 = r32
            boolean r5 = r0 instanceof gnu.lists.Pair
            if (r5 == 0) goto L_0x0422
            r29 = r32
            gnu.lists.Pair r29 = (gnu.lists.Pair) r29
            java.lang.Object r28 = r29.getCar()
            r0 = r28
            boolean r5 = r0 instanceof java.lang.String
            if (r5 != 0) goto L_0x03fe
            r0 = r28
            boolean r5 = r0 instanceof gnu.mapping.Symbol
            if (r5 != 0) goto L_0x03fe
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "missing method name"
            r0 = r45
            r0.error(r5, r8)
            r33 = 0
            goto L_0x0042
        L_0x03fe:
            gnu.expr.LambdaExp r26 = new gnu.expr.LambdaExp
            r26.<init>()
            r0 = r44
            r1 = r26
            r2 = r28
            gnu.expr.Declaration r19 = r0.addMethod(r1, r2)
            r0 = r19
            r1 = r29
            kawa.lang.Translator.setLine(r0, r1)
            if (r25 != 0) goto L_0x041b
            r27 = r26
        L_0x0418:
            r25 = r26
            goto L_0x03ce
        L_0x041b:
            r0 = r26
            r1 = r25
            r1.nextSibling = r0
            goto L_0x0418
        L_0x0422:
            r5 = 101(0x65, float:1.42E-43)
            java.lang.String r8 = "invalid field/method definition"
            r0 = r45
            r0.error(r5, r8)
            goto L_0x03ce
        L_0x042c:
            r12 = 0
            int r5 = (r6 > r12 ? 1 : (r6 == r12 ? 0 : -1))
            if (r5 == 0) goto L_0x0439
            r0 = r44
            gnu.expr.Declaration r5 = r0.nameDecl
            r5.setFlag(r6)
        L_0x0439:
            r5 = 6
            java.lang.Object[] r0 = new java.lang.Object[r5]
            r33 = r0
            r5 = 0
            r33[r5] = r44
            r5 = 1
            r33[r5] = r18
            r5 = 2
            r33[r5] = r21
            r5 = 3
            r33[r5] = r27
            r5 = 4
            r33[r5] = r39
            r5 = 5
            r33[r5] = r17
            goto L_0x0042
        */ throw new UnsupportedOperationException ( "Method not decompiled: kawa.standard.object.scanClassDef(gnu.lists.Pair, gnu.expr.ClassExp, kawa.lang.Translator):java.lang.Object[]" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .