{ "info": { "author": "Stephane Klein", "author_email": "stephane@harobed.org", "bugtrack_url": null, "classifiers": [], "description": "====\nPlex\n====\n\nPlex is a library building lexical analysers.\n\n\nPlex is a Python module for constructing lexical analysers, or scanners. Plex\nscanners have almost all the capabilities of the scanners generated by GNU Flex,\nand are specified in a very similar way. Tokens are defined by regular\nexpressions, and each token has an associated action, which may be to return a\nliteral value, or to call an arbitrary function.\n\nPlex is designed to fill a need that is left wanting by the existing Python\nregular expression modules. If you've ever tried to use one of them for\nimplementing a scanner, you will have found that they're not really suited to\nthe task. You can define a bunch of regular expressions which match your tokens\nall right, but you can only match one of them at a time against your input. To\nmatch all of them at once, you have to join them all together into one big r.e.,\nbut then you've got no easy way to tell which one matched. This is the problem\nthat Plex is designed to solve.\n\nAnother advantage of Plex is that it compiles all of the regular expressions\ninto a single DFA. Once that's done, the input can be processed in a time\nproportional to the number of characters to be scanned, and independent of the\nnumber or complexity of the regular expressions. Python's existing regular\nexpression matchers do not have this property.\n\n\nContact\n=======\n\nOriginal author :\n\n| Greg Ewing ,\n| Computer Science Department,\n| University of Canterbury,\n| Christchurch,\n| New Zealand\n\nMaintainer : Stephane Klein \n\n\nChanges\n=======\n\n2.0.0 (2009-12-13)\n------------------\n\n* Create a Plex python package\n* Convert documentation to Sphinx\n* Convert tests to nose\n* Format the source code with PEP8 recommendations\n\n * 4 spaces indentation\n * convert package and modules names to lowers cases\n\n\n1.1.5\n-----\n\n* Eliminated a syntax warning about assigning to None when using with Python\n 2.3.\n\n\n1.1.4\n-----\n\n* Fixed bug causing argument of Rep or Rep1 to fail to match following a\n newline.\n\n\n1.1.3\n-----\n\n* Fixed bug causing Eol to fail to match at the beginning of a line in some\n circumstances.\n\n\n1.1.2\n-----\n\n* Changed Scanner.yield() to Scanner.produce() to accommodate Python 2.3, where\n yield is a keyword.\n* Changed test10 to not rely so much on details of string repr.\n\n1.1.1\n-----\n\n* Fixed two minor bugs: uncommented Scanner.next_char() and added import of\n types to Regexps.py.\n\n1.1\n---\n\n* Added support for case-insensitive matches.\n\n1.0\n---\n\n* First official release.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex/", "keywords": "", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "plex3", "package_url": "https://pypi.org/project/plex3/", "platform": "", "project_url": "https://pypi.org/project/plex3/", "project_urls": { "Homepage": "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex/" }, "release_url": "https://pypi.org/project/plex3/2.0.0.dev0/", "requires_dist": [ "nose", "sphinx", "six" ], "requires_python": "", "summary": "Plex is a library building lexical analysers", "version": "2.0.0.dev0" }, "last_serial": 3646417, "releases": { "2.0.0.dev0": [ { "comment_text": "", "digests": { "md5": "3d2de124d880b16d14d086c04989bc74", "sha256": "04a4e1b9904d0d649079f970e0944a1cd238a53250d50706f6484b72d7ae05ef" }, "downloads": -1, "filename": "plex3-2.0.0.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d2de124d880b16d14d086c04989bc74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56168, "upload_time": "2018-02-04T18:54:58", "url": "https://files.pythonhosted.org/packages/27/94/321fed3cb9a900f05ec7fb10b94cf6ba52a7d772e98c2f82fcfc72d81061/plex3-2.0.0.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49bcf3ad4b031227f5d7034c14bc1581", "sha256": "43224df37fe09bbaf90724f412db5b82349aea9a251388604e141d7481368775" }, "downloads": -1, "filename": "plex3-2.0.0.dev0.tar.gz", "has_sig": false, "md5_digest": "49bcf3ad4b031227f5d7034c14bc1581", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20908, "upload_time": "2018-02-04T18:55:00", "url": "https://files.pythonhosted.org/packages/e3/f1/7249a62a9c41857819a11e0f71e1a0af4c137351bb448aafc3ca254555d4/plex3-2.0.0.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d2de124d880b16d14d086c04989bc74", "sha256": "04a4e1b9904d0d649079f970e0944a1cd238a53250d50706f6484b72d7ae05ef" }, "downloads": -1, "filename": "plex3-2.0.0.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d2de124d880b16d14d086c04989bc74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56168, "upload_time": "2018-02-04T18:54:58", "url": "https://files.pythonhosted.org/packages/27/94/321fed3cb9a900f05ec7fb10b94cf6ba52a7d772e98c2f82fcfc72d81061/plex3-2.0.0.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49bcf3ad4b031227f5d7034c14bc1581", "sha256": "43224df37fe09bbaf90724f412db5b82349aea9a251388604e141d7481368775" }, "downloads": -1, "filename": "plex3-2.0.0.dev0.tar.gz", "has_sig": false, "md5_digest": "49bcf3ad4b031227f5d7034c14bc1581", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20908, "upload_time": "2018-02-04T18:55:00", "url": "https://files.pythonhosted.org/packages/e3/f1/7249a62a9c41857819a11e0f71e1a0af4c137351bb448aafc3ca254555d4/plex3-2.0.0.dev0.tar.gz" } ] }