summaryrefslogtreecommitdiff
path: root/ifparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'ifparser.h')
-rw-r--r--ifparser.h49
1 files changed, 13 insertions, 36 deletions
diff --git a/ifparser.h b/ifparser.h
index 398a3e4..e9ec9c3 100644
--- a/ifparser.h
+++ b/ifparser.h
@@ -2,7 +2,7 @@
* $Xorg: ifparser.h,v 1.3 2000/08/17 19:41:51 cpqbld Exp $
*
* Copyright 1992 Network Computing Devices, Inc.
- *
+ *
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted, provided
* that the above copyright notice appear in all copies and that both that
@@ -12,7 +12,7 @@
* without specific, written prior permission. Network Computing Devices makes
* no representations about the suitability of this software for any purpose.
* It is provided ``as is'' without express or implied warranty.
- *
+ *
* NETWORK COMPUTING DEVICES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
* IN NO EVENT SHALL NETWORK COMPUTING DEVICES BE LIABLE FOR ANY SPECIAL,
@@ -20,44 +20,19 @@
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
- *
+ *
* Author: Jim Fulton
* Network Computing Devices, Inc.
- *
- * Simple if statement processor
*
- * This module can be used to evaluate string representations of C language
- * if constructs. It accepts the following grammar:
- *
- * EXPRESSION := VALUE
- * | VALUE BINOP EXPRESSION
- * | VALUE '?' EXPRESSION ':' EXPRESSION
- *
- * VALUE := '(' EXPRESSION ')'
- * | '!' VALUE
- * | '-' VALUE
- * | '~' VALUE
- * | 'defined' '(' variable ')'
- * | variable
- * | number
- *
- * BINOP := '*' | '/' | '%'
- * | '+' | '-'
- * | '<<' | '>>'
- * | '<' | '>' | '<=' | '>='
- * | '==' | '!='
- * | '&' | '^' | '|'
- * | '&&' | '||'
- *
- * The normal C order of precedence is supported.
- *
- *
+ * Simple if statement processor. Please see ifparser.c for the parsing tree.
+ *
+ *
* External Entry Points:
- *
+ *
* ParseIfExpression parse a string for #if
*/
-/* $XFree86: xc/config/makedepend/ifparser.h,v 3.4 2001/01/17 16:38:58 dawes Exp $ */
+/* $XFree86: xc/config/makedepend/ifparser.h,v 3.6 2004/03/05 16:02:58 tsi Exp $ */
#include <stdio.h>
@@ -69,15 +44,17 @@ typedef struct _if_parser {
struct { /* functions */
const char *(*handle_error) (struct _if_parser *, const char *,
const char *);
- long (*eval_variable) (struct _if_parser *, const char *, int);
+ long (*eval_variable) (struct _if_parser *, const char *, int,
+ const char *);
int (*eval_defined) (struct _if_parser *, const char *, int);
} funcs;
char *data;
} IfParser;
const char *ParseIfExpression (
- IfParser *,
- const char *,
+ IfParser *,
+ const char *,
long *
);
+extern int variable_has_args(IfParser *ip, const char *var, int len);