2 个不稳定版本

0.1.0 2023年1月5日
0.0.1 2022年9月28日

#365 in 渲染

MIT 许可证

695KB
19K SLoC

glast

glast 是一个用于解析和操作 glsl abstract syntax trees 的 crate,以及更多。

⚠ 这个 crate 仍在积极开发中。

这个 crate 的目标是可以对 OpenGL 着色语言进行解析和分析。这包括将源字符串解析成 AST,生成文件格式化和语法高亮信息,以及执行诸如名称解析和类型检查等分析。

与其他类似的 crate 和库不同,glast 被设计成 100% 符合规范。这意味着它正确地处理了诸如宏展开和条件编译等复杂的特性,即使在某些极其罕见的情况下。

glast 也是为 IDE 设计的,这意味着它优雅地处理语法错误,并具有出色的错误恢复策略以产生“尽力而为”的结果。它还产生语法和语义诊断,以及用于语法高亮的信息。

当前状态

词法分析器

功能 状态
标记解析
指令解析
处理行续字符
动态切换 GLSL 版本语法
100% 符合规范的行为 ✔ [1]

[1]: 几乎不会触发的微小差异。请参阅 问题#4

解析器

功能 状态
GLSL 语言结构的解析
解析所有 GLSL 版本 ⚠ [2]
正确展开宏
处理条件编译
产生语法错误和相关的语义诊断
产生语法高亮信息
产生文件格式化信息
访问者 API
100% 符合规范的行为 ⚠ [3]

[2]: 目前仅支持 GLSL 450 和 460。

[3]: 测试不足,无法高度确信。

分析器

❌ 尚未开始工作。

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE

依赖关系