use std::str::FromStr;
use crate::{Bytecode};
use crate::parser::Parser;
pub enum BoundedResult<S,T> {
Ok(S),
Err(T),
OutOfResource
}
pub struct Program {
bytecodes: Vec<Bytecode>
}
impl<'a> Program {
pub fn new(bytecodes: Vec<Bytecode>) -> Self {
Self{bytecodes}
}
pub fn check(&self) -> Vec<BoundedResult<(),()>> {
todo!()
}
}
impl FromStr for Program {
type Err = ();
fn from_str(input: &str) -> Result<Self, Self::Err> {
let parser = Parser::new(input);
let bytecodes = parser.parse()?;
Ok(Program::new(bytecodes))
}
}