(file) Return to ifparser.h CVS log (file) (dir) Up to [XFree86 CVS] / xc / config / makedepend

 1 dawes 1.1 /*
 2 dawes 3.0  * $XConsortium: ifparser.h /main/3 1996/04/23 13:27:11 kaleb $
 3 dawes 1.1  *
 4            * Copyright 1992 Network Computing Devices, Inc.
 5            * 
 6            * Permission to use, copy, modify, and distribute this software and its
 7            * documentation for any purpose and without fee is hereby granted, provided
 8            * that the above copyright notice appear in all copies and that both that
 9            * copyright notice and this permission notice appear in supporting
10            * documentation, and that the name of Network Computing Devices may not be
11            * used in advertising or publicity pertaining to distribution of the software
12            * without specific, written prior permission.  Network Computing Devices makes
13            * no representations about the suitability of this software for any purpose.
14            * It is provided ``as is'' without express or implied warranty.
15            * 
16            * NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
17            * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
18            * IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
19            * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
20            * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
21            * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22            * PERFORMANCE OF THIS SOFTWARE.
23            * 
24 dawes 1.1  * Author:  Jim Fulton
25            *          Network Computing Devices, Inc.
26            * 
27            * Simple if statement processor
28            *
29            * This module can be used to evaluate string representations of C language
30            * if constructs.  It accepts the following grammar:
31            * 
32            *     EXPRESSION	:=	VALUE
33            * 			 |	VALUE  BINOP	EXPRESSION
34            * 
35            *     VALUE		:=	'('  EXPRESSION  ')'
36            * 			 |	'!'  VALUE
37            * 			 |	'-'  VALUE
38            * 			 |	'defined'  '('  variable  ')'
39            * 			 |	variable
40            * 			 |	number
41            * 
42            *     BINOP		:=	'*'	|  '/'	|  '%'
43            * 			 |	'+'	|  '-'
44            * 			 |	'<<'	|  '>>'
45 dawes 1.1  * 			 |	'<'	|  '>'	|  '<='  |  '>='
46            * 			 |	'=='	|  '!='
47            * 			 |	'&'	|  '|'
48            * 			 |	'&&'	|  '||'
49            * 
50            * The normal C order of precidence is supported.
51            * 
52            * 
53            * External Entry Points:
54            * 
55            *     ParseIfExpression		parse a string for #if
56            */
57           
58           #include <stdio.h>
59           
60           #define const /**/
61           typedef int Bool;
62           #define False 0
63           #define True 1
64           
65           typedef struct _if_parser {
66 dawes 1.1     struct {				/* functions */
67           	char *(*handle_error) (/* struct _if_parser *, const char *,
68           				 const char * */);
69 dawes 3.0 	long (*eval_variable) (/* struct _if_parser *, const char *, int */);
70 dawes 1.1 	int (*eval_defined) (/* struct _if_parser *, const char *, int */);
71               } funcs;
72               char *data;
73           } IfParser;
74           
75 dawes 3.0 char *ParseIfExpression (
76           #ifdef __STDC__
77               IfParser *, 
78               const char *, 
79               long *
80           #endif
81           );
82 dawes 1.1 

Powered by
ViewCVS 0.9.2