Big referencing refactor

- RC+RefCell pattern used... everywhere
- Ast type implemented
- unit tests for func_call
- more changes, but this commit scope has grown significantly and I
cannot list them all
This commit is contained in:
Aidan 2021-03-14 16:14:57 -07:00
parent 76b12a8214
commit 3434a49cc1
No known key found for this signature in database
GPG key ID: 327711E983899316
9 changed files with 446 additions and 391 deletions

View file

@ -15,8 +15,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
use std::boxed::Box;
use crate::cell::{Cell};
use std::rc::Rc;
use std::cell::RefCell;
use crate::segment::{Ast};
use crate::func::FTable;
use crate::vars::VTable;
@ -25,10 +26,10 @@ use crate::vars::VTable;
* representing the simplest possible form of the input
*/
pub fn eval(
_ast: &Box<Cell>,
_vars: &Box<VTable>,
_funcs: &Box<FTable>,
_ast: Ast,
_vars: Rc<RefCell<VTable>>,
_funcs: Rc<RefCell<FTable>>,
_sym_loose: bool
) -> Result<Box<Cell>, String> {
) -> Result<Ast, String> {
Err("Unimplemented".to_string())
}