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