Skip to content

MengXinDL/XZInterpreter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

命令行式的解释器 —— 贤者解释器

萌新大佬开发

最初目的是弄得沙盒,然而沙盒总会被破解,所以搞了这个东西

之后将用于制作地图

其中index.js是个计算C(n,m)例子,XZ.js是主体

这种“语言”借助javascript编写运行,而不是单独的文件

指令

  • start: 开始程序/一个代码块
  • over: 结束程序/一个代码块
  • add: 加法,传入三个参数,将前两个相加后传入第三个参数所指向的存储位
  • mul: 乘法,用法与加法类似
  • sub: 减法,用法与加法类似;运算顺序为前减后
  • div: 除法,用法与加法类似;运算顺序为前除以后
  • create: 创建存储位,一个参数,即存储位名称,仅限英文字母
  • write: 写入,两个参数,将参数一写入参数二所指向的存储位
  • if: 判断,如果后方参数非零则运行下一个“start-over”段
  • ifnot: 判断,作用与if正相反
  • compair: 比较,传入三个参数,判断参数一是否大于参数二,将判断结果以(true:1;false:0)的方式传入参数3
  • loop: 循环,与if类似,但是结果为真时反复执行“start-over”段中的内容,直到其参数为0
  • log: 在控制台输出所有参数内容,当需要输出“&”或者“\”时请使用“&”以及“\”

特殊内容

默认寄存器:default register dfg 在除了start,over和write指令后不填写最后一个参数,则默认传入dfg 需要调用时使用“&”

语法

除创建变量外调用变量需要在变量名前加“&” 下列是正确的语法

create a
log &a
write 1 &a
log &
write &a

下列是错误语法

create &a
log a
write a &
log
write &a 1

致谢

感谢 Nomen/Nomina 提供思路 感谢 Neural_Network 提供的正则表达式

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published