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