Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:19:36

0001 /* This software is distributed under the GNU Lesser General Public License */
0002 //==========================================================================
0003 //
0004 //   gml_parser.h 
0005 //
0006 //==========================================================================
0007 // $Id: gml_parser.h,v 1.7 2000/01/05 16:32:36 raitner Exp $
0008 
0009 #ifndef GTL_GML_PARSER_H
0010 #define GTL_GML_PARSER_H
0011 
0012 #include <GTL/GTL.h>
0013 #include <GTL/gml_scanner.h>
0014 
0015 __GTL_BEGIN_NAMESPACE
0016 
0017 /**
0018  * @internal
0019  */
0020 union GTL_EXTERN GML_pair_val {
0021     long integer;
0022     double floating;
0023     char* str;
0024     struct GML_pair* list;
0025 };
0026 
0027 /**
0028  * @internal
0029  */
0030 struct GTL_EXTERN GML_pair {
0031     char* key;
0032     GML_value kind;
0033     union GML_pair_val value;
0034     struct GML_pair* next;
0035 };
0036 
0037 /**
0038  * @internal
0039  */
0040 struct GTL_EXTERN GML_list_elem {
0041     char* key;
0042     struct GML_list_elem* next;
0043 };
0044 
0045 /**
0046  * @internal
0047  */
0048 struct GTL_EXTERN GML_stat {
0049     struct GML_error err;
0050     struct GML_list_elem* key_list;
0051 };
0052 
0053 /*
0054  * returns list of KEY - VALUE pairs. Errors and a pointer to a list
0055  * of key-names are returned in GML_stat. Previous information contained
0056  * in GML_stat, i.e. the key_list, will be *lost*. 
0057  */
0058 
0059 GTL_EXTERN GML_pair* GML_parser (FILE*, GML_stat*, int);
0060 
0061 /*
0062  * free memory used in a list of GML_pair
0063  */
0064 
0065 GTL_EXTERN void GML_free_list (GML_pair*, GML_list_elem*);
0066 
0067 
0068 /*
0069  * debugging 
0070  */
0071 
0072 GTL_EXTERN void GML_print_list (GML_pair*, int);
0073 
0074 __GTL_END_NAMESPACE
0075 
0076 #endif // GTL_GML_PARSER_H
0077 
0078 //--------------------------------------------------------------------------
0079 //   end of file
0080 //--------------------------------------------------------------------------