|
|
1.1 ! root 1: /********************************************************************* ! 2: * COPYRIGHT NOTICE * ! 3: ********************************************************************** ! 4: * This software is copyright (C) 1982 by Pavel Curtis * ! 5: * * ! 6: * Permission is granted to reproduce and distribute * ! 7: * this file by any means so long as no fee is charged * ! 8: * above a nominal handling fee and so long as this * ! 9: * notice is always included in the copies. * ! 10: * * ! 11: * Other rights are reserved except as explicitly granted * ! 12: * by written permission of the author. * ! 13: * Pavel Curtis * ! 14: * Computer Science Dept. * ! 15: * 405 Upson Hall * ! 16: * Cornell University * ! 17: * Ithaca, NY 14853 * ! 18: * * ! 19: * Ph- (607) 256-4934 * ! 20: * * ! 21: * Pavel.Cornell@Udel-Relay (ARPAnet) * ! 22: * decvax!cornell!pavel (UUCPnet) * ! 23: *********************************************************************/ ! 24: ! 25: /* ! 26: * compiler.h - Global variables and structures for the terminfo ! 27: * compiler. ! 28: * ! 29: * $Header: /src386/usr/lib/ncurses/RCS/compiler.h,v 1.7 93/04/12 14:10:47 bin Exp Locker: bin $ ! 30: * ! 31: * $Log: compiler.h,v $ ! 32: * Revision 1.7 93/04/12 14:10:47 bin ! 33: * udo: 3rd color update ! 34: * ! 35: * Revision 1.2 92/04/13 14:39:59 bin ! 36: * *** empty log message *** ! 37: * ! 38: * Revision 2.1 82/10/25 14:46:04 pavel ! 39: * Added Copyright Notice ! 40: * ! 41: * Revision 2.0 82/10/24 15:17:20 pavel ! 42: * Beta-one Test Release ! 43: * ! 44: * Revision 1.3 82/08/23 22:30:09 pavel ! 45: * The REAL Alpha-one Release Version ! 46: * ! 47: * Revision 1.2 82/08/19 19:10:10 pavel ! 48: * Alpha Test Release One ! 49: * ! 50: * Revision 1.1 82/08/12 18:38:11 pavel ! 51: * Initial revision ! 52: * ! 53: */ ! 54: ! 55: #include <stdio.h> ! 56: ! 57: #ifndef TRUE ! 58: #define TRUE 1 ! 59: #define FALSE 0 ! 60: #endif ! 61: ! 62: #define SINGLE /* only one terminal (actually none) */ ! 63: ! 64: extern char *destination; /* destination directory for object files */ ! 65: ! 66: long start_time; /* time at start of compilation */ ! 67: long time(); ! 68: ! 69: int curr_line; /* current line # in input */ ! 70: long curr_file_pos; /* file offset of current line */ ! 71: ! 72: int debug_level; /* level of debugging output */ ! 73: ! 74: #define DEBUG(level, fmt, a1) \ ! 75: if (debug_level >= level)\ ! 76: fprintf(stderr, fmt, a1); ! 77: ! 78: /* ! 79: * These are the types of tokens returned by the scanner. ! 80: * The first three are also used in the hash table of capability ! 81: * names. The scanner returns one of these values after loading ! 82: * the specifics into the global structure curr_token. ! 83: * ! 84: */ ! 85: ! 86: #define BOOLEAN 0 /* Boolean capability */ ! 87: #define NUMBER 1 /* Numeric capability */ ! 88: #define STRING 2 /* String-valued capability */ ! 89: #define CANCEL 3 /* Capability to be cancelled in following tc's */ ! 90: #define NAMES 4 /* The names for a terminal type */ ! 91: ! 92: /* ! 93: * The global structure in which the specific parts of a ! 94: * scanned token are returned. ! 95: * ! 96: */ ! 97: ! 98: struct token ! 99: { ! 100: char *tk_name; /* name of capability */ ! 101: int tk_valnumber; /* value of capability (if a number) */ ! 102: char *tk_valstring; /* value of capability (if a string) */ ! 103: }; ! 104: ! 105: struct token curr_token; ! 106: ! 107: /* ! 108: * The file comp_captab.c contains an array of these structures, ! 109: * one per possible capability. These are then made into a hash ! 110: * table array of the same structures for use by the parser. ! 111: * ! 112: */ ! 113: ! 114: struct name_table_entry ! 115: { ! 116: struct name_table_entry *nte_link; ! 117: char *nte_name; /* name to hash on */ ! 118: int nte_type; /* BOOLEAN, NUMBER or STRING */ ! 119: short nte_index; /* index of associated variable in its array */ ! 120: }; ! 121: ! 122: extern struct name_table_entry cap_table[]; ! 123: extern struct name_table_entry *cap_hash_table[]; ! 124: ! 125: extern int Captabsize; ! 126: extern int Hashtabsize; ! 127: ! 128: #define NOTFOUND ((struct name_table_entry *) 0) ! 129: /* ! 130: * Function types ! 131: * ! 132: */ ! 133: ! 134: struct name_table_entry *find_entry(); /* look up entry in hash table */ ! 135: ! 136: char next_char(); ! 137: char trans_string();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.