Annotation of 40BSD/cmd/apl/apl.h, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: 
        !             3: double *test1;
        !             4: double gamma();
        !             5: /*
        !             6:  *  A P L
        !             7:  */
        !             8: 
        !             9: /*
        !            10:  *  Magic numbers
        !            11:  */
        !            12: 
        !            13: #define OPERBOXSIZE 76
        !            14: 
        !            15: #define MRANK  8                       /* Size of dimension buffer     */
        !            16: #define CANBS  300                     /* Size of input buffer         */
        !            17: #define STKS   50                      /* Size of stack increment      */
        !            18: #define NLS    100                     /* Size of namelist             */
        !            19: #define NAMS   24                      /* Size of name buffer          */
        !            20: #define OBJS   500                     /* Size of compiled expr buffer */
        !            21: #define MAGIC  0100554                 /* Magic word for WS file       */
        !            22: 
        !            23: /*
        !            24:  *  Magic words
        !            25:  */
        !            26: 
        !            27: #define        EDIT_ED "/usr/bin/ed"
        !            28: #define        EDIT_EX "/usr/ucb/ex"
        !            29: #define EDIT_VI "/usr/ucb/vi"
        !            30: 
        !            31: /*
        !            32:  *  Debug modes
        !            33:  */
        !            34: #define FULLD 1
        !            35: 
        !            36: #ifdef FULLD
        !            37: #define SOMED SOMED
        !            38: #endif
        !            39: 
        !            40: #ifdef SHORTD
        !            41: #define SOMED SOMED
        !            42: #endif
        !            43: 
        !            44: /*
        !            45:  *  Derived constants
        !            46:  */
        !            47: 
        !            48: #define        SDAT    sizeof datum
        !            49: #define        SINT    sizeof integ
        !            50: 
        !            51: /*
        !            52:  *  Interpreter Op Codes
        !            53:  */
        !            54: 
        !            55: #define EOF    (-1)
        !            56: #define EOL    0
        !            57: 
        !            58: #define ADD    1
        !            59: #define PLUS   2
        !            60: #define SUB    3
        !            61: #define MINUS  4
        !            62: #define MUL    5
        !            63: #define SGN    6
        !            64: #define DIV    7
        !            65: #define RECIP  8
        !            66: #define MOD    9
        !            67: #define ABS    10
        !            68: #define MIN    11
        !            69: #define FLOOR  12
        !            70: #define MAX    13
        !            71: #define CEIL   14
        !            72: #define PWR    15
        !            73: #define EXP    16
        !            74: #define LOG    17
        !            75: #define LOGE   18
        !            76: #define CIR    19
        !            77: #define PI     20
        !            78: #define COMB   21
        !            79: #define FAC    22
        !            80: 
        !            81: #define DEAL   23
        !            82: #define RAND   24
        !            83: #define DRHO   25
        !            84: #define MRHO   26
        !            85: #define DIOT   27
        !            86: #define MIOT   28
        !            87: #define ROT0   29
        !            88: #define REV0   30
        !            89: #define DTRN   31
        !            90: #define MTRN   32
        !            91: #define DIBM   33
        !            92: #define MIBM   34
        !            93: 
        !            94: #define GDU    35
        !            95: #define GDUK   36
        !            96: #define GDD    37
        !            97: #define GDDK   38
        !            98: #define EXD    39
        !            99: #define SCAN   40
        !           100: #define EXDK   41
        !           101: #define SCANK  42
        !           102: #define IPROD  43
        !           103: #define OPROD  44
        !           104: #define QUAD   45
        !           105: #define QQUAD  46
        !           106: #define BRAN0  47
        !           107: #define BRAN   48
        !           108: #define DDOM   49
        !           109: #define MDOM   50
        !           110: 
        !           111: #define COM    51
        !           112: #define RED    52
        !           113: #define COMK   53
        !           114: #define REDK   54
        !           115: #define ROT    55
        !           116: #define REV    56
        !           117: #define ROTK   57
        !           118: #define REVK   58
        !           119: #define CAT    59
        !           120: #define RAV    60
        !           121: #define CATK   61
        !           122: #define RAVK   62
        !           123: 
        !           124: #define PRINT  63
        !           125: #define QUOT   64
        !           126: #define ELID   65
        !           127: #define CQUAD  66
        !           128: #define COMNT  67
        !           129: #define INDEX  68
        !           130: #define HPRINT 69
        !           131: 
        !           132: #define LT     71
        !           133: #define LE     72
        !           134: #define GT     73
        !           135: #define GE     74
        !           136: #define EQ     75
        !           137: #define NE     76
        !           138: #define AND    77
        !           139: #define OR     78
        !           140: #define NAND   79
        !           141: #define NOR    80
        !           142: #define NOT    81
        !           143: #define EPS    82
        !           144: #define MEPS   83
        !           145: #define REP    84
        !           146: #define TAKE   85
        !           147: #define DROP   86
        !           148: #define ASGN   88
        !           149: #define IMMED  89
        !           150: 
        !           151: 
        !           152: #define NAME   90
        !           153: #define CONST  91
        !           154: #define FUN    92
        !           155: #define ARG1   93
        !           156: #define ARG2   94
        !           157: #define AUTO   95
        !           158: #define REST   96
        !           159: 
        !           160: #define COM0   97
        !           161: #define RED0   98
        !           162: #define EXD0   99
        !           163: #define SCAN0  100
        !           164: #define BASE   101
        !           165: #define MENC   102     /*      monadic encode  */
        !           166: 
        !           167: /*
        !           168:  *  Immediate sub-op codes
        !           169:  */
        !           170: 
        !           171: #define        CLEAR   1
        !           172: #define        DIGITS  2
        !           173: #define        ED_IT   3
        !           174: #define        ERASE   4
        !           175: #define        FNS     5
        !           176: #define        FUZZ    6
        !           177: #define        READ    7
        !           178: #define        ORIGIN  8
        !           179: #define        VARS    9
        !           180: #define        WIDTH   10
        !           181: #define        DEBUG   11
        !           182: #define OFF    12
        !           183: #define LOAD   13
        !           184: #define SAVE   14
        !           185: #define COPY   15
        !           186: #define CONTIN 16
        !           187: #define LIB    17
        !           188: #define DROPC  18
        !           189: #ifdef SOMED
        !           190: #define        SYMBOLS 19
        !           191: #endif
        !           192: #define        EX_IT   20
        !           193: #define EX_VI  21
        !           194: #define ASCII  22
        !           195: #define APL    23
        !           196: #define CSH    24
        !           197: 
        !           198: /*
        !           199:  *  Types
        !           200:  */
        !           201: 
        !           202: #define        DA      1       /* Numeric data (?) */
        !           203: #define        CH      2       /* Character data (?) */
        !           204: #define        LV      3       /* Used for most data items */
        !           205: #define        QD      4       /* Quad (assignment to (?)) */
        !           206: #define        QQ      5       /* Quote-quad */
        !           207: #define        IN      6       /* ??? */
        !           208: #define        EL      7       /* Literal data (??) */
        !           209: #define        NF      8       /* Name of function with no args */
        !           210: #define        MF      9       /* Monadic function */
        !           211: #define        DF      10      /* Dyadic function */
        !           212: #define QC     11
        !           213: 
        !           214: /*
        !           215:  *  Idiosyncracies
        !           216:  */
        !           217: 
        !           218: #define data   double
        !           219: #define unsignd        unsigned
        !           220: 
        !           221: /*
        !           222:  *  Structures
        !           223:  */
        !           224: 
        !           225: struct {
        !           226:        char    c[8];
        !           227: };
        !           228: 
        !           229: struct env {
        !           230:        double  fuzz;
        !           231:        int     iorg;
        !           232:        int     digits;
        !           233:        int     width;
        !           234: } thread;
        !           235: 
        !           236: struct item {
        !           237:        char    rank;
        !           238:        char    type;
        !           239:        int     size;
        !           240:        int     index;
        !           241:        data    *datap;
        !           242:        int     dim[MRANK];
        !           243: };
        !           244: 
        !           245: struct nlist {
        !           246:        char    use;
        !           247:        char    type;   /* == LV */
        !           248:        int     *itemp;
        !           249:        char    *namep;
        !           250:        int     label;
        !           251: } nlist[NLS];
        !           252: 
        !           253: struct lablist {
        !           254:        char    *lname;
        !           255:        int     lno;
        !           256:        struct  lablist *nextll;
        !           257: } labldefs;
        !           258: 
        !           259: struct {
        !           260:        char    rank;
        !           261:        char    type;
        !           262:        int     size;
        !           263:        int     dimk;
        !           264:        int     delk;
        !           265:        int     dim[MRANK];
        !           266:        int     del[MRANK];
        !           267:        int     idx[MRANK];
        !           268: } idx;
        !           269: 
        !           270: struct {
        !           271:        char    *name;
        !           272:        int     line;
        !           273: } now_xeq;
        !           274: 
        !           275: struct item **sp, **stack, **staktop;  /* Internal run-time stack */
        !           276: 
        !           277: /*
        !           278:  *  Externals
        !           279:  */
        !           280: 
        !           281: data   zero;
        !           282: data   one;
        !           283: data   pi;
        !           284: data   maxexp;
        !           285: data   datum;
        !           286: data   getdat();
        !           287: 
        !           288: int    cs_size;                        /* Current stack size      */
        !           289: 
        !           290: int    (*exop[])();
        !           291: 
        !           292: double floor();
        !           293: double ceil();
        !           294: double log();
        !           295: double sin();
        !           296: double cos();
        !           297: double atan();
        !           298: double atan2();
        !           299: double sqrt();
        !           300: double exp();
        !           301: double gamma();
        !           302: double ltod();
        !           303: 
        !           304: int    integ;
        !           305: int    signgam;
        !           306: int    column;
        !           307: int    intflg;
        !           308: int    echoflg;
        !           309: int    ifile;
        !           310: int    wfile;
        !           311: int    ofile;
        !           312: int    funlc;
        !           313: int    debug;
        !           314: int    ttystat[3];
        !           315: int    stime[2];
        !           316: char   *pcp;
        !           317: int     rowsz;
        !           318: int    mencflg;
        !           319: char    *mencptr;
        !           320: char   *memstart;
        !           321: int pt;
        !           322: int syze;
        !           323: int pas1;
        !           324: 
        !           325: char   *continu;
        !           326: 
        !           327: struct charbox {
        !           328:        char a1,a2;
        !           329: };
        !           330: 
        !           331: struct asoperbox {
        !           332:        unsigned char letters[2];
        !           333:        int     returnchar
        !           334: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.