# s-onnx 编译器前端 **Repository Path**: enchated/s-onnx---compiler-frontend ## Basic Information - **Project Name**: s-onnx 编译器前端 - **Description**: 对简化的onnx语言的编译器 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-12-04 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ONNX 编译器前端 这是一个用于解析、分析和生成 ONNX 模型中间表示的编译器前端工具。该项目实现了词法分析、语法解析、语义检查以及中间代码生成等功能。 ## 项目结构 - **Lexer**: 实现词法分析,将输入文件转换为 Token 流。 - **Parser**: 根据 Token 流构建抽象语法树(AST)。 - **SemanticAnalyzer**: 对 AST 进行语义检查,确保模型结构正确。 - **CodeGenerator**: 生成三地址码(TAC)形式的中间表示。 - **ASTNode.h**: 定义了 AST 的各个节点类型,如 ModelProto、Graph、Node 等。 - **TAC.h / TAC.cpp**: 定义和实现三地址码及其操作。 ## 构建与运行 ### 依赖项 - C++17 或更高版本 - CMake(可选) ### 编译步骤 1. 克隆仓库: ```bash git clone https://gitee.com/mgjmgjmgj/s-onnx---compiler-frontend.git cd s-onnx---compiler-frontend ``` 2. 编译项目(假设使用 g++): ```bash g++ -std=c++17 app/*.cpp -o onnx-frontend ``` ### 运行程序 确保有一个 ONNX 模型输入文件(如 `input.txt`),然后运行: ```bash ./onnx-frontend ``` ## 贡献指南 请参考 `.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md` 和 `.gitee/ISSUE_TEMPLATE.zh-CN.md` 了解如何提交 Issue 和 Pull Request。 ## 许可证 本项目采用 MIT 许可证,请参阅 LICENSE 文件了解详细信息。 ---