diff --git a/ablescript/src/variables.rs b/ablescript/src/variables.rs index cd0bd3a5..96c963dc 100644 --- a/ablescript/src/variables.rs +++ b/ablescript/src/variables.rs @@ -118,6 +118,20 @@ impl Value { tape_len, } => (instructions.len() + tape_len) as _, Functio::Able { params, body } => (params.len() + format!("{:?}", body).len()) as _, + Functio::Chain { functios, kind } => { + let (lhs, rhs) = *functios; + match kind { + FunctioChainKind::Ordered => { + Value::Int(Value::Functio(lhs).into_i32()) + + Value::Int(Value::Functio(rhs).into_i32()) + } + FunctioChainKind::Interlaced => { + Value::Int(Value::Functio(lhs).into_i32()) + * Value::Int(Value::Functio(rhs).into_i32()) + } + } + .into_i32() + } Functio::Eval(s) => s.len() as _, }, Value::Int(i) => i,