34 #ifndef _MOOT_GENERIC_LEXER_H 35 #define _MOOT_GENERIC_LEXER_H 96 static const int MGL_DEFAULT_BUFFER_SIZE = 16384;
109 bool mgl_out_created;
143 GenericLexer(
const std::string &myname=
"moot::GenericLexer",
147 mgl_in_created(false),
148 mgl_out_created(false),
160 virtual void reset(
void);
163 virtual void clear(
bool clear_input=
true,
bool clear_output=
true);
169 virtual void *mgl_yy_current_buffer_p(
void);
176 virtual void mgl_begin(
int stateno);
180 virtual void mgl_yy_delete_buffer(
void *buf)
182 yycarp(
"abstract method mgl_yy_delete_buffer() called!");
187 virtual void *mgl_yy_create_buffer(
int size, FILE *unused=stdin) =0;
190 virtual void mgl_yy_switch_to_buffer(
void *buf) =0;
193 virtual void mgl_yy_init_buffer(
void *buf, FILE *unused=stdin) =0;
203 virtual void from_filename(
const std::string &filename);
206 virtual void from_file(FILE *in=stdin);
209 virtual void from_buffer(
const char *buf,
size_t len);
212 inline void from_string(
const char *s) {
213 from_buffer(s, strlen(s));
216 inline void from_string(
const std::string &s) {
217 from_buffer(s.data(), s.size());
221 inline void select_streams(FILE *in, FILE *out=stdout,
const char *myname=NULL) {
224 if (myname) lexname = myname;
228 inline void select_string(
const char *in, FILE *out=stderr,
const char *myname=NULL) {
231 if (myname) lexname = myname;
242 virtual void to_filename(
const std::string &filename);
245 virtual void to_file(FILE *out=stdout);
253 inline int yyinput(
char *buffer,
int &result,
int max_size)
255 return (result = (mglin ? mglin->
read(buffer, max_size) : 0));
263 inline void tokbuf_append(
const char *text,
size_t len)
266 tokbuf.assign(text,len);
267 tokbuf_clear =
false;
269 tokbuf.append(text,len);
298 virtual void yycarp(
const char *fmt, ...);
304 #endif // _MOOT_GENERIC_LEXER_H Definition: mootAssocVector.h:39
Abstract base class for Flex++ lexers.
Definition: mootGenericLexer.h:77
Abstract base class for output stream wrappers.
Definition: mootIO.h:194
moot::OffsetT ByteOffset
typedef for (byte) offsets (may be unsigned)
Definition: mootIO.h:55
mootio abstraction layer for C char* buffers
virtual ByteCount read(char *buf, size_t n)
Definition: mootIO.h:156
Abstract base class for input stream wrappers.
Definition: mootIO.h:129