summaryrefslogtreecommitdiffstats
path: root/eo_tokenizer.h
diff options
context:
space:
mode:
Diffstat (limited to 'eo_tokenizer.h')
-rw-r--r--eo_tokenizer.h63
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__ */