aboutsummaryrefslogtreecommitdiffstats
path: root/bytecode/src/encoding.rs
diff options
context:
space:
mode:
authorRose Hogenson <rhogenson@posteo.net>2022-08-22 20:07:06 -0700
committerRose Hogenson <rhogenson@posteo.net>2022-08-22 20:07:06 -0700
commitdc8a480c65fabf35b99398120aeccca8f2874c6d (patch)
tree5137f282745f622fc69c799c4e95d694c47c0095 /bytecode/src/encoding.rs
parentfc565d78596a44f6e6253932d726c830e3f6e509 (diff)
downloadchromatopelma-dc8a480c65fabf35b99398120aeccca8f2874c6d.tar.zst
Add a few primitive list operations.
Diffstat (limited to 'bytecode/src/encoding.rs')
-rw-r--r--bytecode/src/encoding.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/bytecode/src/encoding.rs b/bytecode/src/encoding.rs
index 8fccc1a..44fff51 100644
--- a/bytecode/src/encoding.rs
+++ b/bytecode/src/encoding.rs
@@ -113,6 +113,12 @@ fn op_decoding<T: Read>(prog: &mut T) -> Result<Option<Op>, String> {
read_arg(prog, arg1_const)?,
read_arg(prog, arg2_const)?,
),
+ 18 => Op::Cons(
+ read_local(prog)?,
+ read_arg(prog, arg1_const)?,
+ read_arg(prog, arg2_const)?,
+ ),
+ 19 => Op::Len(read_local(prog)?, read_arg(prog, arg1_const)?),
_ => {
return Err(String::from("invalid opcode"));
}