11 个版本 (6 个重大更新)
0.6.1 | 2021年9月8日 |
---|---|
0.6.0 | 2021年7月9日 |
0.5.2 | 2021年7月8日 |
0.1.0 | 2021年1月28日 |
在 #smt-lib 中排名第 10
每月下载量 10,005 次
在 5 个crate中使用(4个直接使用)
190KB
5K SLoC
smt2parser
此crate提供了一个适用于SMT2命令的通用解析器,这些命令由SMT-LIB-2标准指定。
命令将由用户提供的一个实现 visitors::Smt2Visitor
的特质进行解析并立即访问。
要获取具体语法值,请使用 concrete::SyntaxBuilder
作为访问者
let input = b"(echo \"Hello world!\")(exit)";
let stream = CommandStream::new(
&input[..],
concrete::SyntaxBuilder,
Some("optional/path/to/file".to_string()),
);
let commands = stream.collect::<Result<Vec<_>, _>>().unwrap();
assert!(matches!(commands[..], [
concrete::Command::Echo {..},
concrete::Command::Exit,
]));
assert_eq!(commands[0].to_string(), "(echo \"Hello world!\")");
贡献
请参阅CONTRIBUTING文件了解如何提供帮助。
许可证
此项目可在Apache 2.0许可证或MIT许可证的条款下使用。
依赖项
~6.5MB
~100K SLoC