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;
}
|