00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef PLANG_PARSER_PRIV_H
00021 #define PLANG_PARSER_PRIV_H
00022 
00023 #include <plang/context.h>
00024 #include <plang/term.h>
00025 #include <stdio.h>
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030 
00033 #ifndef YY_TYPEDEF_YY_SCANNER_T
00034 #define YY_TYPEDEF_YY_SCANNER_T
00035 typedef void *yyscan_t;
00036 #endif
00037 
00038 struct p_input_var
00039 {
00040     p_term *name;
00041     p_term *var;
00042     unsigned int count;
00043 };
00044 
00045 typedef struct p_input_stream p_input_stream;
00046 
00047 typedef int (*p_input_read_func)
00048     (p_input_stream *stream, char *buf, size_t max_size);
00049 
00050 struct p_input_stream
00051 {
00052     p_context *context;
00053     FILE *stream;
00054     const char *filename;
00055     const char *buffer;
00056     size_t buffer_len;
00057     p_input_read_func read_func;
00058     int close_stream;
00059     int error_count;
00060     int warning_count;
00061     p_term *declarations;
00062     struct p_input_var *variables;
00063     size_t num_variables;
00064     size_t max_variables;
00065     p_term *filename_string;
00066     p_term *class_name;
00067     p_term *read_term;
00068     p_term *vars;
00069     int generate_vars;
00070 };
00071 
00072 #ifndef YY_EXTRA_TYPE
00073 #define YY_EXTRA_TYPE p_input_stream *
00074 #endif
00075 
00078 #ifdef __cplusplus
00079 };
00080 #endif
00081 
00082 #endif