use std::string::String;
use strontium::machine::instruction::Instruction;
use crate::compiler::Compiler;
use crate::types::{CompilerResult, Expression, ExpressionKind};
use super::Compilelet;
pub struct ValuePatternCompilelet;
impl Compilelet for ValuePatternCompilelet {
fn compile(
&self,
compiler: &mut Compiler,
expression: Expression,
target_register: Option<String>,
) -> CompilerResult<Vec<Instruction>> {
let mut instructions = vec![];
if let ExpressionKind::Pattern(pattern) = expression.kind {
let expression = pattern.expect_value().unwrap();
instructions.append(&mut compiler.compile_expression(expression, target_register)?);
}
Ok(instructions)
}
}