aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/codegen.rs')
-rw-r--r--macros/src/codegen.rs75
1 files changed, 0 insertions, 75 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs
deleted file mode 100644
index 24e98ce9..00000000
--- a/macros/src/codegen.rs
+++ /dev/null
@@ -1,75 +0,0 @@
-use proc_macro2::TokenStream as TokenStream2;
-use quote::quote;
-
-use crate::analyze::Analysis;
-use crate::syntax::ast::App;
-
-mod assertions;
-mod async_dispatchers;
-mod hardware_tasks;
-mod idle;
-mod init;
-mod local_resources;
-mod local_resources_struct;
-mod module;
-mod post_init;
-mod pre_init;
-mod shared_resources;
-mod shared_resources_struct;
-mod software_tasks;
-mod util;
-
-mod main;
-
-// TODO: organize codegen to actual parts of code
-// so `main::codegen` generates ALL the code for `fn main`,
-// `software_tasks::codegen` generates ALL the code for software tasks etc...
-
-#[allow(clippy::too_many_lines)]
-pub fn app(app: &App, analysis: &Analysis) -> TokenStream2 {
- // Generate the `main` function
- let main = main::codegen(app, analysis);
- let init_codegen = init::codegen(app, analysis);
- let idle_codegen = idle::codegen(app, analysis);
- let shared_resources_codegen = shared_resources::codegen(app, analysis);
- let local_resources_codegen = local_resources::codegen(app, analysis);
- let hardware_tasks_codegen = hardware_tasks::codegen(app, analysis);
- let software_tasks_codegen = software_tasks::codegen(app, analysis);
- let async_dispatchers_codegen = async_dispatchers::codegen(app, analysis);
-
- let user_imports = &app.user_imports;
- let user_code = &app.user_code;
- let name = &app.name;
- let device = &app.args.device;
-
- let rt_err = util::rt_err_ident();
-
- quote!(
- /// The RTIC application module
- pub mod #name {
- /// Always include the device crate which contains the vector table
- use #device as #rt_err;
-
- #(#user_imports)*
-
- #(#user_code)*
- /// User code end
-
- #init_codegen
-
- #idle_codegen
-
- #hardware_tasks_codegen
-
- #software_tasks_codegen
-
- #shared_resources_codegen
-
- #local_resources_codegen
-
- #async_dispatchers_codegen
-
- #main
- }
- )
-}