mirror of
https://forge.katzen.cafe/katzen-cafe/iowo.git
synced 2024-12-22 10:05:52 +01:00
lang: add test
This commit is contained in:
parent
ca84af4e1b
commit
de008263ca
1 changed files with 108 additions and 1 deletions
|
@ -125,10 +125,117 @@ mod tests {
|
|||
(5..32).into()
|
||||
))
|
||||
),
|
||||
(0..0).into()
|
||||
(0..32).into()
|
||||
)
|
||||
)])
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
fn test_parse_multiple_top_level_complex() {
|
||||
const INPUT: &str = r#"def main = meow
|
||||
| uwu
|
||||
[ foo: @bar
|
||||
, hello: world @| test [ more: params ] | yay
|
||||
]
|
||||
!| awa
|
||||
@| nya
|
||||
| rawr;
|
||||
|
||||
def test = meow
|
||||
[ hello: $foo
|
||||
, world: @bar
|
||||
];
|
||||
"#;
|
||||
assert_eq!(
|
||||
parse(INPUT).unwrap(),
|
||||
File {
|
||||
decls: IndexMap::from_iter([
|
||||
(
|
||||
("main", (4..8).into()),
|
||||
(
|
||||
Expr::SimplePipe(
|
||||
Box::new(Expr::Node(("meow", (11..15).into()), None)),
|
||||
Box::new(Expr::NullPipe(
|
||||
Box::new(Expr::Node(
|
||||
("uwu", (20..23).into()),
|
||||
Some((
|
||||
IndexMap::from_iter([
|
||||
(
|
||||
("foo", (29..32).into()),
|
||||
Expr::InputVar(("bar", (34..38).into()))
|
||||
),
|
||||
(
|
||||
("hello", (44..49).into()),
|
||||
Expr::MappingPipe(
|
||||
Box::new(Expr::Node(
|
||||
("world", (51..56).into()),
|
||||
None
|
||||
)),
|
||||
Box::new(Expr::SimplePipe(
|
||||
Box::new(Expr::Node(
|
||||
("test", (60..64).into()),
|
||||
Some((
|
||||
IndexMap::from_iter([(
|
||||
("more", (67..71).into()),
|
||||
Expr::Node(
|
||||
(
|
||||
"params",
|
||||
(73..79).into()
|
||||
),
|
||||
None
|
||||
)
|
||||
)]),
|
||||
(65..81).into()
|
||||
))
|
||||
)),
|
||||
Box::new(Expr::Node(
|
||||
("yay", (84..87).into()),
|
||||
None
|
||||
))
|
||||
))
|
||||
)
|
||||
)
|
||||
]),
|
||||
(27..92).into()
|
||||
))
|
||||
)),
|
||||
Box::new(Expr::MappingPipe(
|
||||
Box::new(Expr::Node(("awa", (97..100).into()), None)),
|
||||
Box::new(Expr::SimplePipe(
|
||||
Box::new(Expr::Node(("nya", (106..109).into()), None)),
|
||||
Box::new(Expr::Node(("rawr", (114..118).into()), None))
|
||||
))
|
||||
))
|
||||
))
|
||||
),
|
||||
(11..118).into()
|
||||
),
|
||||
),
|
||||
(
|
||||
("test", (125..129).into()),
|
||||
(
|
||||
Expr::Node(
|
||||
("meow", (132..136).into()),
|
||||
Some((
|
||||
IndexMap::from_iter([
|
||||
(
|
||||
("hello", (141..146).into()),
|
||||
Expr::Var(("foo", (148..152).into()))
|
||||
),
|
||||
(
|
||||
("world", (156..161).into()),
|
||||
Expr::InputVar(("bar", (163..167).into()))
|
||||
)
|
||||
]),
|
||||
(139..171).into()
|
||||
))
|
||||
),
|
||||
(132..171).into()
|
||||
)
|
||||
)
|
||||
])
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue