#lexer #solidity #another

app pygmalion

Pygmalion,又一款用 Rust 编写的 Solidity 词汇分析器!

1 个不稳定版本

0.1.0 2024 年 6 月 13 日

#112 in 神奇豆子

MIT 许可证

34KB
790

Pygmalion:Rust 中的 Solidity 词汇分析器

Pygmalion,又一款用 Rust 编写的 Solidity 词汇分析器!该项目利用 Rust 编程语言和 logos 库的强大功能,为 Solidity 源代码提供强大而高效的词法分析器。

特性

  • 词法分析:Pygmalion 可以将 Solidity 源代码标记化,识别各种关键字、字面量、运算符等。
  • 模式切换:词汇分析器智能地在不同的上下文中切换模式,如 pragmaassemblyyul
  • 异步操作:利用异步文件 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 贡献,请按照以下步骤操作

  1. 分叉仓库。
  2. 为您的功能或错误修复创建一个新分支。
  3. 进行更改。
  4. 彻底测试。
  5. 提交拉取请求。

代码结构

  • main.rs:应用程序的入口点。
  • cli.rs:命令行界面定义和参数解析。
  • file_io.rs:异步文件输入/输出函数。
  • lexer.rs:词法分析器实现,包括令牌定义和模式处理。

许可证

Pygmalion遵循MIT许可证。有关详细信息,请参阅LICENSE文件。

致谢

本项目使用了以下crates

  • logos用于词法分析。
  • tokio用于异步I/O操作。
  • clap用于命令行参数解析。

感谢您使用Pygmalion!如果您有任何问题或反馈,请随时在GitHub上提交问题。祝好!

依赖

约4.5–6.5MB
约81K SLoC