got all the load script stuff done.

added script args to main shell
also added userlib tests to ci
This commit is contained in:
Ava Apples Affine 2023-03-20 19:00:30 -07:00
parent 381852b3bd
commit 3f75157fac
Signed by: affine
GPG key ID: 3A4645B8CF806069
7 changed files with 122 additions and 49 deletions

View file

@ -27,9 +27,6 @@ pub struct SymTable(HashMap<String, Symbol>, usize);
#[derive(Debug, Clone)]
pub struct UserFn {
// Un-evaluated abstract syntax tree
// TODO: Intermediate evaluation to simplify branches with no argument in them
// Simplified branches must not have side effects.
// TODO: Apply Memoization?
pub ast: Box<Seg>,
// list of argument string tokens
pub arg_syms: Vec<String>,
@ -65,11 +62,10 @@ pub struct Symbol {
pub name: String,
pub args: Args,
// for internal control flow constructs
// eval() will not eval the args
pub conditional_branches: bool,
pub docs: String,
// see SymTable::Insert
// (only pub begrudgingly
// (only pub begrudgingly)
pub __generation: usize,
}