The Lox Playground
关于 Lox Playground
Lox Playground 可以让你借助 BlueLox 的 WASM 版本在浏览器中运行你的 Lox 代码。 BlueLox 是一个基于AST语法树的 Lox 解释器,使用 Golang 实现。
Lox 是 Robert Nystrom 设计的编程语言,在他精辟的书 《Crafting Interpreters(手写两个解释器)》 中作为实现对象。他在书里实现了一个Java的AST语法树解释器(jlox)和一个C的机器码解释器(clox), 附带循循善诱的解释,走心的手绘插图以及满满一袋关于早餐的比喻和笑话。
Lox Playground 可以作为你在学习和编程时的试错工具和参考实现。
BlueLox 的实现和 jlox 几乎一致,但有以下例外:
- 语法解析(lexer)以 UTF-8 码点(而不是 byte)为最小工作单位,并且它会处理字符串中的这些转义字符:
\a
,\b
,\f
,\n
,\r
,\t
,\v
,\\
和\"
。 - 报错信息不会和 jlox 逐字逐句地相同,但是它们在语意上会保持一致。
- 为了支持 Playground 的例子,我新增了两个原生函数
sleep(millisecond)
和randN(n)
。
Lox Playground 须要你的浏览器支持 WASM. 如果你遇到了问题,可以在 BlueLox 的仓库 进行反馈。欢迎建议,贡献和 star !