# Vix-Lang **Repository Path**: Mulang_zty/Vix-lang ## Basic Information - **Project Name**: Vix-Lang - **Description**: 一门轻量级编译型脚本语言,使用c语言编写,语法简单易上手,速度堪比cpp,支持多个后端(gcc,qbe) - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 0 - **Created**: 2025-08-30 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: program-lang, Compiler ## README # Vix/velox Vix 是一个轻量级的编译型脚本语言,旨在提供简单的语法,和快速的执行速度 ## 项目结构 ``` . ├── ast/ # AST 节点定义和实现 ├── bytecode/ # 字节码 |—— ir/ # qbe后端ir生成 ├── compiler/ # 编译器实现(gcc和qbe) ├── lib/ # 运行时库 ├── parser/ # 解析器相关文件 ├── DEVELOPER.md # 开发者文档 ├── Makefile # 构建脚本 ├── README.md # 项目说明文档 └── main.c # 主程序入口 ``` ## 特性 - 多个后端 - 轻量级设计 - 快速执行速度 - 简单易学的语法 - 支持字符串连接和重复操作 - 类型推导系统 - 编译产物极小(Hello,world仅有14kb) ## 构建 确保您已安装以下工具: - GCC - Flex - Bison - Make 然后运行: ```bash make ``` 在 Windows 上,可以使用 mingw32-make: ```bash mingw32-make ``` ## 使用 构建完成后,您可以使用以下命令运行 Velox: ```bash ./vixc ``` ``` ./vixc test.vix -o test ``` ``` ./test ``` ### 命令行参数说明 - `./vixc `: 解析并显示AST和字节码 - `./vixc -c -o `: 将Vix代码编译为可执行文件 - `./vixc -b `: 将字节码输出到指定文件 - `./vixc -o -kt`: 将 .vix文件编译为 .cpp C++ 代码文件 - `./vixc -o -b `: 同时编译为可执行文件和输出字节码文件 - `./vixc -q `: 同时编译为qbe ir - `./vixc init`: 初始化项目,创建lib目录并生成运行时库文件 ## AST 节点类型 解析器会生成以下类型的 AST 节点: - `AST_PROGRAM`: 程序根节点 - `AST_PRINT`: 打印语句 - `AST_ASSIGN`: 赋值语句 - `AST_BINOP`: 二元操作(加、减、乘、除、取模、幂运算) - `AST_UNARYOP`: 一元操作(正号、负号) - `AST_NUM_INT`: 整数字面量 - `AST_NUM_FLOAT`: 浮点数字面量 - `AST_STRING`: 字符串字面量 - `AST_IDENTIFIER`: 标识符 ## 许可证 详见 [LICENSE](LICENSE) 文件