1 /* -*- C -*-
2  *
3  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
4  *                         University Research and Technology
5  *                         Corporation.  All rights reserved.
6  * Copyright (c) 2004-2005 The University of Tennessee and The University
7  *                         of Tennessee Research Foundation.  All rights
8  *                         reserved.
9  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10  *                         University of Stuttgart.  All rights reserved.
11  * Copyright (c) 2004-2005 The Regents of the University of California.
12  *                         All rights reserved.
13  * $COPYRIGHT$
14  *
15  * Additional copyrights may follow
16  *
17  * $HEADER$
18  */
19 
20 #ifndef OPAL_UTIL_KEYVAL_LEX_H_
21 #define OPAL_UTIL_KEYVAL_LEX_H_
22 
23 #include "opal_config.h"
24 
25 #ifdef malloc
26 #undef malloc
27 #endif
28 #ifdef realloc
29 #undef realloc
30 #endif
31 #ifdef free
32 #undef free
33 #endif
34 
35 #include <stdio.h>
36 
37 int opal_util_keyval_yylex(void);
38 int opal_util_keyval_init_buffer(FILE *file);
39 int opal_util_keyval_yylex_destroy(void);
40 
41 extern FILE *opal_util_keyval_yyin;
42 extern bool opal_util_keyval_parse_done;
43 extern char *opal_util_keyval_yytext;
44 extern int opal_util_keyval_yynewlines;
45 extern int opal_util_keyval_yylineno;
46 
47 /*
48  * Make lex-generated files not issue compiler warnings
49  */
50 #define YY_STACK_USED 0
51 #define YY_ALWAYS_INTERACTIVE 0
52 #define YY_NEVER_INTERACTIVE 0
53 #define YY_MAIN 0
54 #define YY_NO_UNPUT 1
55 #define YY_SKIP_YYWRAP 1
56 
57 enum opal_keyval_parse_state_t {
58     OPAL_UTIL_KEYVAL_PARSE_DONE,
59     OPAL_UTIL_KEYVAL_PARSE_ERROR,
60 
61     OPAL_UTIL_KEYVAL_PARSE_NEWLINE,
62     OPAL_UTIL_KEYVAL_PARSE_EQUAL,
63     OPAL_UTIL_KEYVAL_PARSE_SINGLE_WORD,
64     OPAL_UTIL_KEYVAL_PARSE_VALUE,
65     OPAL_UTIL_KEYVAL_PARSE_MCAVAR,
66     OPAL_UTIL_KEYVAL_PARSE_ENVVAR,
67     OPAL_UTIL_KEYVAL_PARSE_ENVEQL,
68 
69     OPAL_UTIL_KEYVAL_PARSE_MAX
70 };
71 typedef enum opal_keyval_parse_state_t opal_keyval_parse_state_t;
72 
73 #endif
74