aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/lexer.h5
-rw-r--r--src/lexer.cc10
-rw-r--r--src/main.cc9
3 files changed, 11 insertions, 13 deletions
diff --git a/include/lexer.h b/include/lexer.h
index 4c0e606..ecfbd21 100644
--- a/include/lexer.h
+++ b/include/lexer.h
@@ -12,10 +12,7 @@ private:
public:
void init(char *script);
-
- void scan_tokens(void);
- List *tokens(void);
-
+ List *scan_tokens(void);
void clean(void);
};
diff --git a/src/lexer.cc b/src/lexer.cc
index 584de23..39ecf2b 100644
--- a/src/lexer.cc
+++ b/src/lexer.cc
@@ -15,15 +15,15 @@ Lexer::init(char *script)
m_tokens->init(sizeof(Token));
}
-void
+List *
Lexer::scan_tokens(void)
{
printf("%s\n", m_script);
-}
-List *
-Lexer::tokens(void)
-{
+ Token token_eof;
+ token_eof.init(EOFF, "EOF", 2);
+ m_tokens->add(&token_eof);
+
return m_tokens;
}
diff --git a/src/main.cc b/src/main.cc
index a993082..3bdc70c 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -30,11 +30,12 @@ main(int argc, char **argv)
Lexer l;
l.init(buffer);
- l.scan_tokens();
- List *tokens = l.tokens();
- for (size_t i = 0; i < tokens->size(); i++)
- printf("%s\n", (char *) tokens->get(i));
+ List *tokens = l.scan_tokens();
+ for (size_t i = 0; i < tokens->size(); i++) {
+ Token *t = (Token *) tokens->get(i);
+ printf("%s\n", t->to_string());
+ }
l.clean();