#include #include #include "common.cc" #include "memory.cc" #include "source.cc" #include "tokenizer.cc" static const char* SOURCE = R"( #include int main() { return EXIT_FAILURE; } )"; static const char* SOURCE_FILE = "source.c"; int main() { String source(SOURCE); String file(SOURCE_FILE); Buffer_Stack stack{}; Buffer* buffer = nullptr; bool ret = buffer_init(heap_allocator(), &source, &file, &buffer); if (!ret) return EXIT_FAILURE; buffer_stack_push(&stack, buffer); Tokenizer tokenizer(&stack); Token token = {}; while(tokenizer_next(&tokenizer, &token)) fprintf(stdout, "Token(kind: %d, text: %.*s)\n", token.kind, (int)token.text.length, token.text.ptr); }