diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-01-14 07:54:59 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-01-14 07:54:59 +0100 |
commit | f5fc07765303055922e1dfcc35f2f2f620c1e66b (patch) | |
tree | 99c82f033e81948f76d9367531d51a0955cb047f /src/tokenizer.c | |
parent | e27bd78c8211532bf0d39d87d2051222f7e86e26 (diff) |
add parser...
Diffstat (limited to 'src/tokenizer.c')
-rw-r--r-- | src/tokenizer.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/tokenizer.c b/src/tokenizer.c index 1ab34db..97673f5 100644 --- a/src/tokenizer.c +++ b/src/tokenizer.c @@ -76,7 +76,8 @@ const int64_t num_multipliers[] = { /* TODO: Check if the number if too large to fit into the result */ static int64_t string_to_int(TslStringView *str) { int64_t num = 0; - for(size_t i = 0; i < str->size; ++i) { + size_t i = 0; + for(; i < str->size; ++i) { char digit = str->data[str->size - 1 - i] - '0'; num += digit * num_multipliers[i]; } @@ -146,3 +147,12 @@ TslToken tsl_tokenizer_next(TslTokenizer *self) { return TSL_TOKEN_UNEXPECTED_SYMBOL; } } + +int tsl_tokenizer_accept(TslTokenizer *self, TslToken expected_token) { + TslToken actual_token = tsl_tokenizer_next(self); + if(actual_token != expected_token) { + fprintf(stderr, "Error: Expected TODO, got TODO\n"); + return 0; + } + return 1; +} |