Simple precedence grammar
Appearance
A simple precedence grammar is a context-free formal grammar that can be parsed with a simple precedence parser.[1] The concept was first developed by Niklaus Wirth and Helmut Weber from the ideas of Robert Floyd in their paper, EULER: a generalization of ALGOL, and its formal definition, in the Communications of the ACM in 1966.[2]
Formal definition
G = (N, Σ, P, S) is a simple precedence grammar if all the production rules in P comply with the following constraints:
- There are no erasing rules (ε-productions)
- There are no useless rules (unreachable symbols or unproductive rules)
- For each pair of symbols X, Y (X, Y (N ∪ Σ)) there is only one Wirth-Weber precedence relation.
- G is uniquely inversible
Examples
precedence table:
S | a | b | c | $ | |
S | |||||
a | |||||
b | |||||
c | |||||
$ |
References
- ^ The Theory of Parsing, Translation, and Compiling: Compiling, Alfred V. Aho, Jeffrey D. Ullman, Prentice-Hall, 1972.
- ^ Machines, Languages, and Computation, Prentice-Hall, 1978, ISBN 9780135422588,
Wirth and Weber [1966] generalized Floyd's precedence grammars, obtaining the simple precedence grammars.
External links
- [1] at Clemson University