pr47 0.0.3

A semi-experimental programming language. Still working in progress.
Documentation
pub mod types;
pub use types::*;

use std::collections::{BTreeMap, BTreeSet};

use crate::vm::types::Pr47Value;
use crate::bind::funcs::Pr47RustFunc;
use crate::util::mstring::StringHandle;

pub struct Pr47Env<'a> {
    static_stack: Vec<Vec<Pr47Value>>,
    dynamic_stack: Vec<Vec<Pr47Ptr<'a>>>,
    heap: Vec<Pr47Ptr<'a>>,
    known_rust_types: BTreeSet<StringHandle>,
    ffi_funcs: BTreeMap<StringHandle, Box<dyn Pr47RustFunc>>
}

impl<'a> Pr47Env<'a> {
    pub fn new() -> Self {
        Self {
            static_stack: Vec::new(),
            dynamic_stack: Vec::new(),
            heap: Vec::new(),
            known_rust_types: BTreeSet::new(),
            ffi_funcs: BTreeMap::new()
        }
    }
}