From 81861cc4b05bf528d8db12d63bf57b6e90bc8e2c Mon Sep 17 00:00:00 2001 From: "Colin S. Gordon" Date: Thu, 27 Jan 2022 16:38:52 -0500 Subject: [PATCH] add comparison operators --- src/main.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 87913f0..5f5be3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -84,7 +84,10 @@ pub fn parse_op(i: &[u8]) -> IResult<&[u8], &str> { tag("/"), tag("|"), tag("&"), - tag("^") + tag("^"), + tag("<"), + tag(">"), + tag("==") ))(i).map(|(rest,op)| (rest, from_utf8(op).unwrap())) } pub fn parse_register_name(i: &[u8]) -> IResult<&[u8], &str> { @@ -809,6 +812,9 @@ fn run_code<'a>(prog: &'a IRProgram<'a>, "&" => set_var(&mut locs, v, VirtualVal::Data { val: n1&n2 }), "|" => set_var(&mut locs, v, VirtualVal::Data { val: n1|n2 }), "^" => set_var(&mut locs, v, VirtualVal::Data { val: n1^n2 }), + "<" => set_var(&mut locs, v, VirtualVal::Data { val: if n1" => set_var(&mut locs, v, VirtualVal::Data { val: if n1>n2 {1} else {0} }), + "==" => set_var(&mut locs, v, VirtualVal::Data { val: if n1==n2 {1} else {0}}), _ => Err(RuntimeError::NYI) }