A memory efficient syntax tree.
```rust use syntree::{Span, TreeBuilder};
enum Syntax { Root, Operation, Number, Plus, }
let mut b = TreeBuilder::new();
b.startnode(Syntax::Root); b.startnode(Syntax::Operation);
b.startnode(Syntax::Number); b.token(Syntax::Number, Span::new(0, 4)); b.endnode()?;
b.startnode(Syntax::Plus); b.token(Syntax::Plus, Span::new(4, 5)); b.endnode()?;
b.startnode(Syntax::Number); b.token(Syntax::Number, Span::new(5, 10)); b.endnode()?;
b.endnode()?; b.endnode()?;
let tree = b.build()?;
assert_eq!(tree.span(), Some(Span::new(0, 10))); ```
License: MIT/Apache-2.0