aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..6653ba2
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,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;
+} \ No newline at end of file