summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eo_tokenizer.h5
-rw-r--r--eo_tokenizer.rl21
2 files changed, 18 insertions, 8 deletions
diff --git a/eo_tokenizer.h b/eo_tokenizer.h
index 0f331f7..a264c2d 100644
--- a/eo_tokenizer.h
+++ b/eo_tokenizer.h
@@ -116,8 +116,11 @@ typedef struct _eo_tokenizer
int current_line;
int current_nesting;
int max_nesting;
- int token_start_line;
char buf[BUFSIZE];
+ struct {
+ char *tok;
+ int line;
+ } saved;
Eina_List *classes;
} Eo_Tokenizer;
diff --git a/eo_tokenizer.rl b/eo_tokenizer.rl
index f2ffddb..8a1f57a 100644
--- a/eo_tokenizer.rl
+++ b/eo_tokenizer.rl
@@ -23,17 +23,22 @@ _eo_tokenizer_abort(Eo_Tokenizer *toknz,
variable eof toknz->eof;
action inc_line {
- /* DBG("inc[%d]", toknz->cs); */
toknz->current_line += 1;
+ DBG("inc[%d] %d", toknz->cs, toknz->current_line);
}
- action save_start_line {
- /* DBG("save[%d] %d", toknz->cs, toknz->current_line); */
- toknz->token_start_line = toknz->current_line;
+ action save_line {
+ toknz->saved.line = toknz->current_line;
+ DBG("save[%d] %d", toknz->cs, toknz->current_line);
+ }
+
+ action save_fpc {
+ toknz->saved.tok = fpc;
+ DBG("save[%d] %d", toknz->cs, fpc);
}
action show_comment {
- DBG("comment[%d] %03d:%03d", toknz->cs, toknz->token_start_line, toknz->current_line);
+ DBG("comment[%d] %03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line);
}
action show_ignore {
@@ -63,7 +68,7 @@ _eo_tokenizer_abort(Eo_Tokenizer *toknz,
c_comment = "/*" ( any | '\n' @inc_line )* :>> "*/";
cpp_comment = "//" (any - cr)* newline;
- comment = ( c_comment | cpp_comment ) > save_start_line;
+ comment = ( c_comment | cpp_comment ) > save_line;
}%%
@@ -163,7 +168,9 @@ eo_tokenizer_get()
toknz->max_nesting = 10;
toknz->current_line = 1;
toknz->current_nesting = 0;
- toknz->token_start_line = 0;
+ toknz->saved.tok = NULL;
+ toknz->saved.line = 0;
+ toknz->classes = NULL;
return toknz;
}