6个版本
0.3.3 | 2022年5月28日 |
---|---|
0.3.2 | 2022年5月28日 |
0.2.0 | 2022年1月20日 |
0.1.0 | 2022年1月16日 |
在解析器工具中排名291
10KB
227 行
此crate允许您编写类似于以下解析器的测试
let input = "#( a b #items x y )*";
let spans = " ^ ^ ^----^ ^ ^ ";
let expected = [
Rule::token,
Rule::token,
Rule::interpolate,
Rule::token,
Rule::token,
];
使用^
、^^
或^---^
突出显示每个标记,以指示其范围。parser_test::test()
将确保解析器输出包含在指定位置的确切这些标记。
只要您为其输出实现了Token
trait,就可以使用任何解析器。提供了通用的TestToken
,可能适用于所有用例。
到目前为止,此crate用于测试pest解析器
let mut output = Lexer::parse(Rule::interpolate_repetition, input).unwrap();
let output = output.next().unwrap().into_inner().map(|t| {
let span = t.as_span();
TestToken {
start: span.start(),
end: span.end() - 1,
rule: t.as_rule()
}
});
assert!(parser_test::test(output, expected, spans));