diff --git a/ablescript/src/variables.rs b/ablescript/src/variables.rs index 1a7af9e..47a3a1d 100644 --- a/ablescript/src/variables.rs +++ b/ablescript/src/variables.rs @@ -206,7 +206,16 @@ impl Value { params: vec![], }, Value::Str(s) => Functio::Eval(s), - Value::Int(_) => todo!(), + Value::Int(i) => Functio::BfFunctio { + instructions: { + let instruction_mappings = [b'[', b']', b'+', b'-', b',', b'.', b'<', b'>']; + std::iter::successors(Some(i), |i| Some(i >> 3)) + .take_while(|&i| i != 0) + .map(|i| instruction_mappings[(i & 0x07) as usize]) + .collect() + }, + tape_len: crate::brian::DEFAULT_TAPE_SIZE_LIMIT, + }, Value::Bool(_) => todo!(), Value::Abool(_) => todo!(), Value::Functio(f) => f,