aboutsummaryrefslogtreecommitdiffstats
path: root/src/parse/mod.rs
diff options
context:
space:
mode:
authorJonas Maier <jonas@x77.dev>2026-05-08 16:15:20 +0200
committerJonas Maier <jonas@x77.dev>2026-05-08 16:15:20 +0200
commit5697ecb492579413a7ce9589df6847a3e205c647 (patch)
tree6e787029d7039bc67428e4e52b31715a85e72fb9 /src/parse/mod.rs
parentac8733ec1a47bb6bffeb3b1db6adf0a10a7b87a6 (diff)
downloadpish-5697ecb492579413a7ce9589df6847a3e205c647.tar.gz
if parse test
Diffstat (limited to 'src/parse/mod.rs')
-rw-r--r--src/parse/mod.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 8cc6a4f..47aff20 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -124,6 +124,22 @@ pub fn pipes<const N: usize>(cmds: [Command<PreExpansion>; N]) -> Ast<PreExpansi
})
}
+pub fn cond(
+ condition: Ast<PreExpansion>,
+ true_block: Block,
+ false_block: Block,
+) -> Ast<PreExpansion> {
+ let Ast::Pipes(condition) = condition else {
+ panic!()
+ };
+ Ast::If(If {
+ condition,
+ true_block,
+ false_block,
+ parse_progress: IfParseProgress::Done,
+ })
+}
+
pub fn estr(x: &[u8]) -> ExpString {
ExpString {
parts: vec![StringPart::Boring(x.to_vec())],