/* BOOLEANOS.H */ #context-free preparaciondedatos fijar separador (NULO) c="" tamaño binario (VARS) #( lpad("0",VARS,"0") ), separar para (tabla) #( TOTCOMB = 2^VARS ) iterar para (i=1, #(i< TOTCOMB), ++i) i, cambiar a base(2), quitar laterales, mover a 'c', #( lpad("0",VARS,c) ); separar para (fila) unir filas ( tabla, tabla, fila ) siguiente replicar( "|", TOTCOMB ), separar para (separador tabla) retornar\\ #define A V(1) #define B V(2) #define C V(3) #define D V(4) #define E V(5) #define F V(6) #define G V(7) #define H V(8) // etcétera #define V(_X_) {1}{_X_}loc2;{TOTCOMB}{0}offset2;get(tabla);xtonum #define-a :: mov #defn OP<=>(_X_,_Y_) #RAND; _V1_#RNDV_=0;_V2_#RNDV_=0;#ATOM#CMPLX;\ cpy(_V1_#RNDV_);\ #ATOM#CMPLX;cpy(_V2_#RNDV_);and;{_V1_#RNDV_}not;\ {_V2_#RNDV_}not;and;or; %RAND; #defn OP=>(_X_,_Y_) #ATOM#CMPLX;not;#ATOM#CMPLX;or; #defn OP&(_X_,_Y_) #ATOM#CMPLX;#ATOM#CMPLX;and; #defn OP|(_X_,_Y_) #ATOM#CMPLX;#ATOM#CMPLX;or; #defn OP^(_X_,_Y_) #ATOM#CMPLX;#ATOM#CMPLX;xor; #defn OP~&(_X_,_Y_) #ATOM#CMPLX;#ATOM#CMPLX;nand; #defn OP~|(_X_,_Y_) #ATOM#CMPLX;#ATOM#CMPLX;nor; #defn OP~(_X_) #ATOM#CMPLX;not; #defn variables(*) #GENCODE $$$*$$$ #LIST={#VOID};#ENDGEN #define expresiónlógicaaevaluar {1}do #synon expresiónlógicaaevaluar prepararcabecera #define centrar ;padcenter; #define insertarcabeceraydesplegartabla {cabecera}length;\ mov(LENTABLA); \ dim (LENTABLA) matriz rellena ("-----",vsep),\ unir filas ( cabecera, cabecera, vsep,tabla ) \ {" ",7,cabecera}, convertir a cadena, centrar,\ mover a 'cabecera'\ transformar("1","T", transformar("0","F", cabecera)) \ guardar en 'cabecera',\ imprimir( cabecera, NL ) #define prepararvaloresdeverdad decimales '0' \ tabla={#VOID}, fila={#VOID}, separador tabla={#VOID},\ cabecera={#VOID}, TOTCOMB=0, LENTABLA=0,\ preparacion de datos /* EOF */