satl

这是一个名为 sa::tl 的脚本语言,具有以下特点和功能:

  • 特点:是一个约 11k LOC 的小型可嵌入脚本解释器,有异常处理、基本 OOP 特征、运算符重载、简单调试器、类型安全的 C++绑定 API 等,纯手工编写词法分析器和递归下降解析器,严格单线程,支持行注释和块注释,所有变量必须初始化,有多种数据类型如 null、bool、integer 等,变量类型不可变,支持多种数字字面量和特殊字面量,有多种语句如 if 等,支持高阶函数等,字符串有单双引号和多行形式,支持字符串连接和乘法等操作,有基本 Unicode/UTF-8 支持和模板字面量,可重载运算符,有内置 JSON 支持,易于添加自定义函数和绑定 C++类,有 UI 等多个库,可扩展,有 LSP 兼容的语言服务器,有 KSyntaxHighlighting 定义和 Vim 集成。
  • 许可证:AGPL 3.0。
  • 需求:Linux、C++23、CMake、Catch2 v2(Arch 系统可通过sudo pacman -S catch2-v2安装,可选)、readline(可选)、ccache(可选),一些库还需要额外的包。
  • 构建:通过git clone获取代码,进入build目录执行cmake..make,可选sudo make install,在 Arch 系统可运行cmake.. -DCMAKE_INSTALL_PREFIX=/usr,有多个 CMake 选项可控制构建哪些库等。
  • 运行测试:构建时启用SATL_TESTS可通过make testninja test运行测试。
  • 用法:参考发布版本附带的手册。
  • 示例:函数是一等值,可作为参数传递,如doFunc函数可接受其他函数作为参数并调用,还可传递内联定义的函数。更多示例可在samples目录中查看。
  • Neovim 集成:有语法高亮和 LSP 集成。
阅读 9
0 条评论