summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorBen Bridle <bridle.benjamin@gmail.com>2023-05-06 16:19:15 +1200
committerBen Bridle <bridle.benjamin@gmail.com>2023-05-06 16:19:15 +1200
commite38f108921c61e1e66d65a368f2a67a763d61e69 (patch)
tree2718330c1e9963a21bc08db3ddc18574b078d004 /src/main.rs
downloadbedrock-asm-e38f108921c61e1e66d65a368f2a67a763d61e69.zip
About to refactor parser to be a struct with a method for each stage
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..82bd92d
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,41 @@
+const SOURCE:&'static str =
+// "
+// %SCREEN-SHUNT 00;
+// %SCREEN-DRAW 00;
+
+// @draw_horizontal_line ( len* clr -- )
+// (1) PSHr ( len* | clr )
+// (4) PSH:41 STD:SCREEN-SHUNT ( len* | clr )
+// &loop
+// (2) SKDr:SCREEN-DRAW ( len* | clr )
+// (4) DEC* JKC*:~loop ( len* | clr )
+// (2) STD:SCREEN-SHUNT
+// (3) POP POPr JMPr*
+// ";
+
+"
+%RED 1234;
+%GREEN 5678 @test;
+%BLUE 9ABC;
+
+@start
+ RED
+ start
+ GREEN
+ BLUE
+ $4
+ @end
+";
+
+use bedrock_asm::*;
+
+fn main() {
+ println!("------- PROGRAM START -------");
+ for line in SOURCE.lines() {
+ println!("{line}");
+ }
+ println!("-------- PROGRAM END --------");
+ println!();
+
+ parse(SOURCE);
+}