#lua #编程语言 #转换器 #编译器 #语言

app clue

C/Rust 类编程语言,编译成 Lua 代码

19 个稳定版本

3.4.7 2024 年 3 月 29 日
3.4.6 2023 年 11 月 24 日
3.4.4 2023 年 10 月 23 日
3.4.1 2023 年 6 月 27 日
2.5.3 2022 年 11 月 24 日

#49编程语言

MIT 许可证

200KB
6K SLoC

Clue 编程语言

image
Crates.io Crates.io GitHub AUR

Clue 是一种将代码快速编译成 Lua 代码的编程语言,其语法与 C 或 Rust 等语言类似。

Clue 尝试尽可能简单(仅稍微复杂的语法),但添加了许多可选功能,可以使代码看起来更好,或者使某些事情(如元表)更容易编写。

Clue 不编译为特定版本的 Lua:可以通过切换标志来更改输出,允许大多数甚至所有版本的 Lua 都可以用 Clue 编译。

一般语法差异

  • 代码块现在在 {} 中,而不是在 then/do/repeatend/until
  • 注释使用 // .../* ... */ 创建

如果您想查看 Clue 中每个更改和新增的完整文档,请查看 维基百科

示例代码

@ifos linux {
	@define GREETING "Hello, Linux user "
} @else_ifos macos {
	@define GREETING "Hello, MacOS user "
} @else {
	@define GREETING "Hello, Windows user "
}
  
@macro GREET(target) { $GREETING .. $target .. "!" }
  
print($GREET!("Maiori"))

local fn add(x = 0, y = 0) {
    return x + y
}

global n = 1

while n < 10 {
    n += add($, $)
    match n {
        3 => {
            continue
        }
        4 if x => {
            break
        }
        default => {
            print(n < 3 ? n : -n)
        }
    }
}

更多示例可以在以下位置找到:

如何安装

使用 Cargo

  1. 在控制台中粘贴并运行此命令: cargo install clue
  2. 在控制台中键入 clue 来运行编译器,它将解释其余部分

Clue支持在安装时启用的额外功能

  • 解释器:添加了--execute标志,允许Clue使用mlua运行生成的输出
  • rpmalloc:使用rpmalloc来提高性能,不是所有平台都可用

默认情况下,Clue启用这两个功能。

使用Linux软件包

这些可以在最新版本中下载。

  • .deb
sudo dpkg -i clue_<version>_<arch>.deb
  • .rpm
sudo rpm -i clue-<version>.<arch>.rpm

使用AUR

  • 通过paru
paru -S clue
  • 通过yay
yay -S clue
  • 通过makepkg
git clone https://aur.archlinux.org/clue.git
cd clue
makepkg -si

手动安装

  1. 下载最新版本并将其保存到某个位置
  2. 打开您的系统环境变量
  3. 将包含clue.exe的目录路径添加到PATH变量中
  4. 在您的cmd/PowerShell中输入clue来运行编译器,它会解释剩下的部分

更多即将到来!

我还在考虑添加一些功能,还有一些将在不久后添加。最有可能在未来添加的功能包括

  • 类型系统(将在4.0版中推出)
  • 更好的错误消息(将在4.0版中推出)
  • 适当的语言服务器支持(将在4.0版中推出)

对于任何建议或错误,您可以在GitHub上创建一个issue。如果您需要关于语言本身的帮助,您可以查看Discord服务器

希望Clue对您有所帮助 :)

为什么Clue叫Clue?

我不知道clue

依赖关系

~4.5–6.5MB
~117K SLoC