/[jscoverage]/trunk/js/config/mkdepend/ifparser.h
ViewVC logotype

Contents of /trunk/js/config/mkdepend/ifparser.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 399 - (show annotations)
Tue Dec 9 03:37:47 2008 UTC (13 years, 5 months ago) by siliconforks
File MIME type: text/plain
File size: 2704 byte(s)
Use SpiderMonkey from Firefox 3.1b2.

1 /*
2 * $Xorg: ifparser.h,v 1.3 2000/08/17 19:41:51 cpqbld Exp $
3 *
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 * 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 * | VALUE '?' EXPRESSION ':' EXPRESSION
35 *
36 * VALUE := '(' EXPRESSION ')'
37 * | '!' VALUE
38 * | '-' VALUE
39 * | '~' VALUE
40 * | 'defined' '(' variable ')'
41 * | variable
42 * | number
43 *
44 * BINOP := '*' | '/' | '%'
45 * | '+' | '-'
46 * | '<<' | '>>'
47 * | '<' | '>' | '<=' | '>='
48 * | '==' | '!='
49 * | '&' | '^' | '|'
50 * | '&&' | '||'
51 *
52 * The normal C order of precedence is supported.
53 *
54 *
55 * External Entry Points:
56 *
57 * ParseIfExpression parse a string for #if
58 */
59
60 /* $XFree86: xc/config/makedepend/ifparser.h,v 3.5 2001/07/25 15:04:40 dawes Exp $ */
61
62 #include <stdio.h>
63
64 typedef int Bool;
65 #define False 0
66 #define True 1
67
68 typedef struct _if_parser {
69 struct { /* functions */
70 const char *(*handle_error) (struct _if_parser *, const char *,
71 const char *);
72 long (*eval_variable) (struct _if_parser *, const char *, int);
73 int (*eval_defined) (struct _if_parser *, const char *, int);
74 } funcs;
75 char *data;
76 } IfParser;
77
78 const char *ParseIfExpression (
79 IfParser *,
80 const char *,
81 long *
82 );
83

  ViewVC Help
Powered by ViewVC 1.1.24