smt2parser

Crates.iosmt2parser
lib.rssmt2parser
version0.6.1
sourcesrc
created_at2021-01-05 23:17:42.122718
updated_at2021-09-08 20:41:18.193768
descriptionGeneric parser library for the SMT-LIB-2 format
homepage
repositoryhttps://github.com/facebookincubator/smt2utils
max_upload_size
id332506
size203,298
Mathieu Baudet (ma2bd)

documentation

https://docs.rs/smt2parser

README

smt2parser

smt2parser on crates.io Documentation License License

This crate provides a generic parser for SMT2 commands, as specified by the SMT-LIB-2 standard.

Commands are parsed and immediately visited by a user-provided implementation of the trait visitors::Smt2Visitor.

To obtain concrete syntax values, use concrete::SyntaxBuilder as a visitor:

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

See the CONTRIBUTING file for how to help out.

License

This project is available under the terms of either the Apache 2.0 license or the MIT license.

Commit count: 139

cargo fmt