河图 —— 面向 Flutter 的轻量型嵌入式脚本语言
河图是一个专为 Flutter 打造的轻量型嵌入式脚本语言。它用纯 Dart 写成,因此可以非常轻易的嵌入 Flutter APP,和你的现有代码交互。开发这个语言的主要目的是为了实现 APP 动态布局、对已经发布的程序进行轻量级热更新、以及游戏程序的脚本框架等等在 FLutter 中受限制的语言能力。
河图脚本语言希望保持简单纯粹:只需要导入一个库 + 一行代码即可动态化。
下面是一个简单的在 Dart 程序中解释一个脚本字符串的例子。
import 'package:hetu_script/hetu_script.dart'; void main() { final hetu = Hetu(); hetu.init(); hetu.eval(r''' var ht = { name: 'Hetu', greeting: () { print('Hi! I\'m', this.name) } } ht.greeting() '''); }
我们可以看到河图的语法非常简单,如果你熟悉 dart/typescript/kotlin/swift 等现代语言,只要注意下面几点,就可以直接上手。
- 句末分号可选。
- 函数名字前面要加关键字: 'fun, get, set, construct'。
- 既可以使用类似 Java 的 class 的继承,也可以使用 Javascript 的对象字面量的原型链,也可以使用函数式的写法。
- 类型注解和 typescript 一样写在关键字后面。(目前静态分析尚未开发完毕,因此类型目前只是纯粹的注解,所有变量实际上都是 dynamic 类型。)