9 breaking releases
0.9.0 | Oct 22, 2024 |
---|---|
0.7.1 | Sep 16, 2024 |
0.5.0 | Jul 17, 2024 |
0.1.0 | Dec 17, 2023 |
#136 in Programming languages
374 downloads per month
Used in 7 crates
(5 directly)
1MB
19K
SLoC
An abstract syntax tree for Workflow Description Language (WDL) documents.
The AST implementation is effectively a facade over the concrete syntax tree
(CST) implemented by [SyntaxTree] from wdl-grammar
.
An AST is cheap to construct and may be cheaply cloned at any level.
However, an AST (and the underlying CST) are immutable; updating the tree requires replacing a node in the tree to produce a new tree. The unaffected nodes of the replacement are reused from the old tree to the new tree.
Examples
An example of parsing a WDL document into an AST and validating it:
use wdl_ast::Document;
use wdl_ast::Validator;
let (document, diagnostics) = Document::parse(source);
if !diagnostics.is_empty() {
// Handle the failure to parse
}
let mut validator = Validator::default();
if let Err(diagnostics) = validator.validate(&document) {
// Handle the failure to validate
}
Dependencies
~6–14MB
~146K SLoC