aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
blob: 6653ba258111bbdbaa4a9f6f02e41b66b727dbf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "../include/tokenizer.h"
#include <string.h>
#include <stdio.h>

int main() {
    TslTokenizer tokenizer;
    const char *code = 
"value1 = 1\n"
"value2 = true\n"
"value3 = null\n"
"value4 = \"hello world\"\n"
"value5 = {\"hello\", \"world\", 5}\n"
"value6 = {\"hello\": \"world\", \"value\": 23}\n"
"value7 = fn () {}\n"
"value8 = fn (value) {}\n"
"value9 = {\n"
"    \"hello\": \"world\",\n"
"    \"sayHello\": fn() {\n"
"        \n"
"    }\n"
"}\n"
"\n"
"str = value9[\"hello\"]\n"
"value9[\"sayHello\"]()";
    tsl_tokenizer_init(&tokenizer, code, strlen(code));
    
    for(;;) {
        TslToken token = tsl_tokenizer_next(&tokenizer);
        if(token == TSL_TOKEN_END_OF_FILE) {
            break;
        } else if(token == TSL_TOKEN_IDENTIFIER) {
            printf("identifier: %.*s\n", (int)tokenizer.identifier.size, tokenizer.identifier.data);
        } else if(token == TSL_TOKEN_NUM) {
            printf("num: %ld\n", tokenizer.number_value);
        } else {
            return 1;
        }
    }

    return 0;
}