1 个不稳定版本
0.1.0 | 2024 年 6 月 13 日 |
---|
#112 in 神奇豆子
34KB
790 行
Pygmalion:Rust 中的 Solidity 词汇分析器
Pygmalion,又一款用 Rust 编写的 Solidity 词汇分析器!该项目利用 Rust 编程语言和 logos
库的强大功能,为 Solidity 源代码提供强大而高效的词法分析器。
特性
- 词法分析:Pygmalion 可以将 Solidity 源代码标记化,识别各种关键字、字面量、运算符等。
- 模式切换:词汇分析器智能地在不同的上下文中切换模式,如
pragma
、assembly
和yul
。 - 异步操作:利用异步文件 I/O 进行文件读写。
- 命令行界面:包括命令行界面 (CLI),便于集成到您的工作中。
用法
Pygmalion 可以通过其 CLI 使用。您可以提供 Solidity 文件或简短的 Solidity 代码片段进行分析。词汇分析器将输出输入的标记化版本。
命令行界面
以下是可用的 CLI 选项
-p, --path <PATH>
:要分析的 Solidity 文件的路径。-c, --code <CODE>
:要分析的简短 Solidity 代码片段。-o, --out <OUT>
:词汇分析结果的输出文件。
示例
分析 Solidity 文件
pygmalion -p path/to/your/file.sol
分析简短的 Solidity 代码片段
pygmalion -c "pragma solidity ^0.8.0; contract HelloWorld { }"
将分析结果保存到文件
pygmalion -p path/to/your/file.sol -o output.txt
贡献
要为 Pygmalion 贡献,请按照以下步骤操作
- 分叉仓库。
- 为您的功能或错误修复创建一个新分支。
- 进行更改。
- 彻底测试。
- 提交拉取请求。
代码结构
- main.rs:应用程序的入口点。
- cli.rs:命令行界面定义和参数解析。
- file_io.rs:异步文件输入/输出函数。
- lexer.rs:词法分析器实现,包括令牌定义和模式处理。
许可证
Pygmalion遵循MIT许可证。有关详细信息,请参阅LICENSE文件。
致谢
本项目使用了以下crates
感谢您使用Pygmalion!如果您有任何问题或反馈,请随时在GitHub上提交问题。祝好!
依赖
约4.5–6.5MB
约81K SLoC