Jump to content

PLY (software): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
fixed wikilinks
Codename Lisa (talk | contribs)
Cleanup. Removed erroneous parameters from the infobox. For a list of supported parameters please consult Template:Infobox software/doc.
Line 11: Line 11:
| released =
| released =
| discontinued =
| discontinued =
| frequently updated = yes
| programming language = [[Python (programming language)|Python]]
| programming language = [[Python (programming language)|Python]]
| operating system =
| operating system =
Line 20: Line 19:
| genre =
| genre =
| license =
| license =
| website = {{URL|http://www.dabeaz.com/ply/}}
| website = {{URL|dabeaz.com/ply/}}
}}
}}


Line 42: Line 41:
==References==
==References==
{{Reflist}}
{{Reflist}}
<!--- 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. --->
*
*
*
*

<!--- STOP! Be warned that by using this process instead of Articles for Creation, this article is subject to scrutiny. As an article in "mainspace", it will be DELETED if there are problems, not just declined. If you wish to use AfC, please return to the Wizard and continue from there. --->


[[Category:Parser generators]]
[[Category:Parser generators]]

Revision as of 09:45, 2 January 2018

PLY (Python Lex-Yacc)
Original author(s)David M. Beazley
Repository
Written inPython
Websitedabeaz.com/ply/

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 M. 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

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.

References

  1. ^ "PLY Homepage".
  2. ^ http://www.drdobbs.com/web-development/prototyping-interpreters-using-python-le/184405580
  3. ^ "Official Documentation".