莎士比亚编程语言的解释器。

shakespearelang的Python项目详细描述


Code Climate

莎士比亚编程语言的解释器,在 蟒蛇。

莎士比亚的编程语言是什么?

莎士比亚编程语言(spl)是一种编程语言 源代码看起来像莎士比亚的戏剧。语言是 图灵完备,理论上和任何其他的图灵一样强大 语言。写起来很有趣,但对任何大的都不实用 项目。可以找到更多信息on Wikipedia

注:莎士比亚的实际剧本是无效的SPL。SPL的目标不是 提供与大约400年前编写的遗留代码的向后兼容性。

这个项目是什么?

这是我为SPL写的翻译。它是用python编写的。目标 是为了帮助程序员更好地理解他们的spl代码 执行,具有控制台和调试等功能。所有以前的 SPL的实现是源到源编译器,这使得 令人困惑的语言更难理解。

这个项目在哪个州?

我还没有写任何测试,但它可能会运行任何有效的 SPL程序。控制台和调试器都在工作。

安装

pip install shakespearelang
# Or however else you install things. You do you.

用法

cli

命令

shakespeare run my-program.spl
shakespeare debug my-program.spl
shakespeare console # or just "shakespeare" unadorned

控制台

在控制台中,您实际上将逐行编写一个spl程序/播放, 先定义你的角色。

控制台的输入可以是以下任一项:

    在戏剧/节目中通常出现的入口、出口和口语线。
  • 最后一个说话的人说的句子。例如, 如果前一行是Juliet: You are a fat pig.,那么 Remember thyself! You are a fat fat pig.可以附加到 上一行。
  • 表达式(不带赋值的独立值),由 最后说的字符或显式字符:Juliet: The difference between thyself and a fat pig。 这些不能以句点结束。
  • 一个字符的名称,显示该字符的堆栈和当前值。
  • stage,显示哪些字符处于打开和关闭阶段。
  • exitquit,这将离开控制台。

调试

许多程序的调试和运行是相同的。为了利用 调试特性,您需要在spl代码中的某个地方放置一个断点 使用以下阶段方向:

[A pause]

当调试器到达这个阶段方向时,它将暂停播放/程序的执行 然后输入一个repl。这就像独立控制台,除了 您可以使用next命令前进,然后使用continue 命令退出RePL并继续运行程序/播放。

编程

解释器的run_play方法可用于运行整个播放, 还有其他方法来计算表达式和问题,运行 事件和句子,以及添加字符。这些都可以用绳子 或者ast(前者更容易从用户那里获得,后者更容易 在代码中生成)。它们的命名方式可能是你希望它们被命名的方式。 有关与 python的解释器。

注意:建议使用interpreter.parser.parse()进行任何必要的分析。 因为解释器需要特定的 设置分析器以正确工作。否则,有关parse()的信息 可以找到at the Grako docs

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于测试失败,java testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串