littlebot
Published on 2025-04-11 / 1 Visits
0

【源码】基于 Go 语言的 Q 脚本语言

项目简介

Q 语言(Q Language)是专为 Go 语言设计的嵌入式脚本语言,以微内核架构为核心设计理念,所有功能以可插拔模块形式提供。它支持 Go 语言的绝大部分特性,能直接调用 Go 语言的函数、类及其成员变量和方法,无需额外包装。主要应用于嵌入式脚本领域(如网络游戏中的脚本引擎)以及编译原理的教学实践。

项目的主要特性和功能

  1. 与 Go 语言无缝互操作,可直接调用 Go 语言的函数、类及其成员变量和方法。
  2. 微内核架构,核心代码约 1200 行,功能可按需定制。
  3. 支持 Go 语言的 for rangeslicemapchangoroutinedefer 等特性。
  4. 可作为嵌入式脚本语言,与 Go 语言应用程序无缝集成。
  5. 提供命令行工具 qlang,能执行 .ql 脚本文件并支持导出编译后的“汇编指令”。
  6. 支持模块化设计,可通过 importinclude 语句组织代码。
  7. 支持反射,可通过 type 函数查看变量实际类型,便于调试和学习。

安装使用步骤

1. 安装 Q 语言

通过 Go 安装

bash go get -u -insecure qlang.io/qlang

通过 Git 复制源码

bash

2. 在 Go 代码中集成 Q 语言

```go import ( "fmt" "qlang.io/cl/qlang" _ "qlang.io/lib/builtin" // 导入 builtin 包 )

const scriptCode = x = 1 + 2

func main() { ql := qlang.New() err := ql.SafeExec([]byte(scriptCode), "") if err != nil { // 错误处理 return }

fmt.Println("x:", ql.Var("x")) // 输出 x: 3

} ```

3. 使用 Q 语言命令行工具

执行 Q 语言脚本

bash qlang example.ql

导出编译后的“汇编指令”

bash QLANG_DUMPCODE=1 qlang example.ql

进入 Q 语言交互式 Shell

bash qlang

4. 学习 Q 语言

  • 参考 Q 语言手册 详细了解 Q 语言的语法和特性。
  • 项目 tutorial 目录包含示例代码,可供学习参考。

5. 定制 Q 语言

```go import ( "qlang.io/lib/math" "qlang.io/lib/strconv" "qlang.io/lib/strings" )

func main() { qlang.Import("math", math.Exports) qlang.Import("strconv", strconv.Exports) qlang.Import("strings", strings.Exports)

// 其他代码

} `` 通过上述方式,可在 Q 语言中使用math.sinstrconv.itoa` 等函数。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】