diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2025-06-11 14:45:37 +0530 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-06-11 14:45:37 +0530 |
| commit | 799a4b8b311afeca9c9d89058e1757a6fa58f4c4 (patch) | |
| tree | 10612a51fefe393941827938b64597be9df6ad20 | |
| parent | 2c33f94eb0956a17aa04f523a1a74fb4fac26a2c (diff) | |
lexer: no need for a separate tokens() API
| -rw-r--r-- | include/lexer.h | 5 | ||||
| -rw-r--r-- | src/lexer.cc | 10 | ||||
| -rw-r--r-- | src/main.cc | 9 |
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(); |
