Annotation of researchv10no/cmd/basic/bas/defines.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * macros and global declarations for basic
        !             3:  *
        !             4:  *
        !             5:  *
        !             6:  * stack frame types:
        !             7:  *
        !             8:  * NOTE: the EXPR types must be distinguishable from all others
        !             9:  *      by the presence of the single bit defined by EXPR
        !            10:  *      Also note that INT, FLOAT and STRING are used as indices
        !            11:  *      into the 'chains' array (cf. sym.c) and that the value
        !            12:  *      of MAXTYPES must be at least 1 greater than that of the
        !            13:  *      highest-numbered basic type.
        !            14:  */
        !            15: 
        !            16: #define ANYTYPE        0
        !            17: #define INT            1
        !            18: #define FLOAT          2
        !            19: #define STRING         3
        !            20: #define STK_DEF        5
        !            21: #define STK_FOR        6
        !            22: #define STK_GOSUB      7
        !            23: #define INTEXPR        INT+EXPR
        !            24: #define FLOATEXPR      FLOAT+EXPR
        !            25: #define STRINGEXPR     STRING+EXPR
        !            26: #define EXPR           010
        !            27: 
        !            28: #define MAXTYPES       4
        !            29: 
        !            30: 
        !            31: /*
        !            32:  * macros and abbreviations:
        !            33:  */
        !            34: 
        !            35: #define ALL_LINES(p)   (p=(Linep)lines;isline(p);p=nextline(p))
        !            36: #define endchk()       if(!endtest()) badsyn()
        !            37: #define endtest()      (*inptr==0||*inptr==COLON||*inptr==ELSE)
        !            38: #define expectc(c)     if(*inptr!=c) badsyn(); else ++inptr
        !            39: #define fexpr()        (expr(),popfloat())
        !            40: #define isexpr(s)      ((s)->k_type&EXPR)
        !            41: #define isline(p)      ((p)->l_len)
        !            42: #define isstring(s)    ((s)>=strspace&&(s)<endstring)
        !            43: #define istoken(c)     ((c)<0)
        !            44: #ifdef NULL
        !            45: #undef NULL
        !            46: #endif
        !            47: #define NULL           (char *)0
        !            48: #define pushint(i)     pushfloat((double)(i))
        !            49: #define skipbl()       while(*inptr==' '||*inptr=='\t')++inptr
        !            50: #define SINGLE         (typelens[FLOAT]==4)
        !            51: #define UNTOKEN(c)     (-1-(c))
        !            52: 
        !            53: #define endstring      strspace+MAXSTRSPACE
        !            54: #define line           immed.l_line
        !            55: #define stkbase        stkspace
        !            56: #define stktop         stkspace+MAXSTACK
        !            57: 
        !            58: 
        !            59: /*
        !            60:  * sizes and limits:
        !            61:  */
        !            62: 
        !            63: #define DEFSIZE        10      /* default number of array elements */
        !            64: #define EXPANDLINES    4096    /* expansion size */
        !            65: #define EXPANDSYM      4096    /* symbol table expansion increment */
        !            66: #define LEN_FUZZ       6       /* close enough to not move */
        !            67: #define MAXFILENAME    32
        !            68: #define MAXLINELEN     255     /* maximum length of an input line */
        !            69: #define MAXLINES       4096    /* initial size of line buffer */
        !            70: #define MAXSTACK       2048    /* size of expression stack */
        !            71: #define MAXSTRING      255     /* max string len. (must fit in a char) */
        !            72: #define MAXSTRSPACE    2048    /* size of string table */
        !            73: #define MAXSUBS        3       /* max number of array dimensions */
        !            74: #define MAXSYMSPACE    4096    /* initial size of symbol table */
        !            75: #define TOKEN          0177600
        !            76: #define TOKENMASK      0177
        !            77: 
        !            78: #define FLOATSIZE      (sizeof(double))
        !            79: #define INTSIZE        (sizeof(int))
        !            80: #define STRINGSIZE     (sizeof(String))
        !            81: 
        !            82: #define MINLNR         0
        !            83: #define MAXLNR         (unsigned)65535
        !            84: #define MAXINT         32767
        !            85: 
        !            86: 
        !            87: /*
        !            88:  * status and action symbols:
        !            89:  */
        !            90: 
        !            91: #define LISTLNRS       1       /* getlnrs: expect lnrs in input */
        !            92: #define DEFAULTLNRS    0       /* getlnrs: use defaults if no lnrs found */
        !            93: #define EXACTLNR       1       /* findline: error if line not found */
        !            94: #define NEXTLNR        0       /* findline: return next higher line */
        !            95: #define YES            1
        !            96: #define NO             0

unix.superglobalmegacorp.com

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