Fully fledged lambdas, along with efficiency tweaks across the ast
This commit is contained in:
parent
b0bd369c1d
commit
8efa1dbaad
10 changed files with 264 additions and 70 deletions
|
|
@ -46,6 +46,7 @@ pub fn concat_callback(ast: &Seg, _syms: &mut SymTable) -> Result<Ctr, String> {
|
|||
Ctr::Float(f) => string.push_str(&f.to_string()),
|
||||
Ctr::Bool(b) => string.push_str(&b.to_string()),
|
||||
Ctr::Seg(c) => string.push_str(&c.to_string()),
|
||||
Ctr::Lambda(l) => string.push_str(&l.to_string()),
|
||||
Ctr::None => (),
|
||||
}
|
||||
true
|
||||
|
|
@ -67,6 +68,7 @@ pub fn strlen_callback(ast: &Seg, _syms: &mut SymTable) -> Result<Ctr, String> {
|
|||
Ctr::Float(f) => Ok(Ctr::Integer(f.to_string().len() as i128)),
|
||||
Ctr::Bool(b) => Ok(Ctr::Integer(b.to_string().len() as i128)),
|
||||
Ctr::Seg(c) => Ok(Ctr::Integer(c.to_string().len() as i128)),
|
||||
Ctr::Lambda(l) => Ok(Ctr::Integer(l.to_string().len() as i128)),
|
||||
// highly suspicious case below
|
||||
Ctr::None => Ok(Ctr::Integer(0)),
|
||||
}
|
||||
|
|
@ -83,6 +85,7 @@ pub fn strcast_callback(ast: &Seg, _syms: &mut SymTable) -> Result<Ctr, String>
|
|||
Ctr::Float(f) => Ok(Ctr::String(f.to_string())),
|
||||
Ctr::Bool(b) => Ok(Ctr::String(b.to_string())),
|
||||
Ctr::Seg(c) => Ok(Ctr::String(c.to_string())),
|
||||
Ctr::Lambda(l) => Ok(Ctr::String(l.to_string())),
|
||||
// highly suspicious case below
|
||||
Ctr::None => Ok(Ctr::String(String::new())),
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue