PLY (software)

{{Short description|Re-implementation of Lex and Yacc in Python}}

{{Other uses|Ply (disambiguation)}}

{{More citations needed|date=April 2014}}

{{Infobox software

| name = PLY (Python Lex-Yacc)

| logo =

| screenshot =

| caption =

| collapsible =

| author = David M. Beazley

| developer =

| released =

| latest release version = 3.11

| discontinued =

| programming language = Python

| operating system =

| platform =

| size =

| language =

| genre =

| license =

| website = {{URL|dabeaz.com/ply/}}

}}

PLY is a parsing tool written purely in Python. It is, in essence, a re-implementation of Lex and Yacc originally in C-language. It was written by David M. Beazley. PLY uses the same LALR parsing technique as Lex and Yacc. It also has extensive debugging and error reporting facilities.{{cite web |url=http://www.dabeaz.com/ply/|title=PLY Homepage}}

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. It supports Python 3.

Structure the PLY module

PLY has the following two Python modules which are part of the ply package.{{cite web |url=http://www.dabeaz.com/ply/ply.html#ply_nn2 |title=Official Documentation}}

  • ply.lex - A re-implementation of Lex for lexical analysis
  • ply.yacc - A re-implementation of Yacc for parser creation

References