optional

Create an optional branch. If the optional branch matches, what it stores will is passed transparently, just like if the optional { } was not there. If the optional branch does not match, nothing happens, just like if the entire optional branch was not there.

Typical usage may look like:

MyNode {
    // Everything here must be present in order to have a match...
    expect(...)
    expect(...)
    optional {
        // This branch is optional
        expect(...)
    }
}