8个稳定版本
2.0.1 | 2024年7月2日 |
---|---|
2.0.0 | 2024年6月19日 |
1.0.5 | 2023年5月12日 |
1.0.4 | 2023年4月16日 |
1.0.1 | 2022年11月21日 |
#1051 in 编程语言
每月 22 次下载
1MB
19K SLoC
lady-deirdre
lady-deirdre是一个用于增量编程语言编译器、解释器和源代码分析器的框架。
该框架帮助您开发一个混合程序,该程序既可以作为语言编译器或解释器,也可以作为代码编辑器语言扩展的语言服务器。它提供了创建语言文件内存表示所需的所有组件,包括源代码、它们的词法和语法以及整个代码库的语义模型。这些组件专门设计用于在代码库实时连续演变时,将内存表示与文件更改保持同步。
如果您想开始一个新的编程语言项目,lady-deirdre是完美的工具。
关键特性
-
宏生成的解析器生成器.
使用枚举类型上的 derive 宏指定语言的词法和语法,其中枚举变体表示具有解析规则的个别令牌和节点。
-
手写解析器.
API 允许开发具有无限回溯能力的手写递归下降解析器,并且可以与宏生成的解析器无缝集成。
-
错误恢复能力.
生成的解析器将具有错误恢复能力,并能够从不完全的源代码中构建语法树。
-
语义分析框架.
lady-deirdre包含一个内置的语义分析器,它以引用属性的形式管理对语法树的任意按需计算。
-
增量编译.
这些组件会根据最终用户对文件文本的增量编辑,连续地修补代码库结构的内存表示。即使在大型代码库中,处理更改通常也很快。
-
并行计算.
API 根据您的选择专门设计用于多线程和单线程程序。
-
Web-Assembly 兼容性.
这个crate与wasm-targets和浏览器环境兼容。
-
源代码格式化工具.
lady-deirdre包含用于开发考虑代码注释和空白行的代码格式化程序的工具。
-
带注释的代码段.
该框架提供了一个可配置的API,用于将带有语法高亮和注释的源代码段打印到终端,旨在显示代码库中的语法和语义错误。
-
自给自足的API.
该库提供了一套自给自足、可扩展且高度可配置的API,用于开发编程语言编译器和代码编辑器语言扩展的前端部分。作为基础技术,Lady Deirdre除了Rust标准库和宏库外,没有依赖任何第三方库。
性能
Lady Deirdre旨在提供具有可接受计算性能的开发基础设施,适合生产使用。
该库的API展示了良好的基准测试结果,将框架的各个功能与Rust生态系统中的专业解决方案进行了比较。
有关详细信息,请参阅基准页面。
链接
版权
本作品是专有软件,源代码可获取。
要复制、使用、分发和贡献此作品,您必须同意通用许可协议的条款和条件。
版权(c)2024 Илья Лахин(伊利亚·亚历山大罗维奇·拉欣)。版权所有。
我可以在我的开源项目中使用您的作品吗?
是的,您可以在您的开源项目中使用Lady Deirdre。我很乐意协助并提供反馈,以改进Lady Deirdre。
该协议自动授予您基于Lady Deirdre开发非商业软件的许可。
我可以为您的项目做出贡献吗?
如果您发现错误或对新的功能有建议,您可以在我的GitHub仓库中提交一个pull request。
请注意,我的作品是专有软件,旨在独立开发。因此,该协议要求您自动将您对我项目源代码所做的更改分配给我。
但是,如果您想为我提供的库创建扩展,您可以通过Cargo开发一个独立的库,该库使用我的库的公共API。在这种情况下,您不需要将您的工作分配给我,并且您可以在任何许可下分发您的项目,例如MIT许可。
我故意保持我的库的API可扩展,以便第三方作者可以创建专用的Lady Deirdre扩展。
我可以开发商业软件产品吗?
是的,您可以根据Lady Deirdre开发商业软件。
该协议授予您商业限制许可,允许您在开源和闭源产品中使用我的作品。
此许可限制您使用基于Lady Deirdre的软件产品所获得的总收入。一旦您的产品超过此限制,您可以在我的Patreon页面上购买无限制商业许可,这将取消这些限制。
无限制商业许可证到期后会发生什么?
您应续订许可证,以继续使用Lady Deirdre的新版本和升级。
如果您不续订许可证,您可以在软件产品中永久使用您在许可证到期时拥有的版本。
依赖项
~1–1.6MB
~31K SLoC