PLY (software): Difference between revisions
removing and categorizing |
Magioladitis (talk | contribs) m →References: clean up, replaced: <references /> → {{Reflist}} using AWB (11971) |
||
Line 44: | Line 44: | ||
==References== |
==References== |
||
⚫ | |||
<references /> |
|||
⚫ | |||
<!--- After listing your sources please cite them using inline citations and place them after the information they cite. Please see http://en.wikipedia.org/wiki/Wikipedia:REFB for instructions on how to add citations. ---> |
<!--- After listing your sources please cite them using inline citations and place them after the information they cite. Please see http://en.wikipedia.org/wiki/Wikipedia:REFB for instructions on how to add citations. ---> |
||
* |
* |
Revision as of 10:49, 11 March 2016
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Original author(s) | David Beazley |
---|---|
Repository | |
Written in | Python |
Website | www |
PLY is a parsing tool written purely in Python. It is basically a re-implementation of Lex and Yacc originally in C-language. It was written by David Beazley.[1] Unlike Lex and Yacc in C which uses LALR parsing technique, PLY uses LR parsing which can incorporate large grammars easily. PLY also has extensive debugging and error reporting facilities.
History
David Beazley originally wrote PLY in 2001 for an introductory course on compilers. He created it to aid the students in creating compilers for simple Pascal-like languages.[2] Since then it has seen many improvements and has come out as one of the popular parsing tools.
Features
Implemented in Python, it has almost all the features provided by Lex and Yacc. It includes support for empty productions, precedence rules, error recovery, and ambiguous grammars.
PLY-3.0 includes support for Python 3.0 and some other features.
Structure of a PLY file
PLY has the following two Python modules which are part of the ply package.[3]
- ply.lex - This deals with the lexical analysis part.
- ply.yacc - This module is for creating a parser.
These files contain the necessary modules.