This is sceval.c in view mode; [Download] [Up]
/* SCHEME->C */ #include <objects.h> DEFSTATICTSCP( c1313 ); DEFSTRING( t1320, "X", 1 ); DEFSTATICTSCP( t1319 ); DEFSTRING( t1322, "LAMBDA", 6 ); DEFSTATICTSCP( t1321 ); DEFSTRING( t1323, "Argument value is not a function: ~s", 36 ); DEFSTATICTSCP2( c1189, t1323 ); DEFSTRING( t1324, "BEGIN", 5 ); DEFSTATICTSCP( c1162 ); DEFSTRING( t1325, "SET!", 4 ); DEFSTATICTSCP( c1158 ); DEFSTRING( t1326, "IF", 2 ); DEFSTATICTSCP( c1154 ); DEFSTRING( t1327, "LAMBDA", 6 ); DEFSTATICTSCP( c1150 ); DEFSTRING( t1328, "QUOTE", 5 ); DEFSTATICTSCP( c1146 ); DEFSTRING( t1329, "Argument is not self-evaluating: ~s", 35 ); DEFSTATICTSCP2( c1140, t1329 ); DEFSTRING( t1330, "EXEC", 4 ); DEFSTATICTSCP( c1139 ); DEFSTRING( t1331, "Argument not a PAIR: ~s", 23 ); DEFSTATICTSCP2( c1116, t1331 ); DEFSTRING( t1332, "SET-CDR!", 8 ); DEFSTATICTSCP( c1115 ); DEFSTRING( t1333, "Top-level symbol is undefined", 29 ); DEFSTATICTSCP2( c1098, t1333 ); DEFSTRING( t1334, "Too many arguments to function", 30 ); DEFSTATICTSCP2( c1086, t1334 ); DEFSTRING( t1335, "Too few arguments to function", 29 ); DEFSTATICTSCP2( c1084, t1335 ); DEFSTRING( t1336, "NEW-ENV", 7 ); DEFSTATICTSCP( c1083 ); static void init_constants() { TSCP X1; c1313 = EMPTYLIST; t1319 = STRINGTOSYMBOL( U_TX( ADR( t1320 ) ) ); c1313 = CONS( t1319, c1313 ); X1 = EMPTYLIST; X1 = CONS( t1319, X1 ); c1313 = CONS( X1, c1313 ); t1321 = STRINGTOSYMBOL( U_TX( ADR( t1322 ) ) ); c1313 = CONS( t1321, c1313 ); CONSTANTEXP( ADR( c1313 ) ); c1162 = STRINGTOSYMBOL( U_TX( ADR( t1324 ) ) ); CONSTANTEXP( ADR( c1162 ) ); c1158 = STRINGTOSYMBOL( U_TX( ADR( t1325 ) ) ); CONSTANTEXP( ADR( c1158 ) ); c1154 = STRINGTOSYMBOL( U_TX( ADR( t1326 ) ) ); CONSTANTEXP( ADR( c1154 ) ); c1150 = STRINGTOSYMBOL( U_TX( ADR( t1327 ) ) ); CONSTANTEXP( ADR( c1150 ) ); c1146 = STRINGTOSYMBOL( U_TX( ADR( t1328 ) ) ); CONSTANTEXP( ADR( c1146 ) ); c1139 = STRINGTOSYMBOL( U_TX( ADR( t1330 ) ) ); CONSTANTEXP( ADR( c1139 ) ); c1115 = STRINGTOSYMBOL( U_TX( ADR( t1332 ) ) ); CONSTANTEXP( ADR( c1115 ) ); c1083 = STRINGTOSYMBOL( U_TX( ADR( t1336 ) ) ); CONSTANTEXP( ADR( c1083 ) ); } DEFTSCP( sceval_eval_v ); DEFSTRING( t1337, "EVAL", 4 ); EXTERNTSCPP( sceval_exec ); EXTERNTSCP( sceval_exec_v ); EXTERNTSCPP( scexpand_expand ); EXTERNTSCP( scexpand_expand_v ); EXTERNTSCPP( scrt1__24__car_2derror ); EXTERNTSCP( scrt1__24__car_2derror_v ); TSCP sceval_eval( f1043, e1044 ) TSCP f1043, e1044; { TSCP X2, X1; PUSHSTACKTRACE( U_TX( ADR( t1337 ) ) ); X1 = scexpand_expand( f1043 ); if ( FALSE( e1044 ) ) goto L1339; if ( EQ( TSCPTAG( e1044 ), PAIRTAG ) ) goto L1342; scrt1__24__car_2derror( e1044 ); L1342: X2 = PAIR_CAR( e1044 ); goto L1340; L1339: X2 = EMPTYLIST; L1340: POPSTACKTRACE( sceval_exec( X1, X2 ) ); } DEFTSCP( sceval_new_2denv_v ); DEFSTRING( t1344, "SCEVAL_NEW-ENV", 14 ); EXTERNTSCPP( scrt6_error ); EXTERNTSCP( scrt6_error_v ); EXTERNTSCPP( sc_cons ); EXTERNTSCP( sc_cons_v ); EXTERNTSCPP( sceval_new_2denv ); EXTERNTSCP( sceval_new_2denv_v ); TSCP sceval_new_2denv( i1052, v1053, e1054 ) TSCP i1052, v1053, e1054; { TSCP X4, X3, X2, X1; PUSHSTACKTRACE( U_TX( ADR( t1344 ) ) ); if ( NEQ( UNSIGNED( i1052 ), UNSIGNED( EMPTYLIST ) ) ) goto L1346; if ( FALSE( v1053 ) ) goto L1349; scrt6_error( c1083, c1086, EMPTYLIST ); L1349: POPSTACKTRACE( e1054 ); L1346: if ( NOT( AND( EQ( TSCPTAG( i1052 ), EXTENDEDTAG ), EQ( TSCP_EXTENDEDTAG( i1052 ), SYMBOLTAG ) ) ) ) goto L1351; X1 = sc_cons( i1052, v1053 ); POPSTACKTRACE( sc_cons( X1, e1054 ) ); L1351: if ( NEQ( UNSIGNED( v1053 ), UNSIGNED( EMPTYLIST ) ) ) goto L1353; POPSTACKTRACE( scrt6_error( c1083, c1084, EMPTYLIST ) ); L1353: if ( EQ( TSCPTAG( i1052 ), PAIRTAG ) ) goto L1356; scrt1__24__car_2derror( i1052 ); L1356: X2 = PAIR_CAR( i1052 ); if ( EQ( TSCPTAG( v1053 ), PAIRTAG ) ) goto L1359; scrt1__24__car_2derror( v1053 ); L1359: X3 = PAIR_CAR( v1053 ); X1 = sc_cons( X2, X3 ); X3 = PAIR_CDR( i1052 ); X4 = PAIR_CDR( v1053 ); X2 = sceval_new_2denv( X3, X4, e1054 ); POPSTACKTRACE( sc_cons( X1, X2 ) ); } DEFTSCP( sceval_lookup_v ); DEFSTRING( t1363, "SCEVAL_LOOKUP", 13 ); EXTERNTSCPP( scrt1_assq ); EXTERNTSCP( scrt1_assq_v ); EXTERNTSCPP( scrt1__24__cdr_2derror ); EXTERNTSCP( scrt1__24__cdr_2derror_v ); EXTERNTSCPP( scrt2_top_2dlevel_2dvalue ); EXTERNTSCP( scrt2_top_2dlevel_2dvalue_v ); EXTERNTSCP( sc_undefined ); TSCP sceval_lookup( i1089, e1090 ) TSCP i1089, e1090; { TSCP X2, X1; PUSHSTACKTRACE( U_TX( ADR( t1363 ) ) ); X1 = scrt1_assq( i1089, e1090 ); if ( FALSE( X1 ) ) goto L1366; if ( EQ( TSCPTAG( X1 ), PAIRTAG ) ) goto L1369; scrt1__24__cdr_2derror( X1 ); L1369: POPSTACKTRACE( PAIR_CDR( X1 ) ); L1366: X2 = scrt2_top_2dlevel_2dvalue( i1089 ); if ( NEQ( UNSIGNED( X2 ), UNSIGNED( sc_undefined ) ) ) goto L1372; POPSTACKTRACE( scrt6_error( i1089, c1098, EMPTYLIST ) ); L1372: POPSTACKTRACE( X2 ); } DEFTSCP( sceval_assign_v ); DEFSTRING( t1374, "SCEVAL_ASSIGN", 13 ); EXTERNTSCPP( scrt2_2dvalue_21_c9d2a496 ); EXTERNTSCP( scrt2_2dvalue_21_c9d2a496_v ); TSCP sceval_assign( i1105, v1106, e1107 ) TSCP i1105, v1106, e1107; { TSCP X2, X1; PUSHSTACKTRACE( U_TX( ADR( t1374 ) ) ); X1 = scrt1_assq( i1105, e1107 ); if ( FALSE( X1 ) ) goto L1377; if ( EQ( TSCPTAG( X1 ), PAIRTAG ) ) goto L1380; scrt6_error( c1115, c1116, CONS( X1, EMPTYLIST ) ); L1380: POPSTACKTRACE( SETGEN( PAIR_CDR( X1 ), v1106 ) ); L1377: POPSTACKTRACE( scrt2_2dvalue_21_c9d2a496( i1105, v1106 ) ); } DEFTSCP( sceval_exec_v ); DEFSTRING( t1382, "SCEVAL_EXEC", 11 ); DEFSTRING( t1408, "sceval_l1275 [inside EXEC]", 26 ); EXTERNTSCP( sceval_ail_2dcall_5d70cec4_v ); TSCP sceval_l1275( v1276, c1407 ) TSCP v1276, c1407; { TSCP X7, X6, X5, X4, X3, X2, X1; PUSHSTACKTRACE( U_TX( ADR( t1408 ) ) ); X1 = DISPLAY( 2 ); DISPLAY( 2 ) = CLOSURE_VAR( c1407, 0 ); X2 = DISPLAY( 1 ); DISPLAY( 1 ) = CLOSURE_VAR( c1407, 1 ); X3 = DISPLAY( 0 ); DISPLAY( 0 ) = CLOSURE_VAR( c1407, 2 ); if ( FALSE( sceval_ail_2dcall_5d70cec4_v ) ) goto L1410; X7 = sceval_new_2denv( DISPLAY( 1 ), v1276, DISPLAY( 2 ) ); X6 = sc_cons( X7, EMPTYLIST ); X5 = sc_cons( DISPLAY( 0 ), X6 ); X4 = X5; goto L1411; L1410: X5 = sceval_new_2denv( DISPLAY( 1 ), v1276, DISPLAY( 2 ) ); X4 = sceval_exec( DISPLAY( 0 ), X5 ); L1411: DISPLAY( 2 ) = X1; DISPLAY( 1 ) = X2; DISPLAY( 0 ) = X3; POPSTACKTRACE( X4 ); } EXTERNTSCPP( scrt1_caddr ); EXTERNTSCP( scrt1_caddr_v ); EXTERNTSCPP( scrt1_cadddr ); EXTERNTSCP( scrt1_cadddr_v ); DEFSTRING( t1445, "LOOP [inside EXEC]", 18 ); EXTERNTSCPP( sceval_l1199 ); TSCP sceval_l1199( x1201, e1202 ) TSCP x1201, e1202; { TSCP X3, X2, X1; PUSHSTACKTRACE( U_TX( ADR( t1445 ) ) ); if ( EQ( UNSIGNED( x1201 ), UNSIGNED( EMPTYLIST ) ) ) goto L1447; if ( EQ( TSCPTAG( x1201 ), PAIRTAG ) ) goto L1450; scrt1__24__car_2derror( x1201 ); L1450: X2 = PAIR_CAR( x1201 ); X1 = sceval_exec( X2, e1202 ); X3 = PAIR_CDR( x1201 ); X2 = sceval_l1199( X3, e1202 ); POPSTACKTRACE( sc_cons( X1, X2 ) ); L1447: POPSTACKTRACE( x1201 ); } EXTERNUNSIGNEDP( sc_procedureaddress ); EXTERNTSCP( sceval_interpreted_2dproc_v ); EXTERNTSCPP( sc_apply_2dtwo ); EXTERNTSCP( sc_apply_2dtwo_v ); EXTERNTSCPP( scrt1_boolean_3f ); EXTERNTSCP( scrt1_boolean_3f_v ); TSCP sceval_exec( e1119, e1120 ) TSCP e1119, e1120; { TSCP X7, X6, X5, X4, X3, X2, X1; TSCP SD0 = DISPLAY( 0 ); TSCP SD1 = DISPLAY( 1 ); TSCP SD2 = DISPLAY( 2 ); TSCP SDVAL; PUSHSTACKTRACE( U_TX( ADR( t1382 ) ) ); L1383: LOOPSTACKTRACE( e1119, e1120 ); if ( NOT( AND( EQ( TSCPTAG( e1119 ), EXTENDEDTAG ), EQ( TSCP_EXTENDEDTAG( e1119 ), SYMBOLTAG ) ) ) ) goto L1384; SDVAL = sceval_lookup( e1119, e1120 ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1384: if ( NEQ( TSCPTAG( e1119 ), PAIRTAG ) ) goto L1386; X1 = PAIR_CAR( e1119 ); if ( NEQ( UNSIGNED( X1 ), UNSIGNED( c1146 ) ) ) goto L1390; X2 = PAIR_CDR( e1119 ); if ( EQ( TSCPTAG( X2 ), PAIRTAG ) ) goto L1394; scrt1__24__car_2derror( X2 ); L1394: SDVAL = PAIR_CAR( X2 ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1390: if ( NEQ( UNSIGNED( X1 ), UNSIGNED( c1150 ) ) ) goto L1396; X3 = PAIR_CDR( e1119 ); if ( EQ( TSCPTAG( X3 ), PAIRTAG ) ) goto L1400; scrt1__24__cdr_2derror( X3 ); L1400: X2 = PAIR_CDR( X3 ); DISPLAY( 0 ) = sc_cons( c1162, X2 ); X2 = PAIR_CDR( e1119 ); if ( EQ( TSCPTAG( X2 ), PAIRTAG ) ) goto L1404; scrt1__24__car_2derror( X2 ); L1404: DISPLAY( 1 ) = PAIR_CAR( X2 ); DISPLAY( 2 ) = e1120; SDVAL = MAKEPROCEDURE( 0, 1, sceval_l1275, MAKECLOSURE( EMPTYLIST, 3, DISPLAY( 2 ), DISPLAY( 1 ), DISPLAY( 0 ) ) ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1396: if ( NEQ( UNSIGNED( X1 ), UNSIGNED( c1154 ) ) ) goto L1413; X3 = PAIR_CDR( e1119 ); if ( EQ( TSCPTAG( X3 ), PAIRTAG ) ) goto L1419; scrt1__24__car_2derror( X3 ); L1419: X2 = PAIR_CAR( X3 ); if ( FALSE( sceval_exec( X2, e1120 ) ) ) goto L1415; X2 = scrt1_caddr( e1119 ); e1119 = X2; goto L1383; L1415: X2 = scrt1_cadddr( e1119 ); e1119 = X2; goto L1383; L1413: if ( NEQ( UNSIGNED( X1 ), UNSIGNED( c1158 ) ) ) goto L1421; X3 = PAIR_CDR( e1119 ); if ( EQ( TSCPTAG( X3 ), PAIRTAG ) ) goto L1425; scrt1__24__car_2derror( X3 ); L1425: X2 = PAIR_CAR( X3 ); X4 = scrt1_caddr( e1119 ); X3 = sceval_exec( X4, e1120 ); SDVAL = sceval_assign( X2, X3, e1120 ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1421: if ( NEQ( UNSIGNED( X1 ), UNSIGNED( c1162 ) ) ) goto L1427; X2 = PAIR_CDR( e1119 ); L1431: if ( EQ( TSCPTAG( X2 ), PAIRTAG ) ) goto L1435; scrt1__24__cdr_2derror( X2 ); L1435: X3 = PAIR_CDR( X2 ); if ( NEQ( UNSIGNED( X3 ), UNSIGNED( EMPTYLIST ) ) ) goto L1432; X3 = PAIR_CAR( X2 ); e1119 = X3; goto L1383; L1432: if ( EQ( TSCPTAG( X2 ), PAIRTAG ) ) goto L1440; scrt1__24__car_2derror( X2 ); L1440: X3 = PAIR_CAR( X2 ); sceval_exec( X3, e1120 ); X2 = PAIR_CDR( X2 ); goto L1431; L1427: X3 = PAIR_CAR( e1119 ); X2 = sceval_exec( X3, e1120 ); X4 = PAIR_CDR( e1119 ); X3 = sceval_l1199( X4, e1120 ); X4 = EMPTYLIST; X4 = CONS( X4, EMPTYLIST ); if ( NOT( AND( EQ( TSCPTAG( X2 ), EXTENDEDTAG ), EQ( TSCP_EXTENDEDTAG( X2 ), PROCEDURETAG ) ) ) ) goto L1455; X5 = UNSIGNED_TSCP( sc_procedureaddress( X2 ) ); X6 = UNSIGNED_TSCP( sc_procedureaddress( sceval_interpreted_2dproc_v ) ); if ( NOT( OR( EQ( UNSIGNED( X5 ), UNSIGNED( X6 ) ), AND( EQ( TSCPTAG( X5 ), EXTENDEDTAG ), AND( EQ( TSCP_EXTENDEDTAG( X5 ), FLOATTAG ), AND( EQ( TSCPTAG( X6 ), EXTENDEDTAG ), AND( EQ( TSCP_EXTENDEDTAG( X6 ), FLOATTAG ), EQ( FLOAT_VALUE( X5 ), FLOAT_VALUE( X6 ) ) ) ) ) ) ) ) ) goto L1457; sceval_ail_2dcall_5d70cec4_v = TRUEVALUE; X5 = sc_apply_2dtwo( X2, X3 ); SETGEN( PAIR_CAR( X4 ), X5 ); sceval_ail_2dcall_5d70cec4_v = FALSEVALUE; X6 = PAIR_CAR( X4 ); if ( EQ( TSCPTAG( X6 ), PAIRTAG ) ) goto L1461; scrt1__24__car_2derror( X6 ); L1461: X5 = PAIR_CAR( X6 ); X6 = PAIR_CAR( X4 ); if ( EQ( TSCPTAG( X6 ), PAIRTAG ) ) goto L1465; scrt1__24__cdr_2derror( X6 ); L1465: X7 = PAIR_CDR( X6 ); if ( EQ( TSCPTAG( X7 ), PAIRTAG ) ) goto L1468; scrt1__24__car_2derror( X7 ); L1468: e1120 = PAIR_CAR( X7 ); e1119 = X5; goto L1383; L1457: SDVAL = sc_apply_2dtwo( X2, X3 ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1455: SDVAL = scrt6_error( c1139, c1189, CONS( PAIR_CAR( e1119 ), EMPTYLIST ) ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1386: if ( EQ( TSCPTAG( e1119 ), FIXNUMTAG ) ) goto L1471; if ( AND( EQ( TSCPTAG( e1119 ), EXTENDEDTAG ), EQ( TSCP_EXTENDEDTAG( e1119 ), FLOATTAG ) ) ) goto L1473; if ( AND( EQ( TSCPTAG( e1119 ), EXTENDEDTAG ), EQ( TSCP_EXTENDEDTAG( e1119 ), STRINGTAG ) ) ) goto L1475; if ( EQ( TSCPIMMEDIATETAG( e1119 ), CHARACTERTAG ) ) goto L1477; if ( TRUE( scrt1_boolean_3f( e1119 ) ) ) goto L1479; SDVAL = scrt6_error( c1139, c1140, CONS( e1119, EMPTYLIST ) ); DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1479: SDVAL = e1119; DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1477: SDVAL = e1119; DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1475: SDVAL = e1119; DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1473: SDVAL = e1119; DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); L1471: SDVAL = e1119; DISPLAY( 0 ) = SD0; DISPLAY( 1 ) = SD1; DISPLAY( 2 ) = SD2; POPSTACKTRACE( SDVAL ); } DEFTSCP( sceval_ail_2dcall_5d70cec4_v ); DEFSTRING( t1481, "SCEVAL_INTERPRETED-TAIL-CALL", 28 ); DEFTSCP( sceval_interpreted_2dproc_v ); DEFSTRING( t1482, "SCEVAL_INTERPRETED-PROC", 23 ); static void init_modules( compiler_version ) char *compiler_version; { scrt2__init(); scrt6__init(); scrt1__init(); scexpand__init(); scrt1__init(); scrt2__init(); scrt3__init(); scrt4__init(); scrt5__init(); scrt6__init(); scrt7__init(); MAXDISPLAY( 3 ); } void sceval__init() { static int init = 0; if (init) return; init = 1; INITHEAP( 0, 0, 0, 0 ); init_constants(); init_modules( "(sceval SCHEME->C COMPILER 28sep90jfb)" ); INITIALIZEVAR( U_TX( ADR( t1337 ) ), ADR( sceval_eval_v ), MAKEPROCEDURE( 1, 1, sceval_eval, EMPTYLIST ) ); INITIALIZEVAR( U_TX( ADR( t1344 ) ), ADR( sceval_new_2denv_v ), MAKEPROCEDURE( 3, 0, sceval_new_2denv, EMPTYLIST ) ); INITIALIZEVAR( U_TX( ADR( t1363 ) ), ADR( sceval_lookup_v ), MAKEPROCEDURE( 2, 0, sceval_lookup, EMPTYLIST ) ); INITIALIZEVAR( U_TX( ADR( t1374 ) ), ADR( sceval_assign_v ), MAKEPROCEDURE( 3, 0, sceval_assign, EMPTYLIST ) ); INITIALIZEVAR( U_TX( ADR( t1382 ) ), ADR( sceval_exec_v ), MAKEPROCEDURE( 2, 0, sceval_exec, EMPTYLIST ) ); INITIALIZEVAR( U_TX( ADR( t1481 ) ), ADR( sceval_ail_2dcall_5d70cec4_v ), EMPTYLIST ); INITIALIZEVAR( U_TX( ADR( t1482 ) ), ADR( sceval_interpreted_2dproc_v ), sceval_exec( c1313, EMPTYLIST ) ); return; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.