diff options
author | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
---|---|---|
committer | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
commit | 7c478bd95313f5f23a4c958a745db2134aa03244 (patch) | |
tree | c871e58545497667cbb4b0a4f2daf204743e1fe7 /usr/src/lib/libcurses/screen/compiler.h | |
download | illumos-joyent-7c478bd95313f5f23a4c958a745db2134aa03244.tar.gz |
OpenSolaris Launch
Diffstat (limited to 'usr/src/lib/libcurses/screen/compiler.h')
-rw-r--r-- | usr/src/lib/libcurses/screen/compiler.h | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/usr/src/lib/libcurses/screen/compiler.h b/usr/src/lib/libcurses/screen/compiler.h new file mode 100644 index 0000000000..c1d6f82be0 --- /dev/null +++ b/usr/src/lib/libcurses/screen/compiler.h @@ -0,0 +1,204 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License, Version 1.0 only + * (the "License"). You may not use this file except in compliance + * with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 1997 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* Copyright (c) 1988 AT&T */ +/* All Rights Reserved */ + +/* + * University Copyright- Copyright (c) 1982, 1986, 1988 + * The Regents of the University of California + * All Rights Reserved + * + * University Acknowledgment- Portions of this document are derived from + * software developed by the University of California, Berkeley, and its + * contributors. + */ + +#ifndef _COMPILER_H +#define _COMPILER_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * COPYRIGHT NOTICE + * + * This software is copyright(C) 1982 by Pavel Curtis + * + * Permission is granted to reproduce and distribute + * this file by any means so long as no fee is charged + * above a nominal handling fee and so long as this + * notice is always included in the copies. + * + * Other rights are reserved except as explicitly granted + * by written permission of the author. + * Pavel Curtis + * Computer Science Dept. + * 405 Upson Hall + * Cornell University + * Ithaca, NY 14853 + * + * Ph- (607) 256-4934 + * + * Pavel.Cornell@Udel-Relay(ARPAnet) + * decvax!cornell!pavel (UUCPnet) + */ + + +/* + * compiler.h - Global variables and structures for the terminfo + * compiler. + * + * $Header: RCS/compiler.v Revision 2.1 82/10/25 14:46:04 pavel Exp$ + * + * $Log: RCS/compiler.v $ + * Revision 2.1 82/10/25 14:46:04 pavel + * Added Copyright Notice + * + * Revision 2.0 82/10/24 15:17:20 pavel + * Beta-one Test Release + * + * Revision 1.3 82/08/23 22:30:09 pavel + * The REAL Alpha-one Release Version + * + * Revision 1.2 82/08/19 19:10:10 pavel + * Alpha Test Release One + * + * Revision 1.1 82/08/12 18:38:11 pavel + * Initial revision + * + */ + +#include <stdio.h> +#include <signal.h> /* use this file to determine if this is SVR4.0 system */ +#include <time.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif + +#ifndef EXTERN /* for machines w/o multiple externs */ +#define EXTERN extern +#endif /* EXTERN */ + +#define SINGLE /* only one terminal (actually none) */ + +extern char *destination; /* destination directory for object files */ + +EXTERN long start_time; /* time at start of compilation */ + +EXTERN int curr_line; /* current line # in input */ +EXTERN long curr_file_pos; /* file offset of current line */ + +EXTERN int debug_level; /* level of debugging output */ + +#define DEBUG(level, fmt, a1) \ + if (debug_level >= level)\ + fprintf(stderr, fmt, a1); + + /* + * These are the types of tokens returned by the scanner. + * The first three are also used in the hash table of capability + * names. The scanner returns one of these values after loading + * the specifics into the global structure curr_token. + * + */ + +#define BOOLEAN 0 /* Boolean capability */ +#define NUMBER 1 /* Numeric capability */ +#define STRING 2 /* String-valued capability */ +#define CANCEL 3 /* Capability to be cancelled in following tc's */ +#define NAMES 4 /* The names for a terminal type */ + +#define MAXBOOLS 64 /* Maximum # of boolean caps we can handle */ +#define MAXNUMS 64 /* Maximum # of numeric caps we can handle */ +#define MAXSTRINGS 512 /* Maximum # of string caps we can handle */ + + /* + * The global structure in which the specific parts of a + * scanned token are returned. + * + */ + +struct token +{ + char *tk_name; /* name of capability */ + int tk_valnumber; /* value of capability (if a number) */ + char *tk_valstring; /* value of capability (if a string) */ +}; + +EXTERN struct token curr_token; + + /* + * The file comp_captab.c contains an array of these structures, + * one per possible capability. These are then made into a hash + * table array of the same structures for use by the parser. + * + */ + +struct name_table_entry +{ + struct name_table_entry *nte_link; + char *nte_name; /* name to hash on */ + int nte_type; /* BOOLEAN, NUMBER or STRING */ + short nte_index; /* index of associated variable in its array */ +}; + +extern struct name_table_entry cap_table[]; +extern struct name_table_entry *cap_hash_table[]; + +extern int Captabsize; +extern int Hashtabsize; +extern int BoolCount; +extern int NumCount; +extern int StrCount; + +#define NOTFOUND ((struct name_table_entry *)0) + /* + * Function types + * + */ + +struct name_table_entry *find_entry(); /* look up entry in hash table */ + +int next_char(); +int trans_string(); + +#ifdef SIGSTOP /* SVR4.0 and beyond */ +#define SRCDIR "/usr/share/lib/terminfo" +#else +#define SRCDIR "/usr/lib/terminfo" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _COMPILER_H */ |