use crate::prelude::Statement;
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct Byte(pub String);
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub enum IRByte {
Byte(Byte),
Statement(Statement),
Constant(String),
ArgCall(String),
}
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct IRBytecode(pub Vec<IRByte>);
pub trait ToIRBytecode<E> {
fn to_irbytecode(&self) -> Result<IRBytecode, E>;
}
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct Bytecode(pub String);
pub trait ToBytecode<'a, E> {
fn to_bytecode(&self) -> Result<Bytecode, E>;
}