Files
lib_compiler/src/build_file/test_readme.cpp
2024-04-13 15:29:53 +02:00

38 lines
1.4 KiB
C++

void ReadmeReadFile(LC_AST *package, LoadedFile *file) {
S8_String result = {};
if (package->apackage.name == LC_ILit("readme_test")) {
S8_String code = *(S8_String *)L->user_data;
file->content = S8_Copy(L->arena, code);
} else {
file->content = OS_ReadFile(L->arena, file->path);
}
}
void TestReadme() {
MA_Scratch scratch;
S8_String readme_path = OS_GetAbsolutePath(scratch, "../README.md");
S8_String readme = OS_ReadFile(scratch, readme_path);
S8_List split = S8_Split(scratch, readme, "```");
S8_For(it, split) {
if (S8_StartsWith(it->string, " odin", S8_IgnoreCase)) {
S8_String code = S8_Skip(it->string, 5);
LC_Lang *lang = LC_LangAlloc();
lang->use_colored_terminal_output = UseColoredIO;
lang->user_data = (void *)&code;
lang->on_file_load = ReadmeReadFile;
LC_LangBegin(lang);
LC_DeclareNote(LC_ILit("do_something"));
LC_DeclareNote(LC_ILit("serialize"));
defer { LC_LangEnd(lang); };
LC_RegisterPackageDir("../pkgs");
LC_Intern name = LC_ILit("readme_test");
LC_AddSingleFilePackage(name, readme_path);
LC_ResolvePackageByName(name);
// LC_FindUnusedLocalsAndRemoveUnusedGlobalDecls();
}
}
}