# hua-lang **Repository Path**: hongweifei/hua-lang ## Basic Information - **Project Name**: hua-lang - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 话语言 (Hua Language) 一门以中文书面语为语法基础的现代编程语言,让开发者能够用母语进行编程,追求优雅、自然的表达方式。 ## 特性 - **中文优先** - 关键字、语法、错误信息全部中文化 - **自然表达** - 代码如同写文章,符合中文母语者的语言习惯 - **同义兼容** - 支持多种同义表达方式,让代码更具个性 - **简洁优雅** - 去除繁琐符号,专注于逻辑表达 - **纯符号驱动** - 冒号 `:` 开始块,句号 `。` 结束块 ## 快速开始 ### 安装 需要 Rust 1.70+ 环境。 ```bash git clone https://gitee.com/hongweifei/hua-lang.git cd hua-lang cargo build --release ``` ### 运行 ```bash # 运行脚本 cargo run -- run examples/hello.hua # 或使用编译后的可执行文件 ./target/release/hua run examples/hello.hua # 进入 REPL cargo run -- repl ``` ## 语法示例 ### Hello World ```hua 输出「你好,世界!」。 ``` ### 变量与赋值 ```hua # 多种赋值方式 设甲为1。 令乙为2。 置丙为3。 # 算术运算(支持"除"和"除以"的严格区分) 设结果为甲加乙乘丙。 输出10除以2。 # 5(10÷2) 输出10除2。 # 0.2(2÷10) ``` ### 条件判断 ```hua 若分数大于等于90: 输出「优秀」。 否则若分数大于等于80: 输出「良好」。 否则: 输出「继续加油」。 ``` ### 循环 ```hua 重复5次:输出「你好」。 遍历【1、2、3】中每一项作为数字:输出数字。 自1至10,对每个数: 若数可被2整除:输出数。 ``` ### 函数定义 ```hua 函数加(甲、乙):返回甲加乙。 输出加(1、2)。 # 输出:3 # 支持顿号(、)或逗号(,)作为分隔符 输出加(3,5)。 # 同样有效 ``` ### 类与对象 ```hua 定义学生类: 有公开属性: 名字(字符串)、 年龄(整数)。 有属性成绩(默认为0)。 构造时(姓名、岁数): 设自己的名字为姓名。 设自己的年龄为岁数。 定义是否及格方法: 得自己的成绩大于等于60。 设张三为学生(「张三」、18)。 输出张三的名字。 # 张三 张三的是否及格。 # 调用方法 ``` ## 项目结构 ``` hua-lang/ ├── crates/ │ ├── hua-lexer/ # 词法分析器 (UTF-8 中文处理、Trie 最长匹配) │ ├── hua-parser/ # 语法分析器 (Pratt Parser) │ ├── hua-compiler/ # 字节码编译器 │ ├── hua-bytecode/ # 字节码定义 │ ├── hua-vm/ # 虚拟机 (栈式虚拟机、函数调用、垃圾回收) │ └── hua-cli/ # 命令行工具 ├── examples/ # 示例代码 ├── docs/ # 文档 └── tests/ # 测试用例 ``` ## 开发路线 | 里程碑 | 状态 | 说明 | |--------|------|------| | M1: 词法分析器 | ✅ 完成 | UTF-8 中文处理、Trie 最长匹配、上下文敏感解析 | | M2: 语法分析器 | ✅ 完成 | Pratt Parser、AST 生成 | | M3: 字节码编译器 | ✅ 完成 | AST 到字节码转换 | | M4: 虚拟机 | ✅ 完成 | 栈式虚拟机、函数调用、垃圾回收 | | M5: 面向对象 | 🚧 开发中 | 类、属性可见性、方法定义 | | M6: 标准库 | 📝 计划中 | 字符串、列表、字典、数学函数 | | M7: 模块系统 | 📝 计划中 | 导入/导出、命名空间 | | M8: 异步并发 | 📝 计划中 | 协程、通道、异步/等待 | | M9: JIT 编译 | 📝 计划中 | Cranelift JIT | ## 技术栈 - **实现语言**: Rust - **运行模式**: 编译为字节码后解释执行 - **JIT 后端**: Cranelift (计划中) - **异步运行时**: Tokio (计划中) ## 测试 ```bash # 运行所有测试 cargo test # 运行特定模块测试 cargo test -p hua-lexer cargo test -p hua-parser cargo test -p hua-compiler cargo test -p hua-vm ``` ## 文档 详细文档请参考 `docs/` 目录: - [快速入门](docs/quickstart.md) - 5分钟上手话语 - [语法手册](docs/syntax.md) - 完整语法参考 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进话语! ## 许可证 MIT License --- *用中文写代码,让编程更自然。*