2 个不稳定版本
0.2.0 | 2024年5月27日 |
---|---|
0.1.0 | 2024年5月17日 |
#173 in 编程语言
每月 68 次下载
260KB
7K SLoC
vbscript.rs
Rust VBScript 词法分析和解析器
https://crates.io/crates/vbscript
文档
示例代码
请查看 示例文件夹
原理
2023年10月,微软 弃用了VBScript。然而,仍然有许多遗留系统在使用它。本项目旨在为VBScript提供词法分析器、解析器和后续的解释器,以便在Rust项目中使用。
时间表可在 Windows IT Pro Blog 中查看。
使用 vbscript.rs 的项目
https://github.com/francisdb/vbsfmt
其他链接
-
wine 项目有一个类似的C语言编写的词法分析器/解析器/解释器,但它是基于COM的,作为库使用不太方便:https://gitlab.winehq.org/wine/wine/-/tree/master/dlls/vbscript
-
Vbsedit VBScript 帮助:https://www.vbsedit.com/html/1c457e66-a6b2-4545-b2dd-33a59d8661e8.asp
-
Vbsedit 示例 vbs 文件:https://www.vbsedit.com/scripts/default.asp
-
vpx-js vbscript bnf 语法 https://github.com/vpdb/vpx-js/blob/master/lib/scripting/grammar/grammar.bnf
-
wine vbscript bison 语法 https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/vbscript/parser.y
-
MS VBScript 语言参考 https://docs.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85)
运行集成测试
请确保填充 testsctipts
文件夹,您可以在文件夹中添加更多 vbs 文件。
./testsctipts/populate.sh
运行测试。它们也将包含在默认的 cargo test
运行中。
RUST_BACKTRACE=1 cargo test -- --nocapture try_lexing_all_vbs_files
RUST_BACKTRACE=1 cargo test -- --nocapture try_parsing_all_vbs_files
运行基准测试
要运行此基准测试,请使用以下命令
cargo bench
制作发布版
我们使用 https://github.com/MarcoIeni/release-plz,它在master分支的每次提交上创建一个发布pr。
归属
感谢Domenic Quirl提供的优秀的解析基础博客文章。本项目始于他的博客文章,您可以在以下链接找到:https://domenicquirl.github.io/blog/parsing-basics/ https://github.com/domenicquirl/blog/tree/master/parsing-basics
依赖项
~1.5MB