Crate smt2parser[−][src]
Expand description
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!\")");
Re-exports
pub use concrete::Error;
Modules
A concrete syntax tree together with building functions (aka parser visitors) and SEXP-printing functions.
Utilities for name resolution and renaming of bound symbols.
Rewriting of Smt2 values
A demo implementation of visiting traits that counts things.
The visiting traits expected by the SMT2 parser.
Structs
Parse the input data and return a stream of interpreted SMT2 commands
Record a position in the input stream.
Type Definitions
SMT2 binary values.
SMT2 decimal values.
SMT2 hexadecimal values.
A base-16 digit.
SMT2 numeral values.