Parser - a Gram can provide a parser, which...
Parser - a Gram can provide a parser, which... parses what the Gram describes
This || operator means one of the operands ONLY.
This || operator means one of the operands ONLY. I.e., statically they are supposed to be mutually exclusive, so only one (or none) of them should ever survive.
Sequential composition operator in the grammar.
Sequential composition operator in the grammar.
Note: This should not evaluate the argument unless it has to.
Refactored primitives that use expressions to put expression evaluation in one place. On this base (for the primitive), and a corresponding parser base class for the actual evaluation.
That fixed a bug where a SDE wasn't being reported until the parser was run that could have been reported at compilation time.
Anything being computed that involves the dsom or grammar objects or attributes of them, should be done in the grammar primitives, and NOT in the parser. This is important to insure errors are captured at compilation time and reported on relevant objects.