struct

Sthx::Seq

Inherits Sthx::RuleCollection < Sthx::Rule < Struct < Value < Object

A sequence of rules. If a preceding rule fails the following ones will not attempt to match, and the chain itself will fail to match.

Instance methods

advance(cursor : Cursor, data initial_data : TreeData, *, collect : Collect) : Advance::Result

Performs cursor motion and returns the result, one of Advance::Result: success Advance::Ok or failure Advance::Err.

data is the TreeData object built so far.

To implementors of this method: in case of failure to commit, cursor must be rolled back to its state before calling this method. In other words, advance is implemented in a "transaction" kind of way. Intermediate results and changes must never be available to the caller. This method either succeeds and mutates the cursor; or it fails and leaves the cursor intact.

Source