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

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

/* SCHEME->C */

#include <objects.h>

DEFSTRING( t1130, "*OBARRAY*", 9 );
DEFSTATICTSCP( _2aobarray_2a_v );
DEFSTRING( t1131, "VECTOR-LENGTH", 13 );
DEFSTATICTSCP( c1124 );
DEFSTRING( t1132, "Index is not in bounds: ~s", 26 );
DEFSTATICTSCP2( c1105, t1132 );
DEFSTRING( t1133, "Argument is not an INTEGER: ~s", 30 );
DEFSTATICTSCP2( c1101, t1133 );
DEFSTRING( t1134, "Argument is not a VECTOR: ~s", 28 );
DEFSTATICTSCP2( c1098, t1134 );
DEFSTRING( t1135, "VECTOR-REF", 10 );
DEFSTATICTSCP( c1097 );
DEFSTRING( t1136, "Argument not a PAIR: ~s", 23 );
DEFSTATICTSCP2( c1030, t1136 );
DEFSTRING( t1137, "SET-CDR!", 8 );
DEFSTATICTSCP( c1029 );
DEFSTRING( t1138, "SCC", 3 );
DEFSTATICTSCP( c1013 );

static void  init_constants()
{
        _2aobarray_2a_v = STRINGTOSYMBOL( U_TX( ADR( t1130 ) ) );
        CONSTANTEXP( ADR( _2aobarray_2a_v ) );
        c1124 = STRINGTOSYMBOL( U_TX( ADR( t1131 ) ) );
        CONSTANTEXP( ADR( c1124 ) );
        c1097 = STRINGTOSYMBOL( U_TX( ADR( t1135 ) ) );
        CONSTANTEXP( ADR( c1097 ) );
        c1029 = STRINGTOSYMBOL( U_TX( ADR( t1137 ) ) );
        CONSTANTEXP( ADR( c1029 ) );
        c1013 = STRINGTOSYMBOL( U_TX( ADR( t1138 ) ) );
        CONSTANTEXP( ADR( c1013 ) );
}

DEFTSCP( plist_get_v );
DEFSTRING( t1139, "GET", 3 );
EXTERNTSCPP( scrt1_assq );
EXTERNTSCP( scrt1_assq_v );
EXTERNTSCPP( scrt2_getprop );
EXTERNTSCP( scrt2_getprop_v );
EXTERNTSCPP( scrt1__24__cdr_2derror );
EXTERNTSCP( scrt1__24__cdr_2derror_v );

TSCP  plist_get( i1002, k1003 )
        TSCP  i1002, k1003;
{
        TSCP  X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1139 ) ) );
        X3 = scrt2_getprop( i1002, c1013 );
        if  ( FALSE( X3 ) )  goto  L1142;
        X2 = X3;
        goto L1143;
L1142:
        X2 = EMPTYLIST;
L1143:
        X1 = scrt1_assq( k1003, X2 );
        if  ( FALSE( X1 ) )  goto  L1145;
        if  ( EQ( TSCPTAG( X1 ), PAIRTAG ) )  goto  L1148;
        scrt1__24__cdr_2derror( X1 );
L1148:
        POPSTACKTRACE( PAIR_CDR( X1 ) );
L1145:
        POPSTACKTRACE( EMPTYLIST );
}

DEFTSCP( plist_put_v );
DEFSTRING( t1150, "PUT", 3 );
EXTERNTSCPP( scrt6_error );
EXTERNTSCP( scrt6_error_v );
EXTERNTSCPP( scrt2_putprop );
EXTERNTSCP( scrt2_putprop_v );
EXTERNTSCPP( sc_cons );
EXTERNTSCP( sc_cons_v );

TSCP  plist_put( i1017, k1018, v1019 )
        TSCP  i1017, k1018, v1019;
{
        TSCP  X4, X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1150 ) ) );
        X2 = scrt2_getprop( i1017, c1013 );
        if  ( FALSE( X2 ) )  goto  L1153;
        X1 = X2;
        goto L1154;
L1153:
        X1 = EMPTYLIST;
L1154:
        X2 = scrt1_assq( k1018, X1 );
        if  ( FALSE( X2 ) )  goto  L1157;
        if  ( EQ( TSCPTAG( X2 ), PAIRTAG ) )  goto  L1160;
        scrt6_error( c1029, c1030, CONS( X2, EMPTYLIST ) );
L1160:
        SETGEN( PAIR_CDR( X2 ), v1019 );
        goto L1158;
L1157:
        X4 = sc_cons( k1018, v1019 );
        X3 = sc_cons( X4, X1 );
        scrt2_putprop( i1017, c1013, X3 );
L1158:
        POPSTACKTRACE( v1019 );
}

DEFTSCP( plist_copy_2dplist_v );
DEFSTRING( t1162, "COPY-PLIST", 10 );
EXTERNTSCPP( scrt2__2d_2dtwo );
EXTERNTSCP( scrt2__2d_2dtwo_v );
EXTERNTSCPP( scrt2__3d_2dtwo );
EXTERNTSCP( scrt2__3d_2dtwo_v );
EXTERNTSCPP( scrt1__24__car_2derror );
EXTERNTSCP( scrt1__24__car_2derror_v );
DEFSTRING( t1199, "LOOP [inside COPY-PLIST]", 24 );
EXTERNTSCPP( plist_l1079 );

TSCP  plist_l1079( v1081 )
        TSCP  v1081;
{
        TSCP  X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1199 ) ) );
        if  ( NEQ( TSCPTAG( v1081 ), PAIRTAG ) )  goto  L1201;
        X2 = PAIR_CAR( v1081 );
        X1 = plist_l1079( X2 );
        X3 = PAIR_CDR( v1081 );
        X2 = plist_l1079( X3 );
        POPSTACKTRACE( sc_cons( X1, X2 ) );
L1201:
        POPSTACKTRACE( v1081 );
}

TSCP  plist_copy_2dplist( s1037, d1038 )
        TSCP  s1037, d1038;
{
        TSCP  X6, X5, X4, X3, X2, X1;

        PUSHSTACKTRACE( U_TX( ADR( t1162 ) ) );
        X3 = SYMBOL_VALUE( _2aobarray_2a_v );
        if  ( AND( EQ( TSCPTAG( X3 ), EXTENDEDTAG ), 
                   EQ( TSCP_EXTENDEDTAG( X3 ), VECTORTAG ) ) )  goto  L1166;
        scrt6_error( c1124, c1098, CONS( X3, EMPTYLIST ) );
L1166:
        X2 = C_FIXED( VECTOR_LENGTH( X3 ) );
        if  ( BITAND( BITOR( INT( X2 ), INT( _TSCP( 4 ) ) ), 
                      3 ) )  goto  L1169;
        X1 = _TSCP( IDIFFERENCE( INT( X2 ), 
                                 INT( _TSCP( 4 ) ) ) );
        goto L1170;
L1169:
        X1 = scrt2__2d_2dtwo( X2, _TSCP( 4 ) );
L1170:
        if  ( BITAND( BITOR( INT( X1 ), INT( _TSCP( -4 ) ) ), 
                      3 ) )  goto  L1173;
        if  ( NEQ( UNSIGNED( X1 ), UNSIGNED( _TSCP( -4 ) ) ) )  goto  L1177;
        POPSTACKTRACE( FALSEVALUE );
L1173:
        if  ( FALSE( scrt2__3d_2dtwo( X1, _TSCP( -4 ) ) ) )  goto  L1177;
        POPSTACKTRACE( FALSEVALUE );
L1177:
        X3 = SYMBOL_VALUE( _2aobarray_2a_v );
        if  ( AND( EQ( TSCPTAG( X3 ), EXTENDEDTAG ), 
                   EQ( TSCP_EXTENDEDTAG( X3 ), VECTORTAG ) ) )  goto  L1182;
        scrt6_error( c1097, c1098, CONS( X3, EMPTYLIST ) );
L1182:
        if  ( EQ( TSCPTAG( X1 ), FIXNUMTAG ) )  goto  L1184;
        scrt6_error( c1097, c1101, CONS( X1, EMPTYLIST ) );
L1184:
        if  ( LT( UNSIGNED( FIXED_C( X1 ) ), 
                  UNSIGNED( VECTOR_LENGTH( X3 ) ) ) )  goto  L1186;
        scrt6_error( c1097, c1105, CONS( X1, EMPTYLIST ) );
L1186:
        X2 = VECTOR_ELEMENT( X3, X1 );
        X3 = X2;
L1190:
        if  ( EQ( UNSIGNED( X3 ), UNSIGNED( EMPTYLIST ) ) )  goto  L1191;
        if  ( EQ( TSCPTAG( X3 ), PAIRTAG ) )  goto  L1195;
        scrt1__24__car_2derror( X3 );
L1195:
        X4 = PAIR_CAR( X3 );
        X6 = scrt2_getprop( X4, s1037 );
        X5 = plist_l1079( X6 );
        scrt2_putprop( X4, d1038, X5 );
        X3 = PAIR_CDR( X3 );
        goto L1190;
L1191:
        if  ( BITAND( BITOR( INT( X1 ), INT( _TSCP( 4 ) ) ), 
                      3 ) )  goto  L1206;
        X1 = _TSCP( IDIFFERENCE( INT( X1 ), 
                                 INT( _TSCP( 4 ) ) ) );
        goto L1170;
L1206:
        X1 = scrt2__2d_2dtwo( X1, _TSCP( 4 ) );
        goto L1170;
}

static void  init_modules( compiler_version )
        char *compiler_version;
{
        scrt6__init();
        scrt2__init();
        scrt1__init();
        MAXDISPLAY( 0 );
}

void  plist__init()
{
        static int  init = 0;
        if  (init)  return;
        init = 1;
        INITHEAP( 0, 0, 0, 0 );
        init_constants();
        init_modules( "(plist SCHEME->C COMPILER 28sep90jfb)" );
        INITIALIZEVAR( U_TX( ADR( t1139 ) ), 
                       ADR( plist_get_v ), 
                       MAKEPROCEDURE( 2, 
                                      0, plist_get, EMPTYLIST ) );
        INITIALIZEVAR( U_TX( ADR( t1150 ) ), 
                       ADR( plist_put_v ), 
                       MAKEPROCEDURE( 3, 
                                      0, plist_put, EMPTYLIST ) );
        INITIALIZEVAR( U_TX( ADR( t1162 ) ), 
                       ADR( plist_copy_2dplist_v ), 
                       MAKEPROCEDURE( 2, 
                                      0, 
                                      plist_copy_2dplist, EMPTYLIST ) );
        return;
}

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