diff options
Diffstat (limited to 'eo_tokenizer.h')
-rw-r--r-- | eo_tokenizer.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/eo_tokenizer.h b/eo_tokenizer.h new file mode 100644 index 0000000..536cdda --- /dev/null +++ b/eo_tokenizer.h @@ -0,0 +1,63 @@ +#ifndef __EO_TOKENIZER_H__ +#define __EO_TOKENIZER_H__ + +#include <Eina.h> + +extern int _eo_tokenizer_log_dom; +#undef EINA_LOG_DOMAIN_DEFAULT +#define EINA_LOG_DOMAIN_DEFAULT _eo_tokenizer_log_dom + +#ifdef CRITICAL +#undef CRITICAL +#endif +#define CRITICAL(...) EINA_LOG_DOM_CRIT(_eo_tokenizer_log_dom, __VA_ARGS__) + +#ifdef ERR +#undef ERR +#endif +#define ERR(...) EINA_LOG_DOM_ERR(_eo_tokenizer_log_dom, __VA_ARGS__) + +#ifdef WRN +#undef WRN +#endif +#define WRN(...) EINA_LOG_DOM_WARN(_eo_tokenizer_log_dom, __VA_ARGS__) + +#ifdef INF +#undef INF +#endif +#define INF(...) EINA_LOG_DOM_INFO(_eo_tokenizer_log_dom, __VA_ARGS__) + +#ifdef DBG +#undef DBG +#endif +#define DBG(...) EINA_LOG_DOM_DBG(_eo_tokenizer_log_dom, __VA_ARGS__) + +#define BUFSIZE 256 + +typedef struct _eo_tokenizer { + /* ragel vars */ + int cs; /* current machine state */ + int act; /* last pattern matched */ + char *ts; /* current token match start */ + char *te; /* current token match end */ + char *p; /* data start */ + char *pe; /* data end */ + char *eof; /* eof = (EOF ? pe : NULL) */ + /* int stack[10]; /1* state stack used by fret fcall ... *1/ */ + /* int top; /1* stack pointer *1/ */ + + const char *source; + int current_line; + int current_nesting; + int max_nesting; + int token_start_line; + char buf[BUFSIZE]; +} Eo_Tokenizer; + +Eo_Tokenizer* eo_tokenizer_get(); + +Eina_Bool eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source); + +void eo_tokenizer_free(Eo_Tokenizer *toknz); + +#endif /* __EO_TOKENIZER_H__ */ |