00001 #ifndef _dev_w3_org__2001_blindfold_h
00002 #define _dev_w3_org__2001_blindfold_h
00003
00004 #include "bytestream.h"
00005 #include "dts.h"
00006
00026 typedef enum blindfold_status_enum {
00027 blindfold_success=0,
00028 blindfold_unknown_failure=1
00029 } blindfold_status;
00030
00031
00032
00037 typedef struct blindfold_language_s blindfold_language;
00038
00040
00041
00050 const blindfold_language *
00051 blindfold_get_ebnf();
00052
00053
00054
00064 blindfold_language *blindfold_language_reconstruct(objref *lang,
00065 objref *knowledge);
00066
00067
00073 void blindfold_language_release(blindfold_language *lang);
00074
00075
00076
00081 objref *
00082 blindfold_read(blindfold_language *language,
00083 bytesource *source,
00084 objref *knowledge_base);
00085
00086
00087
00092 blindfold_status
00093 blindfold_write(blindfold_language *language,
00094 bytesink *destination,
00095 objref *value,
00096 objref *knowledge_base);
00097
00098
00112 objref
00113 blindfold_read_via_ebnf(bytesource *language_definition,
00114 bytesource *source,
00115 objref *knowledge);
00116
00122 blindfold_status
00123 blindfold_write_via_ebnf(bytesource *language_definition,
00124 bytesink *destination,
00125 objref *value,
00126 objref *knowledge);
00127
00128
00138 bytesink *
00139 blindfold_create_parser(blindfold_language *language,
00140 void *result);
00141
00142
00148 bytesource *
00149 blindfold_create_generator(blindfold_language *language,
00150 objref *value,
00151 objref *knowledge);
00152
00160 void blindfold_set_storage_directory(char *dir);
00161
00162
00163
00164
00165
00166
00167 #endif