diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-03-06 20:33:27 +1300 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-03-11 16:59:26 +1300 |
commit | 1ecee352f5844b0809d7ae66df52e34f42b44c8e (patch) | |
tree | 472b6fd57ff7f64ac3f8cd676cbe7a113ba01f05 /src/stages/mod.rs | |
parent | f2ed89083f5326a7a6f0a1720033d3388aa431fb (diff) | |
download | torque-asm-1ecee352f5844b0809d7ae66df52e34f42b44c8e.zip |
Rewrite entire assembler
The language is now more general, the code is better structured, error
reporting is more detailed, and many new language features have
been implemented:
- conditional blocks
- first-class strings
- more expression operators
- binary literals
- negative values
- invocations in constant expressions
Diffstat (limited to 'src/stages/mod.rs')
-rw-r--r-- | src/stages/mod.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/stages/mod.rs b/src/stages/mod.rs new file mode 100644 index 0000000..e735f05 --- /dev/null +++ b/src/stages/mod.rs @@ -0,0 +1,31 @@ +mod syntactic; +mod syntactic_tokens; +mod semantic; +mod semantic_tokens; +mod intermediate; +mod intermediate_tokens; +mod bytecode; +mod bytecode_tokens; + +pub use syntactic::*; +pub use syntactic_tokens::*; +pub use semantic::*; +pub use semantic_tokens::*; +pub use intermediate::*; +pub use intermediate_tokens::*; +pub use bytecode::*; +pub use bytecode_tokens::*; + + +#[macro_export] +macro_rules! indent { + (0, $($tokens:tt)*) => {{ + println!($($tokens)*); + }}; + ($indent:expr, $($tokens:tt)*) => {{ + for _ in 0..$indent { print!(" "); } + println!($($tokens)*); + }}; +} + + |