add loop syntax, remove loop function, change CLI

This commit is contained in:
Mark
2024-02-22 13:34:02 +01:00
parent 66c191ba2c
commit f3f2c13702
8 changed files with 133 additions and 131 deletions

View File

@@ -440,6 +440,23 @@ pub fn parse_no_chain(
on_false,
})
}
"loop" => {
src.section_begin("loop".to_string());
src.skip_whitespace();
let inner = match parse(src, srca) {
Ok(Some(v)) => v,
Ok(None) => {
return Err(CheckError::new()
.src(vec![((pos_in_src, src.get_pos(), srca).into(), None)])
.msg(format!("EOF after `loop`")))
}
Err(e) => return Err(e),
};
Box::new(program::parsed::r#loop::Loop {
pos_in_src: (pos_in_src, src.get_pos(), srca).into(),
inner,
})
}
"true" => Box::new(program::parsed::value::Value {
pos_in_src: (pos_in_src, src.get_pos(), srca).into(),
data: Data::new(crate::data::bool::Bool(true)),