zlang 是我最近才想起来要写的一个小语言,现在也是可以将它看做一个dsl,它和python很像,只是对python中我不喜欢的几点做了一些改变。

  • zlang 用缩进规范代码块且是强制缩进,同python一样

  • 函数和类都是作为赋值语句存在的,即函数和类都是匿名的,只是赋值给了Identifier;同时,函数和类的缩进提示符不是:,而是->,但ifwhile等控制结构的缩进提示符同python保持一致

  • zlang 的class中的method不显式书写self,self隐含在method中

  • 在class中,以@起头的Identifier都是类的属性,例如:@name 翻译成python就是self.name,在类的外面不允许有@起头的Identifier

  • 可以翻译成python

由于很长时间没碰编译这些东西了,所以没有手写lexer和parser,用的python的PLY,尽管如此,我的水平也是够菜,断断续续的写了几天,代码也有够臭。

只是现在如果不放这个,我真不知道写些什么了。

todo:

  • 语法的严谨
  • 错误提示
  • 翻译成多门语言

img