Wirth-Weber precedence relationship
From Wikipedia, the free encyclopedia
The Wirth-Webber relationship between a pair of symbols are necessary to determine if a formal grammar is a Simple precedence grammar, and in such case the Simple precedence parser can be used.
Contents |
[edit] Formal definition
G = < Vn,Vt,S,P >
[edit] 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
The pseudocode for computing relations is:
- RelationTable :=
- For each production
- For each two adjacent symbols X Y in α
- add(RelationTable,)
- add(RelationTable,)
- add(RelationTable,)
- For each two adjacent symbols X Y in α
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
[edit] Examples
precedence table:
S | a | b | c | |
S | ||||
a | ||||
b | ||||
c |