diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2025-06-11 13:39:25 +0530 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-06-11 13:39:25 +0530 |
| commit | 7fb98fd5b64d43d55d2448da8ad6e933dbc27508 (patch) | |
| tree | a335dc161b2cf8da1dec0b93a9c5c68b441f2ac8 | |
| parent | a89a4434d7e771f21c175730a156952ffe974e62 (diff) | |
lexer: add clean()
| -rw-r--r-- | include/lexer.h | 1 | ||||
| -rw-r--r-- | src/lexer.cc | 11 |
2 files changed, 11 insertions, 1 deletions
diff --git a/include/lexer.h b/include/lexer.h index 16ef0c0..e912747 100644 --- a/include/lexer.h +++ b/include/lexer.h @@ -13,6 +13,7 @@ private: public: void init(char *script); void scan_tokens(void); + void clean(void); }; #endif diff --git a/src/lexer.cc b/src/lexer.cc index 66b267f..1ae7e9d 100644 --- a/src/lexer.cc +++ b/src/lexer.cc @@ -2,12 +2,14 @@ #include <list.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <token.h> void Lexer::init(char *script) { - this->script = script; + this->script = (char *) malloc(strlen(script) + 1); + strcpy(this->script, script); tokens = (List *) calloc(1, sizeof(List)); tokens->init(sizeof(Token)); @@ -18,3 +20,10 @@ Lexer::scan_tokens(void) { printf("%s\n", script); } + +void +Lexer::clean(void) +{ + tokens->clean(); + free(script); +} |
