ftp.nice.ch/pub/next/developer/languages/translator/schemetoc.s.tar.gz#/schemetoc/cdecl/cdecl.c

This is cdecl.c in view mode; [Download] [Up]

/* SCHEME->C */

#include <objects.h>

DEFSTRING( t1194, "EMIT-EXTERNS", 12 );
DEFSTATICTSCP( emit_2dexterns_v );
DEFSTRING( t1195, "EMIT-CONSTS", 11 );
DEFSTATICTSCP( emit_2dconsts_v );
DEFSTRING( t1196, "EMIT-STUBS", 10 );
DEFSTATICTSCP( emit_2dstubs_v );
DEFSTRING( t1197, "EMIT-TYPEDEFS", 13 );
DEFSTATICTSCP( emit_2dtypedefs_v );
DEFSTRING( t1198, "INPUT-EXTERN", 12 );
DEFSTATICTSCP( input_2dextern_v );
DEFSTRING( t1199, "INPUT-TYPEDEF", 13 );
DEFSTATICTSCP( input_2dtypedef_v );
DEFSTRING( t1200, "INPUT-CONST", 11 );
DEFSTATICTSCP( input_2dconst_v );
DEFSTRING( t1201, "Unrecognized expression ~s", 26 );
DEFSTATICTSCP2( c1157, t1201 );
DEFSTRING( t1202, "INPUT-EXPRESSIONS", 17 );
DEFSTATICTSCP( c1156 );
DEFSTRING( t1203, "DEFINE-ONLY", 11 );
DEFSTATICTSCP( c1155 );
DEFSTRING( t1204, "READ-ONLY", 9 );
DEFSTATICTSCP( c1151 );
DEFSTRING( t1205, "EXTERN", 6 );
DEFSTATICTSCP( c1147 );
DEFSTRING( t1206, "TYPEDEF", 7 );
DEFSTATICTSCP( c1143 );
DEFSTRING( t1207, "CONST", 5 );
DEFSTATICTSCP( c1139 );
DEFSTRING( t1208, 
           "cdecl class {-const|-extern|-typedef} cdecl-files...", 52 );
DEFSTATICTSCP2( c1075, t1208 );
DEFSTRING( t1209, "CONSTANTS", 9 );
DEFSTATICTSCP2( c1067, t1209 );
DEFSTRING( t1210, "STUBS", 5 );
DEFSTATICTSCP2( c1066, t1210 );
DEFSTRING( t1211, "TYPES", 5 );
DEFSTATICTSCP2( c1065, t1211 );
DEFSTRING( t1212, "Unrecognized command: ~s", 24 );
DEFSTATICTSCP2( c1054, t1212 );
DEFSTRING( t1213, "MAIN", 4 );
DEFSTATICTSCP( c1053 );
DEFSTATICTSCP( c1052 );
DEFSTRING( t1215, "-typedef", 8 );
DEFSTATICTSCP2( t1214, t1215 );
DEFSTRING( t1217, "-stubs", 6 );
DEFSTATICTSCP2( t1216, t1217 );
DEFSTRING( t1219, "-extern", 7 );
DEFSTATICTSCP2( t1218, t1219 );
DEFSTRING( t1221, "-const", 6 );
DEFSTATICTSCP2( t1220, t1221 );
DEFSTRING( t1222, "-typedef", 8 );
DEFSTATICTSCP2( c1050, t1222 );
DEFSTRING( t1223, "-const", 6 );
DEFSTATICTSCP2( c1047, t1223 );
DEFSTRING( t1224, "-stubs", 6 );
DEFSTATICTSCP2( c1041, t1224 );
DEFSTRING( t1225, "-extern", 7 );
DEFSTATICTSCP2( c1033, t1225 );

static void  init_constants()
{
        emit_2dexterns_v = STRINGTOSYMBOL( U_TX( ADR( t1194 ) ) );
        CONSTANTEXP( ADR( emit_2dexterns_v ) );
        emit_2dconsts_v = STRINGTOSYMBOL( U_TX( ADR( t1195 ) ) );
        CONSTANTEXP( ADR( emit_2dconsts_v ) );
        emit_2dstubs_v = STRINGTOSYMBOL( U_TX( ADR( t1196 ) ) );
        CONSTANTEXP( ADR( emit_2dstubs_v ) );
        emit_2dtypedefs_v = STRINGTOSYMBOL( U_TX( ADR( t1197 ) ) );
        CONSTANTEXP( ADR( emit_2dtypedefs_v ) );
        input_2dextern_v = STRINGTOSYMBOL( U_TX( ADR( t1198 ) ) );
        CONSTANTEXP( ADR( input_2dextern_v ) );
        input_2dtypedef_v = STRINGTOSYMBOL( U_TX( ADR( t1199 ) ) );
        CONSTANTEXP( ADR( input_2dtypedef_v ) );
        input_2dconst_v = STRINGTOSYMBOL( U_TX( ADR( t1200 ) ) );
        CONSTANTEXP( ADR( input_2dconst_v ) );
        c1156 = STRINGTOSYMBOL( U_TX( ADR( t1202 ) ) );
        CONSTANTEXP( ADR( c1156 ) );
        c1155 = STRINGTOSYMBOL( U_TX( ADR( t1203 ) ) );
        CONSTANTEXP( ADR( c1155 ) );
        c1151 = STRINGTOSYMBOL( U_TX( ADR( t1204 ) ) );
        CONSTANTEXP( ADR( c1151 ) );
        c1147 = STRINGTOSYMBOL( U_TX( ADR( t1205 ) ) );
        CONSTANTEXP( ADR( c1147 ) );
        c1143 = STRINGTOSYMBOL( U_TX( ADR( t1206 ) ) );
        CONSTANTEXP( ADR( c1143 ) );
        c1139 = STRINGTOSYMBOL( U_TX( ADR( t1207 ) ) );
        CONSTANTEXP( ADR( c1139 ) );
        c1053 = STRINGTOSYMBOL( U_TX( ADR( t1213 ) ) );
        CONSTANTEXP( ADR( c1053 ) );
        c1052 = EMPTYLIST;
        c1052 = CONS( t1214, c1052 );
        c1052 = CONS( t1216, c1052 );
        c1052 = CONS( t1218, c1052 );
        c1052 = CONS( t1220, c1052 );
        CONSTANTEXP( ADR( c1052 ) );
}

DEFTSCP( cdecl_cdecl_2dconstants_v );
DEFSTRING( t1226, "CDECL-CONSTANTS", 15 );
DEFTSCP( cdecl_cdecl_2dtypes_v );
DEFSTRING( t1227, "CDECL-TYPES", 11 );
DEFTSCP( cdecl_cdecl_2dread_2donly_v );
DEFSTRING( t1228, "CDECL-READ-ONLY", 15 );
DEFTSCP( cdecl_cdecl_2ddefine_2donly_v );
DEFSTRING( t1229, "CDECL-DEFINE-ONLY", 17 );
DEFTSCP( cdecl_cdecl_2dexterns_v );
DEFSTRING( t1230, "CDECL-EXTERNS", 13 );
DEFTSCP( cdecl_main_v );
DEFSTRING( t1231, "MAIN", 4 );
EXTERNTSCPP( scrt1_length );
EXTERNTSCP( scrt1_length_v );
EXTERNTSCPP( scrt2__3e_3d_2dtwo );
EXTERNTSCP( scrt2__3e_3d_2dtwo_v );
EXTERNTSCPP( scrt1__24__cdr_2derror );
EXTERNTSCP( scrt1__24__cdr_2derror_v );
EXTERNTSCPP( scrt1__24__car_2derror );
EXTERNTSCP( scrt1__24__car_2derror_v );
EXTERNTSCPP( scrt6_error );
EXTERNTSCP( scrt6_error_v );
EXTERNTSCPP( scrt3_string_2dappend );
EXTERNTSCP( scrt3_string_2dappend_v );
EXTERNTSCPP( scrt1_member );
EXTERNTSCP( scrt1_member_v );
EXTERNTSCPP( scrt1_caddr );
EXTERNTSCP( scrt1_caddr_v );
EXTERNTSCPP( scrt1_cdddr );
EXTERNTSCP( scrt1_cdddr_v );
EXTERNTSCPP( cdecl_load_2dcdecl );
EXTERNTSCP( cdecl_load_2dcdecl_v );
EXTERNTSCPP( scrt1_equal_3f );
EXTERNTSCP( scrt1_equal_3f_v );
EXTERNTSCPP( scrt1_reverse );
EXTERNTSCP( scrt1_reverse_v );
EXTERNTSCPP( cdecl_file_2droot );
EXTERNTSCP( cdecl_file_2droot_v );
EXTERNTSCPP( scrt1_append_2dtwo );
EXTERNTSCP( scrt1_append_2dtwo_v );

TSCP  cdecl_main( c1007 )
        TSCP  c1007;
{
        TSCP  X11, 
              X10, 
              X9, 
              X8, X7, X6, X5, X4, X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1231 ) ) );
        X2 = scrt1_length( c1007 );
        if  ( BITAND( BITOR( INT( X2 ), INT( _TSCP( 16 ) ) ), 
                      3 ) )  goto  L1235;
        if  ( GTE( INT( X2 ), INT( _TSCP( 16 ) ) ) )  goto  L1239;
        goto L1240;
L1235:
        if  ( FALSE( scrt2__3e_3d_2dtwo( X2, _TSCP( 16 ) ) ) )  goto  L1240;
L1239:
        if  ( EQ( TSCPTAG( c1007 ), PAIRTAG ) )  goto  L1245;
        scrt1__24__cdr_2derror( c1007 );
L1245:
        X3 = PAIR_CDR( c1007 );
        if  ( EQ( TSCPTAG( X3 ), PAIRTAG ) )  goto  L1248;
        scrt1__24__car_2derror( X3 );
L1248:
        X1 = PAIR_CAR( X3 );
        goto L1243;
L1240:
        X1 = scrt6_error( c1053, c1075, EMPTYLIST );
L1243:
        X3 = CONS( c1067, EMPTYLIST );
        X2 = scrt3_string_2dappend( CONS( X1, X3 ) );
        X4 = CONS( c1066, EMPTYLIST );
        X3 = scrt3_string_2dappend( CONS( X1, X4 ) );
        X5 = CONS( c1065, EMPTYLIST );
        X4 = scrt3_string_2dappend( CONS( X1, X5 ) );
        X5 = EMPTYLIST;
        X5 = CONS( X5, EMPTYLIST );
        X7 = scrt1_caddr( c1007 );
        if  ( FALSE( scrt1_member( X7, c1052 ) ) )  goto  L1255;
        X6 = scrt1_caddr( c1007 );
        goto L1256;
L1255:
        if  ( EQ( TSCPTAG( c1007 ), PAIRTAG ) )  goto  L1258;
        scrt1__24__cdr_2derror( c1007 );
L1258:
        X8 = PAIR_CDR( c1007 );
        if  ( EQ( TSCPTAG( X8 ), PAIRTAG ) )  goto  L1261;
        scrt1__24__cdr_2derror( X8 );
L1261:
        X6 = scrt6_error( c1053, 
                          c1054, 
                          CONS( PAIR_CDR( X8 ), EMPTYLIST ) );
L1256:
        X7 = scrt1_cdddr( c1007 );
L1265:
        if  ( FALSE( X7 ) )  goto  L1266;
        if  ( EQ( TSCPTAG( X7 ), PAIRTAG ) )  goto  L1270;
        scrt1__24__car_2derror( X7 );
L1270:
        X8 = PAIR_CAR( X7 );
        cdecl_load_2dcdecl( X8 );
        if  ( FALSE( scrt1_equal_3f( X6, c1033 ) ) )  goto  L1274;
        if  ( FALSE( cdecl_cdecl_2dexterns_v ) )  goto  L1274;
        X9 = scrt1_reverse( cdecl_cdecl_2dexterns_v );
        X11 = PAIR_CAR( X7 );
        X10 = cdecl_file_2droot( X11 );
        X8 = SYMBOL_VALUE( emit_2dexterns_v );
        X8 = UNKNOWNCALL( X8, 3 );
        VIA( PROCEDURE_CODE( X8 ) )( X9, 
                                     X10, 
                                     X4, PROCEDURE_CLOSURE( X8 ) );
L1274:
        if  ( FALSE( scrt1_equal_3f( X6, c1041 ) ) )  goto  L1277;
        X8 = scrt1_append_2dtwo( cdecl_cdecl_2dexterns_v, 
                                 PAIR_CAR( X5 ) );
        SETGEN( PAIR_CAR( X5 ), X8 );
L1277:
        X7 = PAIR_CDR( X7 );
        goto L1265;
L1266:
        if  ( FALSE( scrt1_equal_3f( X6, c1047 ) ) )  goto  L1280;
        X8 = scrt1_reverse( cdecl_cdecl_2dconstants_v );
        X7 = SYMBOL_VALUE( emit_2dconsts_v );
        X7 = UNKNOWNCALL( X7, 3 );
        VIA( PROCEDURE_CODE( X7 ) )( X8, 
                                     cdecl_cdecl_2ddefine_2donly_v, 
                                     X2, PROCEDURE_CLOSURE( X7 ) );
L1280:
        if  ( FALSE( scrt1_equal_3f( X6, c1041 ) ) )  goto  L1282;
        X8 = scrt1_reverse( PAIR_CAR( X5 ) );
        X7 = SYMBOL_VALUE( emit_2dstubs_v );
        X7 = UNKNOWNCALL( X7, 2 );
        VIA( PROCEDURE_CODE( X7 ) )( X8, 
                                     X3, PROCEDURE_CLOSURE( X7 ) );
L1282:
        if  ( FALSE( scrt1_equal_3f( X6, c1050 ) ) )  goto  L1284;
        X8 = scrt1_reverse( cdecl_cdecl_2dtypes_v );
        X7 = SYMBOL_VALUE( emit_2dtypedefs_v );
        X7 = UNKNOWNCALL( X7, 4 );
        POPSTACKTRACE( VIA( PROCEDURE_CODE( X7 ) )( X8, 
                                                    cdecl_cdecl_2ddefine_2donly_v, 
                                                    cdecl_cdecl_2dread_2donly_v, 
                                                    X4, 
                                                    PROCEDURE_CLOSURE( X7 ) ) );
L1284:
        POPSTACKTRACE( FALSEVALUE );
}

DEFTSCP( cdecl_file_2droot_v );
DEFSTRING( t1286, "FILE-ROOT", 9 );
EXTERNTSCPP( scrt3_string_2d_3elist );
EXTERNTSCP( scrt3_string_2d_3elist_v );
EXTERNTSCPP( scrt3_list_2d_3estring );
EXTERNTSCP( scrt3_list_2d_3estring_v );
DEFSTRING( t1297, "LOOP [inside FILE-ROOT]", 23 );
EXTERNTSCPP( sc_cons );
EXTERNTSCP( sc_cons_v );
EXTERNTSCPP( cdecl_l1095 );

TSCP  cdecl_l1095( x1097 )
        TSCP  x1097;
{
        TSCP  X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1297 ) ) );
        if  ( EQ( UNSIGNED( x1097 ), UNSIGNED( EMPTYLIST ) ) )  goto  L1299;
        if  ( EQ( TSCPTAG( x1097 ), PAIRTAG ) )  goto  L1304;
        scrt1__24__car_2derror( x1097 );
L1304:
        X1 = PAIR_CAR( x1097 );
        if  ( TRUE( scrt1_equal_3f( X1, _TSCP( 11794 ) ) ) )  goto  L1301;
        X1 = PAIR_CAR( x1097 );
        X3 = PAIR_CDR( x1097 );
        X2 = cdecl_l1095( X3 );
        POPSTACKTRACE( sc_cons( X1, X2 ) );
L1301:
        POPSTACKTRACE( EMPTYLIST );
L1299:
        POPSTACKTRACE( EMPTYLIST );
}

TSCP  cdecl_file_2droot( f1087 )
        TSCP  f1087;
{
        TSCP  X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1286 ) ) );
        X1 = scrt3_string_2d_3elist( f1087 );
L1289:
        X2 = scrt1_member( _TSCP( 12050 ), X1 );
        if  ( FALSE( X2 ) )  goto  L1291;
        if  ( EQ( TSCPTAG( X2 ), PAIRTAG ) )  goto  L1294;
        scrt1__24__cdr_2derror( X2 );
L1294:
        X1 = PAIR_CDR( X2 );
        goto L1289;
L1291:
        X3 = cdecl_l1095( X1 );
        POPSTACKTRACE( scrt3_list_2d_3estring( X3 ) );
}

DEFTSCP( cdecl_load_2dcdecl_v );
DEFSTRING( t1308, "LOAD-CDECL", 10 );
EXTERNTSCPP( scrt5_rom_2dfile_73f9e308 );
EXTERNTSCP( scrt5_rom_2dfile_73f9e308_v );
DEFSTRING( t1311, "cdecl_l1128 [inside LOAD-CDECL]", 31 );
EXTERNTSCPP( scrt6_read );
EXTERNTSCP( scrt6_read_v );
EXTERNTSCPP( scrt6_eof_2dobject_3f );
EXTERNTSCP( scrt6_eof_2dobject_3f_v );

TSCP  cdecl_l1128( c1310 )
        TSCP  c1310;
{
        TSCP  X4, X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1311 ) ) );
        X1 = scrt6_read( EMPTYLIST );
L1314:
        if  ( TRUE( scrt6_eof_2dobject_3f( X1 ) ) )  goto  L1315;
        if  ( NEQ( TSCPTAG( X1 ), PAIRTAG ) )  goto  L1318;
        X2 = PAIR_CAR( X1 );
        goto L1319;
L1318:
        X2 = FALSEVALUE;
L1319:
        if  ( NEQ( UNSIGNED( X2 ), UNSIGNED( c1139 ) ) )  goto  L1322;
        X4 = SYMBOL_VALUE( input_2dconst_v );
        X4 = UNKNOWNCALL( X4, 1 );
        X3 = VIA( PROCEDURE_CODE( X4 ) )( X1, 
                                          PROCEDURE_CLOSURE( X4 ) );
        cdecl_cdecl_2dconstants_v = sc_cons( X3, 
                                             cdecl_cdecl_2dconstants_v );
        goto L1334;
L1322:
        if  ( NEQ( UNSIGNED( X2 ), UNSIGNED( c1143 ) ) )  goto  L1324;
        X4 = SYMBOL_VALUE( input_2dtypedef_v );
        X4 = UNKNOWNCALL( X4, 1 );
        X3 = VIA( PROCEDURE_CODE( X4 ) )( X1, 
                                          PROCEDURE_CLOSURE( X4 ) );
        cdecl_cdecl_2dtypes_v = sc_cons( X3, cdecl_cdecl_2dtypes_v );
        goto L1334;
L1324:
        if  ( NEQ( UNSIGNED( X2 ), UNSIGNED( c1147 ) ) )  goto  L1326;
        X4 = SYMBOL_VALUE( input_2dextern_v );
        X4 = UNKNOWNCALL( X4, 1 );
        X3 = VIA( PROCEDURE_CODE( X4 ) )( X1, 
                                          PROCEDURE_CLOSURE( X4 ) );
        cdecl_cdecl_2dexterns_v = sc_cons( X3, cdecl_cdecl_2dexterns_v );
        goto L1334;
L1326:
        if  ( NEQ( UNSIGNED( X2 ), UNSIGNED( c1151 ) ) )  goto  L1328;
        if  ( EQ( TSCPTAG( X1 ), PAIRTAG ) )  goto  L1331;
        scrt1__24__cdr_2derror( X1 );
L1331:
        X3 = PAIR_CDR( X1 );
        cdecl_cdecl_2dread_2donly_v = scrt1_append_2dtwo( X3, 
                                                          cdecl_cdecl_2dread_2donly_v );
        goto L1334;
L1328:
        if  ( NEQ( UNSIGNED( X2 ), UNSIGNED( c1155 ) ) )  goto  L1333;
        if  ( EQ( TSCPTAG( X1 ), PAIRTAG ) )  goto  L1336;
        scrt1__24__cdr_2derror( X1 );
L1336:
        X3 = PAIR_CDR( X1 );
        cdecl_cdecl_2ddefine_2donly_v = scrt1_append_2dtwo( X3, 
                                                            cdecl_cdecl_2ddefine_2donly_v );
        goto L1334;
L1333:
        scrt6_error( c1156, c1157, CONS( X1, EMPTYLIST ) );
L1334:
        X1 = scrt6_read( EMPTYLIST );
        goto L1314;
L1315:
        POPSTACKTRACE( FALSEVALUE );
}

TSCP  cdecl_load_2dcdecl( f1127 )
        TSCP  f1127;
{
        TSCP  X1;

        PUSHSTACKTRACE( U_TX( ADR( t1308 ) ) );
        cdecl_cdecl_2dexterns_v = EMPTYLIST;
        X1 = MAKEPROCEDURE( 0, 0, cdecl_l1128, EMPTYLIST );
        POPSTACKTRACE( scrt5_rom_2dfile_73f9e308( f1127, X1 ) );
}

void  cdecl__init(){}

static void  init_modules( compiler_version )
        char *compiler_version;
{
        scrt5__init();
        scrt3__init();
        scrt6__init();
        scrt2__init();
        scrt1__init();
        const__init();
        extern__init();
        typedef__init();
        screp__init();
        MAXDISPLAY( 0 );
}

main( argc, argv )
        int argc;  char *argv[];
{
        static int  init = 0;
        if  (init)  return;
        init = 1;
        INITHEAP( 0, argc, argv, cdecl_main );
        init_constants();
        init_modules( "(cdecl SCHEME->C COMPILER 28sep90jfb)" );
        INITIALIZEVAR( U_TX( ADR( t1226 ) ), 
                       ADR( cdecl_cdecl_2dconstants_v ), 
                       EMPTYLIST );
        INITIALIZEVAR( U_TX( ADR( t1227 ) ), 
                       ADR( cdecl_cdecl_2dtypes_v ), EMPTYLIST );
        INITIALIZEVAR( U_TX( ADR( t1228 ) ), 
                       ADR( cdecl_cdecl_2dread_2donly_v ), 
                       EMPTYLIST );
        INITIALIZEVAR( U_TX( ADR( t1229 ) ), 
                       ADR( cdecl_cdecl_2ddefine_2donly_v ), 
                       EMPTYLIST );
        INITIALIZEVAR( U_TX( ADR( t1230 ) ), 
                       ADR( cdecl_cdecl_2dexterns_v ), EMPTYLIST );
        INITIALIZEVAR( U_TX( ADR( t1231 ) ), 
                       ADR( cdecl_main_v ), 
                       MAKEPROCEDURE( 1, 
                                      0, cdecl_main, EMPTYLIST ) );
        INITIALIZEVAR( U_TX( ADR( t1286 ) ), 
                       ADR( cdecl_file_2droot_v ), 
                       MAKEPROCEDURE( 1, 
                                      0, 
                                      cdecl_file_2droot, EMPTYLIST ) );
        INITIALIZEVAR( U_TX( ADR( t1308 ) ), 
                       ADR( cdecl_load_2dcdecl_v ), 
                       MAKEPROCEDURE( 1, 
                                      0, 
                                      cdecl_load_2dcdecl, EMPTYLIST ) );
        cdecl_main( CLARGUMENTS( argc, argv ) );
        SCHEMEEXIT();
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.