1#![forbid(unsafe_code)]
18#![doc = include_str!("../README.md")]
19
20mod errors;
21
22mod static_analysis;
23pub use static_analysis::*;
24
25mod cei_analysis;
26pub use cei_analysis::*;
27
28mod code_generation;
29pub use code_generation::*;
30
31mod common;
32pub use common::*;
33
34mod common_subexpression_elimination;
35pub use common_subexpression_elimination::*;
36
37mod const_propagation;
38pub use const_propagation::*;
39
40mod const_prop_unroll_and_morphing;
41pub use const_prop_unroll_and_morphing::*;
42
43mod dead_code_elimination;
44pub use dead_code_elimination::*;
45
46mod destructuring;
47pub use destructuring::*;
48
49mod disambiguate;
50pub use disambiguate::*;
51
52mod flattening;
53pub use flattening::*;
54
55mod function_inlining;
56pub use function_inlining::*;
57
58mod global_items_collection;
59pub use global_items_collection::*;
60
61mod global_vars_collection;
62pub use global_vars_collection::*;
63
64mod loop_unrolling;
65pub use loop_unrolling::*;
66
67mod monomorphization;
68pub use monomorphization::*;
69
70mod option_lowering;
71pub use option_lowering::*;
72
73mod path_resolution;
74pub use path_resolution::*;
75
76mod pass;
77pub use pass::*;
78
79mod peephole_optimization;
80pub use peephole_optimization::*;
81
82mod processing_async;
83pub use processing_async::*;
84
85mod remove_unreachable;
86pub use remove_unreachable::*;
87
88mod static_single_assignment;
89pub use static_single_assignment::*;
90
91mod ssa_const_propagation;
92pub use ssa_const_propagation::*;
93
94mod storage_lowering;
95pub use storage_lowering::*;
96
97mod type_checking;
98pub use type_checking::*;
99
100mod name_validation;
101pub use name_validation::*;
102
103mod check_interfaces;
104pub use check_interfaces::*;
105
106mod write_transforming;
107pub use write_transforming::*;
108
109#[derive(Default)]
111pub struct CompiledPrograms {
112 pub primary_bytecode: String,
114 pub import_bytecodes: Vec<Bytecode>,
116}
117
118#[derive(Default)]
120pub struct Bytecode {
121 pub program_name: String,
123 pub bytecode: String,
125}
126
127#[cfg(test)]
128mod test_passes;