playscript是在准备《编译原理之美》课程期间开发的一门脚本语言。主要用来展示编译器的前端技术。
这门语言目前实现的特征是:
从代码库中克隆下代码以后,可以基于源代码构建一个项目。或者使用里面原来带的idea项目文件。后面我将提供Maven的项目文件。
本项目依赖Antlr的运行库。相应的jar包已经包含在了lib目录下。
在idea项目中,我设置了一个PlayScript scratch任务,可以解析执行examples目录中的scratch.play文件。你可以在这个文件里随意写一些脚本,并编译执行,或者跟踪调试。
在运行之前:
命令行工具 java play.PlayScript
usage: java play.PlayScript [-h | --help | -o outputfile | -S | -v | -ast-dump] [scriptfile]
-h or --help : print this help information
-v verbose mode : dump AST and symbols
-ast-dump : dump AST in lisp style
-o outputfile : file pathname used to save generated code, eg. assembly code
-S : compile to assembly code
scriptfile : file contains playscript code
举例:
java play.PlayScript
这将启动一个REPL界面,在里面输入脚本,并解释执行。
java play.PlayScript -v
REPL模式,并打印AST和符号表
java play.PlayScript scratch.play
编译和执行scratch.play脚本
java play.PlayScript -v scratch.play
编译和执行scratch.play脚本,并输出AST和符号表
设置你的bash命令,可以使用起来更方便,比如,我在.bash_profile文件中添加了:
alias play='java play.PlayScript'
这样,运行一个.play脚本的时候,可以很简单:
play scratch.play
添加了一些示例脚本,来演示playscript的功能,大家可以玩一玩!
该目录下的代码会随时更新。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。