mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'lemu/src/parser/mod.rs')
-rw-r--r--lemu/src/parser/mod.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/lemu/src/parser/mod.rs b/lemu/src/parser/mod.rs
index 6ef5253..0764189 100644
--- a/lemu/src/parser/mod.rs
+++ b/lemu/src/parser/mod.rs
@@ -44,7 +44,6 @@ macro_rules! tokstr {
Token::Print => Some("print"),
Token::Jump => Some("jump"),
Token::Stop => Some("stop"),
- Token::Counter => Some("@counter"),
Token::Equal => Some("equal"),
Token::NotEqual => Some("notEqual"),
Token::LessThan => Some("lessThan"),
@@ -139,6 +138,7 @@ pub fn parse<'source, W: Wr>(
unsafe { Ok(LAddress::addr(used - 1)) }
}};
}
+ push!("@counter")?;
macro_rules! addr {
($val:expr) => {{
let val = $val;
@@ -279,14 +279,9 @@ pub fn parse<'source, W: Wr>(
// set x 4
Token::Set => {
let from = tok!()?;
- if from == Token::Counter {
- let to = take_numvar!(tok!()?)?;
- executor.add(DynJump { to, proglen: 0 });
- } else {
- let from = addr!(take_ident!(from)?)?;
- let to = take_var!(tok!()?)?;
- executor.add(Set { from, to });
- }
+ let from = addr!(take_ident!(from)?)?;
+ let to = take_var!(tok!()?)?;
+ executor.add(Set { from, to });
}
// stop
Token::Stop => {
@@ -643,7 +638,10 @@ pub fn parse<'source, W: Wr>(
}};
}
match i {
- "noop" => {}
+ "noop" => {
+ // executor.program.push(UPInstr::Comment("a"));
+ executor.add(crate::instructions::Noop {});
+ }
"printflush" => instr! {
(1) => |b| {
let t = tok!()?;