{ "info": { "author": "Zeb Burke-Conte", "author_email": "zmbc@uw.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Interpreters" ], "description": "shakespearelang\n===============\n\n.. image:: https://codeclimate.com/github/zmbc/shakespearelang/badges/gpa.svg\n :target: https://codeclimate.com/github/zmbc/shakespearelang\n :alt: Code Climate\n\n\nAn interpreter for the Shakespeare Programming Language, implemented in\nPython.\n\nWhat is the Shakespeare Programming Language?\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe Shakespeare Programming Language (SPL) is a programming language\nwith source code that looks like Shakespeare's plays. The language is\nTuring complete, so theoretically just as powerful as any other\nlanguage. It's a lot of fun to write but not practical for any large\nprojects. More info can be found `on Wikipedia`_.\n\nNote: Shakespeare's actual plays are not valid SPL. SPL does not aim to\nprovide backwards compatibility with legacy code written ~400 years ago.\n\nWhat is this project?\n^^^^^^^^^^^^^^^^^^^^^\n\nThis is an interpreter I wrote for SPL. It's written in Python. The aim\nis to help programmers better understand how their SPL code is\nexecuting, with features like a console and debugging. All previous\nimplementations of SPL were source-to-source-compilers, which makes an already\nconfusing language even harder to follow.\n\nWhat state is this project in?\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nI haven't written any tests yet, but it will *probably* run any valid\nSPL program. The console and debugger are both working.\n\nInstallation\n^^^^^^^^^^^^\n\n.. code-block::\n\n pip install shakespearelang\n # Or however else you install things. You do you.\n\nUsage\n^^^^^\n\nCLI\n---\n\nCommands\n~~~~~~~~\n\n.. code-block::\n\n shakespeare run my-program.spl\n shakespeare debug my-program.spl\n shakespeare console # or just \"shakespeare\" unadorned\n\nConsole\n~~~~~~~\n\nIn the console, you'll essentially write an SPL program/play line-by-line,\ndefining your characters first.\n\nInput to the console can be any of these:\n\n- Entrances, exits, and spoken lines as they would normally appear in a play/program.\n- Sentence(s) spoken by the last character who was speaking. For example,\n if the previous line was :code:`Juliet: You are a fat pig.`, the sentences\n :code:`Remember thyself! You are a fat fat pig.` could be tacked onto the\n previous line.\n- Expressions (standalone values without assignment), spoken implicitly by the\n last speaking character or with an explicit character: :code:`Juliet: The difference between thyself and a fat pig`.\n These cannot end with periods.\n- A character's name, which displays that character's stack and current value.\n- :code:`stage`, which displays which characters are on and off stage.\n- :code:`exit` or :code:`quit`, which will leave the console.\n\nDebugging\n~~~~~~~~~\n\nDebugging and running are identical for many programs. In order to utilize the\ndebugging feature, you'll need to place a breakpoint somewhere in your SPL code\nusing the following stage direction:\n\n.. code-block::\n\n [A pause]\n\nWhen the debugger hits this stage direction, it will *pause* execution of the play/program\nand enter a REPL. This is just like the standalone console, except\nyou can use the :code:`next` command to step forward, and the :code:`continue`\ncommand to exit the REPL and continue running the program/play.\n\nProgrammatically\n----------------\n\nThe interpreter's :code:`run_play` method can be used to run an entire play,\nand there are other methods for evaluating expressions and questions, running\nevents and sentences, and adding characters. These all can take either a string\nor an AST (the former being easier to get from a user, the latter being easier\nto generate in code). These are named how you might expect them to be named.\nSee :code:`repl.py` for a more complex example of deeply interfacing with the\ninterpreter from Python.\n\n**Note:** It is recommended to do any necessary parsing using :code:`interpreter.parser.parse()`\ninstead of using the parser directly, as the interpreter requires a specific\nsetting on the parser to work correctly. Otherwise, information on :code:`parse()`\ncan be found `at the Grako docs`_.\n\n.. _on Wikipedia: https://en.wikipedia.org/wiki/Shakespeare_Programming_Language\n\n.. _at the Grako docs: https://bitbucket.org/apalala/grako#markdown-header-using-the-generated-parser", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/zmbc/shakespearelang", "keywords": "shakespeare interpreter", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "shakespearelang", "package_url": "https://pypi.org/project/shakespearelang/", "platform": "", "project_url": "https://pypi.org/project/shakespearelang/", "project_urls": { "Homepage": "http://github.com/zmbc/shakespearelang" }, "release_url": "https://pypi.org/project/shakespearelang/0.3.1/", "requires_dist": null, "requires_python": "", "summary": "An interpreter for the Shakespeare Programming Language.", "version": "0.3.1" }, "last_serial": 4784646, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0607ba4c712b7578d96568a98c029c1c", "sha256": "1c94ae5fe7bac24eee9ab63dca636a987c586c7a2fe20b90e0482fadda834f7f" }, "downloads": -1, "filename": "shakespearelang-0.0.1-py3.5.egg", "has_sig": false, "md5_digest": "0607ba4c712b7578d96568a98c029c1c", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 26261, "upload_time": "2016-07-10T18:50:38", "url": "https://files.pythonhosted.org/packages/41/df/68d43444392a5f06b60f1728272d390a208881ba24b808ff732a7236e1cd/shakespearelang-0.0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "5c4823ca73027da4283992084676d65e", "sha256": "6ff74b9ac5d84db214d01a17896cf707dfe80fe4be12f899df636ff950b4207d" }, "downloads": -1, "filename": "shakespearelang-0.0.1.zip", "has_sig": false, "md5_digest": "5c4823ca73027da4283992084676d65e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13706, "upload_time": "2016-07-10T18:49:33", "url": "https://files.pythonhosted.org/packages/de/2d/6d4a4e3efe6ae88ebc4f9cf1f43a57c89470976a29d7b0c01dfd0ef4f1e6/shakespearelang-0.0.1.zip" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "43cceb23744f56869e335787b66a8f7a", "sha256": "6b0f6e6ffa3519dbaaf83cf4b5cd9c51de6cd0757ba880f2bce3f4a9a8aa30cc" }, "downloads": -1, "filename": "shakespearelang-0.1.0-py3.5.egg", "has_sig": false, "md5_digest": "43cceb23744f56869e335787b66a8f7a", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 31361, "upload_time": "2016-12-17T07:55:49", "url": "https://files.pythonhosted.org/packages/3a/28/15a0947b04c15d85c4a1e3e720e48c5be8fc4394787cac016bd88c93d1a0/shakespearelang-0.1.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "3cab56ed53791b3e10045122efc5d6a3", "sha256": "a6211a498bb00c79edefc7095fb568b09c8f5af13b0110762cb0e370e06b3c85" }, "downloads": -1, "filename": "shakespearelang-0.1.0.zip", "has_sig": false, "md5_digest": "3cab56ed53791b3e10045122efc5d6a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15926, "upload_time": "2016-12-17T07:54:11", "url": "https://files.pythonhosted.org/packages/6d/51/a7e42f3b8c89ac3d9980c30f34caf313ccbfd3a8d58068ee2d05e4f3d7fc/shakespearelang-0.1.0.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ca1b29f1bbc38c4d58c7311bf90d6d19", "sha256": "46620fd220716b861617b07a5a47a256200d469e88f480e8f04443d6890f0b95" }, "downloads": -1, "filename": "shakespearelang-0.2.0-py3.5.egg", "has_sig": false, "md5_digest": "ca1b29f1bbc38c4d58c7311bf90d6d19", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 33567, "upload_time": "2017-01-02T03:59:02", "url": "https://files.pythonhosted.org/packages/db/27/05b0c7ac670ffd833711780013e476893f09d86ee6afb0adba1ba0b69710/shakespearelang-0.2.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "4f43ccae614543ea1b8b830dc823235c", "sha256": "1bd1e8228ae1ccc24bd692565876ec1f0d81262d99d727d83289e29c7560cc14" }, "downloads": -1, "filename": "shakespearelang-0.2.0.zip", "has_sig": false, "md5_digest": "4f43ccae614543ea1b8b830dc823235c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18527, "upload_time": "2017-01-02T03:59:06", "url": "https://files.pythonhosted.org/packages/5a/56/f82d015c95996e8177a1db20085d9917d11c54462b712042d92849f322fd/shakespearelang-0.2.0.zip" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "da39946e0791a15225cbe8726f69aa90", "sha256": "e31403c68e6fb9ee61a4126d586de7d1cce4cbe1f4e09bc981567e465224fde4" }, "downloads": -1, "filename": "shakespearelang-0.3.0-py3.5.egg", "has_sig": false, "md5_digest": "da39946e0791a15225cbe8726f69aa90", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 37371, "upload_time": "2017-10-30T05:24:00", "url": "https://files.pythonhosted.org/packages/c8/87/6b459bfdff10d53399d676d000fdc5940aec1a8387716b77ed5b9c2bd289/shakespearelang-0.3.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "bb3e6ea4428fe06e743c4bb5ece289b9", "sha256": "b82b06b3633ecc0072d4af137b161c3efab10e4cc0f51f673b5fd9d1dbe68751" }, "downloads": -1, "filename": "shakespearelang-0.3.0.tar.gz", "has_sig": false, "md5_digest": "bb3e6ea4428fe06e743c4bb5ece289b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16615, "upload_time": "2017-10-30T05:24:07", "url": "https://files.pythonhosted.org/packages/09/87/54c54ca8dd5aff546877a248610eb00fd31a422a81dd2c4b5cfaf5c8c876/shakespearelang-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "0a04702759c2de57d9ff3098bbecbab4", "sha256": "f3c5951cc7bb0ef421baba991db0f55ea02f7e238cf9347574917bf76f11b6ef" }, "downloads": -1, "filename": "shakespearelang-0.3.1-py3.5.egg", "has_sig": false, "md5_digest": "0a04702759c2de57d9ff3098bbecbab4", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 37498, "upload_time": "2019-02-06T02:00:59", "url": "https://files.pythonhosted.org/packages/03/10/8559660f8d897effc44b274114dd41cb555148c7b9f83b933a6a213d7118/shakespearelang-0.3.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "a4296243bf94c04f61b766095e183652", "sha256": "66ed2bb12695417604f2eb2dfd8202865cda0516414145178c1ab7906701e34e" }, "downloads": -1, "filename": "shakespearelang-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a4296243bf94c04f61b766095e183652", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16632, "upload_time": "2019-02-06T02:01:01", "url": "https://files.pythonhosted.org/packages/de/84/2da33a72f7ba2e777585c51d937c5ef2d4e1b0f47c7bfc84d71f1be78dcf/shakespearelang-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0a04702759c2de57d9ff3098bbecbab4", "sha256": "f3c5951cc7bb0ef421baba991db0f55ea02f7e238cf9347574917bf76f11b6ef" }, "downloads": -1, "filename": "shakespearelang-0.3.1-py3.5.egg", "has_sig": false, "md5_digest": "0a04702759c2de57d9ff3098bbecbab4", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 37498, "upload_time": "2019-02-06T02:00:59", "url": "https://files.pythonhosted.org/packages/03/10/8559660f8d897effc44b274114dd41cb555148c7b9f83b933a6a213d7118/shakespearelang-0.3.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "a4296243bf94c04f61b766095e183652", "sha256": "66ed2bb12695417604f2eb2dfd8202865cda0516414145178c1ab7906701e34e" }, "downloads": -1, "filename": "shakespearelang-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a4296243bf94c04f61b766095e183652", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16632, "upload_time": "2019-02-06T02:01:01", "url": "https://files.pythonhosted.org/packages/de/84/2da33a72f7ba2e777585c51d937c5ef2d4e1b0f47c7bfc84d71f1be78dcf/shakespearelang-0.3.1.tar.gz" } ] }