Annotation of 43BSDTahoe/new/B/src/bsmall/b2syn.h, revision 1.1

1.1     ! root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
        !             2: /* $Header: b2syn.h,v 1.1 84/06/28 00:48:52 timo Exp $ */
        !             3: 
        !             4: /* bsyn.h: syntax */
        !             5: 
        !             6: /* General parsing routines */
        !             7: 
        !             8: #define Eotc '\0'
        !             9: #define Eouc '\036'
        !            10:                /* The character Eotc (end of text char)                */
        !            11:                /* is placed after the last read character in txbuf.    */
        !            12:                /* In general it follows a newline.                     */
        !            13:                /* If Eotc is encountered and more input is required,   */
        !            14:                /* getline() is called.                                 */
        !            15:                /* Eouc (end of unit char) is similar except the system */
        !            16:                /* never has to read beyond it.                         */
        !            17: 
        !            18: #define Char(tx) (*(tx))
        !            19: #define Eol(tx) (Char(tx) == '\n' || Char(tx) == Eouc)
        !            20: #define Ceol(tx) (Char(tx) == '\\' || Eol(tx))
        !            21: #define To_eol(tx) while (!Eol(tx)) tx++;
        !            22: #define Mark_unit_end(tx) *tx= Eouc;
        !            23: 
        !            24: #define Space(c) ((c) == ' ' || (c) == '\t')
        !            25: #define Skipsp(tx) while(Space(Char(tx))) tx++
        !            26: 
        !            27: #define Letter(c) ('a'<=c&&c<='z')
        !            28: #define Cap(c) ('A'<=c&&c<='Z')
        !            29: #define Dig(c) ('0'<=c&&c<='9')
        !            30: #define Keymark(c) (Cap(c) || Dig(c) || c=='\'' || c=='"')
        !            31: #define Tagmark(c) (Letter(c) || Dig(c) || c=='\'' || c=='"')
        !            32: #define Keytagmark(c) (Keymark(c) || Letter(c))
        !            33: #define Anytormark(c) (c=='+' || c=='-' || c=='*' || c=='/' || c=='#')
        !            34: #define Montormark(c) (c=='~' || Anytormark(c))
        !            35: #define Dyatormark(c) (Anytormark(c) || c=='^' || c=='<' || c=='>')
        !            36: 
        !            37: /* Procedure upto(); */
        !            38: /* Procedure need(); */
        !            39: /* Procedure nothing(); */
        !            40: /* Procedure thought(); */
        !            41: /* Procedure findceol(); */
        !            42: bool ateol();
        !            43: 
        !            44: value findkw();
        !            45: value keyword();
        !            46: /* Procedure reqkw(); */
        !            47: /* Procedure req(); */
        !            48: value tag();
        !            49: 
        !            50: bool atkw();
        !            51: bool find();
        !            52: intlet count();
        !            53: 
        !            54: txptr fcol();
        !            55: txptr lcol();
        !            56: extern intlet alino;
        !            57: extern txptr txstart, txend; /*TEMPORARY if possible*/
        !            58: 
        !            59: /* Procedure getline(); */
        !            60: intlet ilev();
        !            61: /* Procedure veli(); */
        !            62: /* Procedure inistreams(); */
        !            63: /* Procedure re_streams(); */
        !            64: /* Procedure open_stream(); */
        !            65: /* Procedure close_stream(); */

unix.superglobalmegacorp.com

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