Improve API
This commit is contained in:
@@ -8,7 +8,7 @@ bool add_dynamic_array_macro() {
|
||||
LC_RegisterPackageDir("../examples");
|
||||
|
||||
LC_Intern name = LC_ILit("add_dynamic_array_macro");
|
||||
LC_ParsePackagesUsingRegistry(name);
|
||||
LC_ParsePackagesPass(name);
|
||||
LC_BuildIfPass();
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
@@ -159,14 +159,14 @@ bool add_dynamic_array_macro() {
|
||||
LC_DLLAdd(file->afile.fdecl, file->afile.ldecl, ast);
|
||||
}
|
||||
|
||||
LC_OrderAndResolveTopLevelDecls(name);
|
||||
LC_ResolveAllProcBodies();
|
||||
LC_OrderAndResolveTopLevelPass(name);
|
||||
LC_ResolveProcBodiesPass();
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
LC_String code = LC_GenerateUnityBuild(L->ordered_packages);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
OS_MakeDir("examples/add_dynamic_array_macro");
|
||||
OS_WriteFile("examples/add_dynamic_array_macro/add_dynamic_array_macro.c", code);
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
bool OnDeclParsed_AddInstrumentation(bool discard, LC_AST *n) {
|
||||
if (discard) return discard;
|
||||
|
||||
void OnDeclParsed_AddInstrumentation(LC_AST *n) {
|
||||
if (n->kind == LC_ASTKind_DeclProc && n->dproc.body) {
|
||||
if (n->dbase.name == LC_ILit("BeginProc")) return false;
|
||||
if (n->dbase.name == LC_ILit("EndProc")) return false;
|
||||
if (n->dbase.name == LC_ILit("BeginProc")) return;
|
||||
if (n->dbase.name == LC_ILit("EndProc")) return;
|
||||
|
||||
LC_AST *body = n->dproc.body;
|
||||
|
||||
@@ -13,7 +11,6 @@ bool OnDeclParsed_AddInstrumentation(bool discard, LC_AST *n) {
|
||||
LC_DLLAddFront(body->sblock.first, body->sblock.last, end);
|
||||
LC_DLLAddFront(body->sblock.first, body->sblock.last, begin);
|
||||
}
|
||||
return discard;
|
||||
}
|
||||
|
||||
bool add_instrumentation() {
|
||||
@@ -26,37 +23,30 @@ bool add_instrumentation() {
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
LC_RegisterPackageDir("../examples");
|
||||
|
||||
LC_Intern name = LC_ILit("add_instrumentation");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
if (L->errors) {
|
||||
LC_Intern name = LC_ILit("add_instrumentation");
|
||||
LC_ParseAndResolve(name);
|
||||
if (lang->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
DebugVerifyAST(packages);
|
||||
if (L->errors) {
|
||||
DebugVerifyAST(L->ordered_packages);
|
||||
if (lang->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
S8_String code = LC_GenerateUnityBuild(packages);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
LC_LangEnd(lang);
|
||||
|
||||
S8_String path = "examples/add_instrumentation/add_instrumentation.c";
|
||||
OS_MakeDir("examples");
|
||||
OS_MakeDir("examples/add_instrumentation");
|
||||
OS_WriteFile(path, code);
|
||||
if (!UseCL) {
|
||||
LC_LangEnd(lang);
|
||||
return true;
|
||||
}
|
||||
if (!UseCL) return true;
|
||||
|
||||
S8_String cmd = Fmt("cl %.*s -Zi -std:c11 -nologo -FC -Fd:examples/add_instrumentation/a.pdb -Fe:examples/add_instrumentation/add_instrumentation.exe %.*s", S8_Expand(path), S8_Expand(RaylibLIB));
|
||||
int errcode = Run(cmd);
|
||||
if (errcode != 0) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
// Run("examples/add_instrumentation/add_instrumentation.exe");
|
||||
|
||||
LC_LangEnd(lang);
|
||||
if (errcode != 0) return false;
|
||||
return true;
|
||||
}
|
||||
@@ -13,7 +13,7 @@ bool add_printf_format_check() {
|
||||
LC_RegisterPackageDir("../examples");
|
||||
|
||||
LC_Intern name = LC_ILit("add_printf_format_check");
|
||||
LC_ResolvePackageByName(name);
|
||||
LC_ParseAndResolve(name);
|
||||
|
||||
LC_LangEnd(lang);
|
||||
return result;
|
||||
|
||||
@@ -26,23 +26,18 @@ bool add_source_location_macro() {
|
||||
LC_RegisterPackageDir("../examples/");
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
|
||||
LC_Intern name = LC_ILit("add_source_location_macro");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
S8_String dir = "examples/add_source_location_macro";
|
||||
OS_MakeDir(dir);
|
||||
S8_String cfile = "examples/add_source_location_macro/add_source_location_macro.c";
|
||||
S8_String code = LC_GenerateUnityBuild(packages);
|
||||
OS_WriteFile(cfile, code);
|
||||
LC_Intern name = LC_ILit("add_source_location_macro");
|
||||
LC_ParseAndResolve(name);
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
LC_LangEnd(lang);
|
||||
|
||||
OS_MakeDir("examples/add_source_location_macro");
|
||||
OS_WriteFile("examples/add_source_location_macro/add_source_location_macro.c", code);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -6,8 +6,8 @@ bool create_raylib_window() {
|
||||
LC_RegisterPackageDir("../examples/");
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
|
||||
LC_Intern name = LC_ILit("create_raylib_window");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
LC_Intern name = LC_ILit("create_raylib_window");
|
||||
LC_ParseAndResolve(name);
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
@@ -15,7 +15,7 @@ bool create_raylib_window() {
|
||||
|
||||
OS_MakeDir("examples/create_raylib_window");
|
||||
S8_String path = "examples/create_raylib_window/create_raylib_window.c";
|
||||
S8_String code = LC_GenerateUnityBuild(packages);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
OS_WriteFile(path, code);
|
||||
|
||||
bool success = true;
|
||||
|
||||
@@ -11,14 +11,14 @@ bool generate_type_info() {
|
||||
|
||||
LC_Intern name = LC_ILit("generate_type_info");
|
||||
|
||||
LC_ParsePackagesUsingRegistry(name);
|
||||
LC_ParsePackagesPass(name);
|
||||
LC_BuildIfPass();
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
LC_OrderAndResolveTopLevelDecls(name);
|
||||
LC_OrderAndResolveTopLevelPass(name);
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
@@ -55,9 +55,9 @@ bool generate_type_info() {
|
||||
}
|
||||
|
||||
// Resolve decls again with new content added in
|
||||
LC_OrderAndResolveTopLevelDecls(name);
|
||||
LC_ResolveAllProcBodies();
|
||||
LC_FindUnusedLocalsAndRemoveUnusedGlobalDecls();
|
||||
LC_OrderAndResolveTopLevelPass(name);
|
||||
LC_ResolveProcBodiesPass();
|
||||
LC_FindUnusedLocalsAndRemoveUnusedGlobalDeclsPass();
|
||||
|
||||
bool result = L->errors ? false : true;
|
||||
LC_LangEnd(lang);
|
||||
|
||||
@@ -6,24 +6,23 @@ bool hello_world() {
|
||||
LC_RegisterPackageDir("../examples/");
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
|
||||
LC_Intern name = LC_ILit("hello_world");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
if (L->errors) {
|
||||
LC_Intern name = LC_ILit("hello_world");
|
||||
LC_ParseAndResolve(name);
|
||||
if (lang->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
OS_MakeDir("examples/hello_world");
|
||||
S8_String code = LC_GenerateUnityBuild(packages);
|
||||
LC_ParseAndResolve(name);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
LC_LangEnd(lang);
|
||||
|
||||
S8_String path = "examples/hello_world/hello_world.c";
|
||||
OS_WriteFile(path, code);
|
||||
|
||||
bool success = true;
|
||||
if (UseCL) {
|
||||
S8_String cmd = Fmt("cl %.*s -Zi -std:c11 -nologo -FC -Fd:examples/hello_world/hello_world.pdb -Fe:examples/hello_world/hello_world.exe %.*s", S8_Expand(path), S8_Expand(RaylibLIB));
|
||||
if (Run(cmd) != 0) success = false;
|
||||
S8_String cmd = Fmt("cl %.*s -nologo -FC -Fd:examples/hello_world/hello_world.pdb -Fe:examples/hello_world/hello_world.exe", S8_Expand(path));
|
||||
if (Run(cmd) != 0) return false;
|
||||
}
|
||||
|
||||
LC_LangEnd(lang);
|
||||
return success;
|
||||
return true;
|
||||
}
|
||||
@@ -7,15 +7,15 @@ bool pathfinding_visualizer() {
|
||||
LC_RegisterPackageDir("../examples/");
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
|
||||
LC_Intern name = LC_ILit("pathfinding_visualizer");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
LC_FindUnusedLocalsAndRemoveUnusedGlobalDecls();
|
||||
LC_Intern name = LC_ILit("pathfinding_visualizer");
|
||||
LC_ParseAndResolve(name);
|
||||
LC_FindUnusedLocalsAndRemoveUnusedGlobalDeclsPass();
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
DebugVerifyAST(packages);
|
||||
DebugVerifyAST(L->ordered_packages);
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
@@ -23,7 +23,7 @@ bool pathfinding_visualizer() {
|
||||
|
||||
OS_MakeDir("examples");
|
||||
OS_MakeDir("examples/pathfinding_visualizer");
|
||||
S8_String code = LC_GenerateUnityBuild(packages);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
S8_String path = "examples/pathfinding_visualizer/pathfinding_visualizer.c";
|
||||
OS_WriteFile(path, code);
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ bool sandbox() {
|
||||
LC_RegisterPackageDir("../examples");
|
||||
|
||||
LC_Intern name = LC_ILit("sandbox");
|
||||
LC_ParsePackagesUsingRegistry(name);
|
||||
LC_ParsePackagesPass(name);
|
||||
LC_BuildIfPass();
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
@@ -97,14 +97,14 @@ bool sandbox() {
|
||||
LC_DLLAdd(package->apackage.ffile, package->apackage.lfile, new_array_file);
|
||||
}
|
||||
|
||||
LC_OrderAndResolveTopLevelDecls(name);
|
||||
LC_ResolveAllProcBodies();
|
||||
LC_OrderAndResolveTopLevelPass(name);
|
||||
LC_ResolveProcBodiesPass();
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
S8_String code = LC_GenerateUnityBuild(L->ordered_packages);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
S8_String path = "examples/sandbox/sandbox.c";
|
||||
|
||||
OS_MakeDir("examples/sandbox");
|
||||
|
||||
@@ -8,20 +8,20 @@ bool text_editor() {
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
LC_RegisterPackageDir("../examples");
|
||||
|
||||
LC_Intern name = LC_ILit("text_editor");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
LC_Intern name = LC_ILit("text_editor");
|
||||
LC_ParseAndResolve(name);
|
||||
if (L->errors) return false;
|
||||
|
||||
DebugVerifyAST(packages);
|
||||
DebugVerifyAST(L->ordered_packages);
|
||||
if (L->errors) return false;
|
||||
|
||||
LC_FindUnusedLocalsAndRemoveUnusedGlobalDecls();
|
||||
LC_FindUnusedLocalsAndRemoveUnusedGlobalDeclsPass();
|
||||
|
||||
OS_MakeDir("examples");
|
||||
OS_MakeDir("examples/text_editor");
|
||||
OS_CopyFile(RaylibDLL, "examples/text_editor/raylib.dll", true);
|
||||
|
||||
S8_String code = LC_GenerateUnityBuild(packages);
|
||||
LC_String code = LC_GenerateUnityBuild();
|
||||
S8_String path = "examples/text_editor/text_editor.c";
|
||||
OS_WriteFile(path, code);
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ bool use_as_data_format_with_typechecking() {
|
||||
LC_RegisterPackageDir("../examples/");
|
||||
LC_RegisterPackageDir("../pkgs");
|
||||
|
||||
LC_Intern name = LC_ILit("use_as_data_format_with_typechecking");
|
||||
LC_ASTRefList packages = LC_ResolvePackageByName(name);
|
||||
LC_Intern name = LC_ILit("use_as_data_format_with_typechecking");
|
||||
LC_ParseAndResolve(name);
|
||||
if (L->errors) {
|
||||
LC_LangEnd(lang);
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user