Jump to content

Operator-precedence parser

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Luqui (talk | contribs) at 10:46, 20 December 2004 (Initial page.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

An operator-precedence parser is a simple shift-reduce parser capable of parsing a subset of LR(1) grammars. More precisely, the operator-precedence parser can parse all LR(1) grammars where two concecutive nonterminals appear in the right-hand side of no rule.

Operator-precedence parsers are not used often in practice, however they do have some properties that make them useful within a larger design. First, they are simple enough to write by hand, which is not generally the case with more sophisticated shift-reduce parsers. Second, they can be written to consult an operator table at runtime, which makes them suitable for languages that can add to or change their operators while parsing.

Perl 6 "sandwitches" an operator-precedence parser in between two Recursive descent parsers in order to achieve a balance of speed and dynamism.