diff options
| -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); +} |
