Source/sources/kawa/standard/require.java
public boolean scanForDefinitions(gnu.lists.Pair r17, java.util.Vector r18, gnu.expr.ScopeExp r19, kawa.lang.Translator r20) {
        /*
            r16 = this;
            int r2 = r20.getState()
            r4 = 1
            if (r2 != r4) goto L_0x0015
            r2 = 2
            r0 = r20
            r0.setState(r2)
            r0 = r17
            r1 = r20
            r1.pendingForm = r0
            r2 = 1
        L_0x0014:
            return r2
        L_0x0015:
            java.lang.Object r10 = r17.getCdr()
            gnu.lists.Pair r10 = (gnu.lists.Pair) r10
            java.lang.Object r12 = r10.getCar()
            r15 = 0
            boolean r2 = r12 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x00a5
            r13 = r12
            gnu.lists.Pair r13 = (gnu.lists.Pair) r13
            java.lang.Object r2 = r13.getCar()
            java.lang.String r4 = "quote"
            r0 = r20
            boolean r2 = r0.matches(r2, r4)
            if (r2 == 0) goto L_0x00a5
            java.lang.Object r12 = r13.getCdr()
            boolean r2 = r12 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x0050
            r13 = r12
            gnu.lists.Pair r13 = (gnu.lists.Pair) r13
            java.lang.Object r2 = r13.getCdr()
            gnu.lists.LList r4 = gnu.lists.LList.Empty
            if (r2 != r4) goto L_0x0050
            java.lang.Object r2 = r13.getCar()
            boolean r2 = r2 instanceof gnu.mapping.Symbol
            if (r2 != 0) goto L_0x005b
        L_0x0050:
            r2 = 101(0x65, float:1.42E-43)
            java.lang.String r4 = "invalid quoted symbol for 'require'"
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x005b:
            java.lang.Object r2 = r13.getCar()
            java.lang.String r2 = r2.toString()
            java.lang.String r12 = mapFeature(r2)
            if (r12 != 0) goto L_0x008f
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "unknown feature name '"
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.Object r6 = r13.getCar()
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r6 = "' for 'require'"
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x008f:
            java.lang.String r12 = (java.lang.String) r12
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r12)
        L_0x0095:
            boolean r2 = r15 instanceof gnu.bytecode.ClassType
            if (r2 != 0) goto L_0x014f
            r2 = 101(0x65, float:1.42E-43)
            java.lang.String r4 = "invalid specifier for 'require'"
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x00a5:
            boolean r2 = r12 instanceof java.lang.CharSequence
            if (r2 == 0) goto L_0x00e0
            java.lang.String r14 = r12.toString()
            r0 = r19
            gnu.expr.ModuleInfo r3 = lookupModuleFromSourcePath(r14, r0)
            if (r3 != 0) goto L_0x00d2
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "malformed URL: "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.StringBuilder r4 = r4.append(r14)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x00d2:
            r2 = 0
            r4 = 0
            r5 = r18
            r6 = r19
            r7 = r20
            boolean r2 = importDefinitions(r2, r3, r4, r5, r6, r7)
            goto L_0x0014
        L_0x00e0:
            boolean r2 = r12 instanceof gnu.mapping.Symbol
            if (r2 == 0) goto L_0x0095
            r0 = r20
            boolean r2 = r0.selfEvaluatingSymbol(r12)
            if (r2 != 0) goto L_0x0095
            gnu.expr.Language r2 = r20.getLanguage()
            r4 = 0
            r0 = r20
            gnu.expr.Expression r4 = r0.rewrite(r12, r4)
            gnu.bytecode.Type r15 = r2.getTypeFor(r4)
            boolean r2 = r15 instanceof gnu.bytecode.ClassType
            if (r2 == 0) goto L_0x0095
            java.lang.Object r2 = r10.getCdr()
            boolean r2 = r2 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x0095
            java.lang.Object r2 = r10.getCdr()
            gnu.lists.Pair r2 = (gnu.lists.Pair) r2
            java.lang.Object r12 = r2.getCar()
            boolean r2 = r12 instanceof java.lang.CharSequence
            if (r2 == 0) goto L_0x0095
            java.lang.String r14 = r12.toString()
            r0 = r19
            gnu.expr.ModuleInfo r3 = lookupModuleFromSourcePath(r14, r0)
            if (r3 != 0) goto L_0x013e
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "malformed URL: "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.StringBuilder r4 = r4.append(r14)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x013e:
            java.lang.String r2 = r15.getName()
            r4 = 0
            r5 = r18
            r6 = r19
            r7 = r20
            boolean r2 = importDefinitions(r2, r3, r4, r5, r6, r7)
            goto L_0x0014
        L_0x014f:
            r0 = r15
            gnu.bytecode.ClassType r0 = (gnu.bytecode.ClassType) r0     // Catch:{ Exception -> 0x0165 }
            r2 = r0
            gnu.expr.ModuleInfo r5 = gnu.expr.ModuleInfo.find(r2)     // Catch:{ Exception -> 0x0165 }
            r4 = 0
            r6 = 0
            r7 = r18
            r8 = r19
            r9 = r20
            importDefinitions(r4, r5, r6, r7, r8, r9)
            r2 = 1
            goto L_0x0014
        L_0x0165:
            r11 = move-exception
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "unknown class "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r6 = r15.getName()
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.standard.require.scanForDefinitions(gnu.lists.Pair, java.util.Vector, gnu.expr.ScopeExp, kawa.lang.Translator):boolean");
    }
/* 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 boolean scanForDefinitions(gnu.lists.Pair r17, java.util.Vector r18, gnu.expr.ScopeExp r19, kawa.lang.Translator r20) {
        /*
            r16 = this;
            int r2 = r20.getState()
            r4 = 1
            if (r2 != r4) goto L_0x0015
            r2 = 2
            r0 = r20
            r0.setState(r2)
            r0 = r17
            r1 = r20
            r1.pendingForm = r0
            r2 = 1
        L_0x0014:
            return r2
        L_0x0015:
            java.lang.Object r10 = r17.getCdr()
            gnu.lists.Pair r10 = (gnu.lists.Pair) r10
            java.lang.Object r12 = r10.getCar()
            r15 = 0
            boolean r2 = r12 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x00a5
            r13 = r12
            gnu.lists.Pair r13 = (gnu.lists.Pair) r13
            java.lang.Object r2 = r13.getCar()
            java.lang.String r4 = "quote"
            r0 = r20
            boolean r2 = r0.matches(r2, r4)
            if (r2 == 0) goto L_0x00a5
            java.lang.Object r12 = r13.getCdr()
            boolean r2 = r12 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x0050
            r13 = r12
            gnu.lists.Pair r13 = (gnu.lists.Pair) r13
            java.lang.Object r2 = r13.getCdr()
            gnu.lists.LList r4 = gnu.lists.LList.Empty
            if (r2 != r4) goto L_0x0050
            java.lang.Object r2 = r13.getCar()
            boolean r2 = r2 instanceof gnu.mapping.Symbol
            if (r2 != 0) goto L_0x005b
        L_0x0050:
            r2 = 101(0x65, float:1.42E-43)
            java.lang.String r4 = "invalid quoted symbol for 'require'"
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x005b:
            java.lang.Object r2 = r13.getCar()
            java.lang.String r2 = r2.toString()
            java.lang.String r12 = mapFeature(r2)
            if (r12 != 0) goto L_0x008f
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "unknown feature name '"
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.Object r6 = r13.getCar()
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r6 = "' for 'require'"
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x008f:
            java.lang.String r12 = (java.lang.String) r12
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r12)
        L_0x0095:
            boolean r2 = r15 instanceof gnu.bytecode.ClassType
            if (r2 != 0) goto L_0x014f
            r2 = 101(0x65, float:1.42E-43)
            java.lang.String r4 = "invalid specifier for 'require'"
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x00a5:
            boolean r2 = r12 instanceof java.lang.CharSequence
            if (r2 == 0) goto L_0x00e0
            java.lang.String r14 = r12.toString()
            r0 = r19
            gnu.expr.ModuleInfo r3 = lookupModuleFromSourcePath(r14, r0)
            if (r3 != 0) goto L_0x00d2
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "malformed URL: "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.StringBuilder r4 = r4.append(r14)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x00d2:
            r2 = 0
            r4 = 0
            r5 = r18
            r6 = r19
            r7 = r20
            boolean r2 = importDefinitions(r2, r3, r4, r5, r6, r7)
            goto L_0x0014
        L_0x00e0:
            boolean r2 = r12 instanceof gnu.mapping.Symbol
            if (r2 == 0) goto L_0x0095
            r0 = r20
            boolean r2 = r0.selfEvaluatingSymbol(r12)
            if (r2 != 0) goto L_0x0095
            gnu.expr.Language r2 = r20.getLanguage()
            r4 = 0
            r0 = r20
            gnu.expr.Expression r4 = r0.rewrite(r12, r4)
            gnu.bytecode.Type r15 = r2.getTypeFor(r4)
            boolean r2 = r15 instanceof gnu.bytecode.ClassType
            if (r2 == 0) goto L_0x0095
            java.lang.Object r2 = r10.getCdr()
            boolean r2 = r2 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x0095
            java.lang.Object r2 = r10.getCdr()
            gnu.lists.Pair r2 = (gnu.lists.Pair) r2
            java.lang.Object r12 = r2.getCar()
            boolean r2 = r12 instanceof java.lang.CharSequence
            if (r2 == 0) goto L_0x0095
            java.lang.String r14 = r12.toString()
            r0 = r19
            gnu.expr.ModuleInfo r3 = lookupModuleFromSourcePath(r14, r0)
            if (r3 != 0) goto L_0x013e
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "malformed URL: "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.StringBuilder r4 = r4.append(r14)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x013e:
            java.lang.String r2 = r15.getName()
            r4 = 0
            r5 = r18
            r6 = r19
            r7 = r20
            boolean r2 = importDefinitions(r2, r3, r4, r5, r6, r7)
            goto L_0x0014
        L_0x014f:
            r0 = r15
            gnu.bytecode.ClassType r0 = (gnu.bytecode.ClassType) r0     // Catch:{ Exception -> 0x0165 }
            r2 = r0
            gnu.expr.ModuleInfo r5 = gnu.expr.ModuleInfo.find(r2)     // Catch:{ Exception -> 0x0165 }
            r4 = 0
            r6 = 0
            r7 = r18
            r8 = r19
            r9 = r20
            importDefinitions(r4, r5, r6, r7, r8, r9)
            r2 = 1
            goto L_0x0014
        L_0x0165:
            r11 = move-exception
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "unknown class "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r6 = r15.getName()
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        */
        throw new UnsupportedOperationException("Method not decompiled: kawa.standard.require.scanForDefinitions(gnu.lists.Pair, java.util.Vector, gnu.expr.ScopeExp, kawa.lang.Translator):boolean");
    }
public boolean scanForDefinitions ( gnu . lists . Pair r17 , java . util . Vector r18 , gnu . expr . ScopeExp r19 , kawa . lang . Translator r20 ) { /*
            r16 = this;
            int r2 = r20.getState()
            r4 = 1
            if (r2 != r4) goto L_0x0015
            r2 = 2
            r0 = r20
            r0.setState(r2)
            r0 = r17
            r1 = r20
            r1.pendingForm = r0
            r2 = 1
        L_0x0014:
            return r2
        L_0x0015:
            java.lang.Object r10 = r17.getCdr()
            gnu.lists.Pair r10 = (gnu.lists.Pair) r10
            java.lang.Object r12 = r10.getCar()
            r15 = 0
            boolean r2 = r12 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x00a5
            r13 = r12
            gnu.lists.Pair r13 = (gnu.lists.Pair) r13
            java.lang.Object r2 = r13.getCar()
            java.lang.String r4 = "quote"
            r0 = r20
            boolean r2 = r0.matches(r2, r4)
            if (r2 == 0) goto L_0x00a5
            java.lang.Object r12 = r13.getCdr()
            boolean r2 = r12 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x0050
            r13 = r12
            gnu.lists.Pair r13 = (gnu.lists.Pair) r13
            java.lang.Object r2 = r13.getCdr()
            gnu.lists.LList r4 = gnu.lists.LList.Empty
            if (r2 != r4) goto L_0x0050
            java.lang.Object r2 = r13.getCar()
            boolean r2 = r2 instanceof gnu.mapping.Symbol
            if (r2 != 0) goto L_0x005b
        L_0x0050:
            r2 = 101(0x65, float:1.42E-43)
            java.lang.String r4 = "invalid quoted symbol for 'require'"
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x005b:
            java.lang.Object r2 = r13.getCar()
            java.lang.String r2 = r2.toString()
            java.lang.String r12 = mapFeature(r2)
            if (r12 != 0) goto L_0x008f
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "unknown feature name '"
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.Object r6 = r13.getCar()
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r6 = "' for 'require'"
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x008f:
            java.lang.String r12 = (java.lang.String) r12
            gnu.bytecode.ClassType r15 = gnu.bytecode.ClassType.make(r12)
        L_0x0095:
            boolean r2 = r15 instanceof gnu.bytecode.ClassType
            if (r2 != 0) goto L_0x014f
            r2 = 101(0x65, float:1.42E-43)
            java.lang.String r4 = "invalid specifier for 'require'"
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x00a5:
            boolean r2 = r12 instanceof java.lang.CharSequence
            if (r2 == 0) goto L_0x00e0
            java.lang.String r14 = r12.toString()
            r0 = r19
            gnu.expr.ModuleInfo r3 = lookupModuleFromSourcePath(r14, r0)
            if (r3 != 0) goto L_0x00d2
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "malformed URL: "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.StringBuilder r4 = r4.append(r14)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x00d2:
            r2 = 0
            r4 = 0
            r5 = r18
            r6 = r19
            r7 = r20
            boolean r2 = importDefinitions(r2, r3, r4, r5, r6, r7)
            goto L_0x0014
        L_0x00e0:
            boolean r2 = r12 instanceof gnu.mapping.Symbol
            if (r2 == 0) goto L_0x0095
            r0 = r20
            boolean r2 = r0.selfEvaluatingSymbol(r12)
            if (r2 != 0) goto L_0x0095
            gnu.expr.Language r2 = r20.getLanguage()
            r4 = 0
            r0 = r20
            gnu.expr.Expression r4 = r0.rewrite(r12, r4)
            gnu.bytecode.Type r15 = r2.getTypeFor(r4)
            boolean r2 = r15 instanceof gnu.bytecode.ClassType
            if (r2 == 0) goto L_0x0095
            java.lang.Object r2 = r10.getCdr()
            boolean r2 = r2 instanceof gnu.lists.Pair
            if (r2 == 0) goto L_0x0095
            java.lang.Object r2 = r10.getCdr()
            gnu.lists.Pair r2 = (gnu.lists.Pair) r2
            java.lang.Object r12 = r2.getCar()
            boolean r2 = r12 instanceof java.lang.CharSequence
            if (r2 == 0) goto L_0x0095
            java.lang.String r14 = r12.toString()
            r0 = r19
            gnu.expr.ModuleInfo r3 = lookupModuleFromSourcePath(r14, r0)
            if (r3 != 0) goto L_0x013e
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "malformed URL: "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.StringBuilder r4 = r4.append(r14)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        L_0x013e:
            java.lang.String r2 = r15.getName()
            r4 = 0
            r5 = r18
            r6 = r19
            r7 = r20
            boolean r2 = importDefinitions(r2, r3, r4, r5, r6, r7)
            goto L_0x0014
        L_0x014f:
            r0 = r15
            gnu.bytecode.ClassType r0 = (gnu.bytecode.ClassType) r0     // Catch:{ Exception -> 0x0165 }
            r2 = r0
            gnu.expr.ModuleInfo r5 = gnu.expr.ModuleInfo.find(r2)     // Catch:{ Exception -> 0x0165 }
            r4 = 0
            r6 = 0
            r7 = r18
            r8 = r19
            r9 = r20
            importDefinitions(r4, r5, r6, r7, r8, r9)
            r2 = 1
            goto L_0x0014
        L_0x0165:
            r11 = move-exception
            r2 = 101(0x65, float:1.42E-43)
            java.lang.StringBuilder r4 = new java.lang.StringBuilder
            r4.<init>()
            java.lang.String r6 = "unknown class "
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r6 = r15.getName()
            java.lang.StringBuilder r4 = r4.append(r6)
            java.lang.String r4 = r4.toString()
            r0 = r20
            r0.error(r2, r4)
            r2 = 0
            goto L_0x0014
        */ throw new UnsupportedOperationException ( "Method not decompiled: kawa.standard.require.scanForDefinitions(gnu.lists.Pair, java.util.Vector, gnu.expr.ScopeExp, kawa.lang.Translator):boolean" ) ; }
Code decompiled incorrectly, please refer to instructions dump.
Code decompiled incorrectly please refer to instructions dump .