|
|
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(); */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.