1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 2: 3: /* 4: $Header: b2syn.h,v 1.4 85/08/22 16:43:04 timo Exp $ 5: */ 6: 7: /* General parsing routines */ 8: 9: #define Eotc '\0' 10: 11: #define Char(tx) (*(tx)) 12: #define Eol(tx) (Char(tx) == '\n') 13: #define Ceol(tx) (Char(tx) == '\\' || Eol(tx)) 14: #define Text(q) (tx < q) 15: 16: #define Space(c) ((c) == ' ' || (c) == '\t') 17: 18: #define Letter(c) ('a'<=c&&c<='z') 19: #define Cap(c) ('A'<=c&&c<='Z') 20: #define Dig(c) ('0'<=c&&c<='9') 21: 22: /* Procedure skipsp(); */ 23: /* Procedure upto(); */ 24: /* Procedure need(); */ 25: /* Procedure findceol(); */ 26: /* Procedure req(); */ 27: /* Procedure veli(); */ 28: 29: bool keymark(); 30: 31: txptr fcol(); 32: bool nothing(); 33: bool ateol(); 34: bool findkw(); 35: value keyword(); 36: value tag(); 37: bool find(); 38: 39: extern txptr tx, ceol, first_col; 40: extern intlet cur_ilev; 41: intlet ilev(); 42: 43: extern value kwlist; 44: 45: value cr_text(); 46: bool is_keyword(); 47: bool is_tag(); 48: bool findrel(); 49: extern string textsign; 50: 51: bool is_expr(); 52: 53: #ifdef NOT_USED 54: bool colon_sign(); 55: #endif 56: bool comment_sign(); 57: bool nwl_sign(); 58: bool open_sign(); 59: #ifdef NOT_USED 60: bool close_sign(); 61: bool comma_sign(); 62: #endif 63: bool point_sign(); 64: bool apostrophe_sign(); 65: bool quote_sign(); 66: bool conv_sign(); 67: bool curlyopen_sign(); 68: bool curlyclose_sign(); 69: bool sub_sign(); 70: #ifdef NOT_USED 71: bool bus_sign(); 72: #endif 73: bool behead_sign(); 74: bool curtl_sign(); 75: bool about_sign(); 76: bool plus_sign(); 77: bool minus_sign(); 78: bool times_sign(); 79: bool over_sign(); 80: bool power_sign(); 81: bool numtor_sign(); 82: bool denomtor_sign(); 83: bool join_sign(); 84: bool reptext_sign(); 85: bool leftadj_sign(); 86: bool center_sign(); 87: bool rightadj_sign(); 88: bool number_sign(); 89: bool less_than_sign(); 90: bool at_most_sign(); 91: bool equals_sign(); 92: bool unequal_sign(); 93: bool at_least_sign(); 94: bool greater_than_sign(); 95: 96: bool dyamon_sign(); 97: bool dya_sign(); 98: bool mon_sign(); 99: bool trim_sign(); 100: 101: bool check_keyword(); 102: bool choose_keyword(); 103: bool delete_keyword(); 104: bool draw_keyword(); 105: bool insert_keyword(); 106: bool put_keyword(); 107: bool read_keyword(); 108: bool remove_keyword(); 109: bool setrandom_keyword(); 110: bool write_keyword(); 111: bool fail_keyword(); 112: bool quit_keyword(); 113: bool return_keyword(); 114: bool report_keyword(); 115: bool succeed_keyword(); 116: bool if_keyword(); 117: bool select_keyword(); 118: bool while_keyword(); 119: bool for_keyword(); 120: bool else_keyword(); 121: #ifdef NOT_USED 122: bool and_keyword(); 123: bool or_keyword(); 124: #endif 125: bool not_keyword(); 126: bool some_keyword(); 127: bool each_keyword(); 128: bool no_keyword(); 129: bool how_to_keyword(); 130: bool yield_keyword(); 131: bool test_keyword(); 132: bool share_keyword();