Wirth–Weber precedence relationship

The Wirth–Weber relationship between a pair of symbols is necessary to determine if a formal grammar is a simple precedence grammar, and in such case the simple precedence parser can be used.

The goal is to identify when the viable prefixes have the pivot and must be reduced. A means that the pivot is found, a means that a potential pivot is starting, and a means that we are still in the same pivot.

Formal definition

Precedence relations computing algorithm

We will define three sets for a symbol:


Note that Head*(X) is X if X is a terminal, and if X is a non-terminal, Head*(X) is the set with only the terminals belonging to Head+(X). This set is equivalent to First-set or Fi(X) described in LL parser

Note that Head+(X) and Tail+(X) are if X is a terminal.


The pseudocode for computing relations is:

Note that and are used with sets instead of elements as they were defined, in this case you must add all the cartesian product between the sets/elements

Examples

precedence table:

Sabc$
S
a
b
c
$
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.