Next: Failure, Previous: Sequence rules, Up: Top [Contents][Index]
In Libmarpa, there is no direct way to mark a symbol nullable or nulling. All Libmarpa’s terminal symbols are non-nullable. By default, Libmarpa’s non-terminal symbols are nullable or nulling depending on the rules in which they appear on the LHS. The default behavior for non-terminals can be changed (see LHS terminals), but this is deprecated.
To make a symbol x nullable, a user must create an nulling rule whose LHS is x. The empty rule is nulling, so that one way a user can ensure x is nullable is by making it the LHS of an empty rule. If every rule with x on the LHS is nulling, x will be not just nullable, but nulling as well.
• Nullability in the valuator: | ||
• Assigning semantics to nulled symbols: | ||
• Evaluating nulled symbols: | ||
• Example of nulled symbol: | ||
• Duplicate nulled nodes: |