# RexLang **Repository Path**: RonxBulld/RexLang ## Basic Information - **Project Name**: RexLang - **Description**: 可用于快速开发的中文编程语言编译器和运行时库。 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 47 - **Forks**: 14 - **Created**: 2019-04-12 - **Last Updated**: 2025-02-26 ## Categories & Tags **Categories**: scripting-language **Tags**: None ## README # RexLang 自述文件 RexLang 即 快速表达扩展语言(Rapid Expression eXtension Language)。 在您开始使用本软件之前,请完整的阅读使用说明及协议,当您开始使用本软件时即同意使用协议。 ## 引用的开源库 ### ANTLR 项目地址:https://github.com/antlr/antlr4 引用版本:4.7.2 开源许可证:BSD 3-clause license 备注:除了安装Antlr4运行程序,还需要安装其中的C++运行时库。 ### LLVM 项目地址:https://github.com/llvm/llvm-project 引用版本:9.0.1 开源许可证:Apache License Version 2.0 备注:主要使用了静态版本,Linux下可以通过包管理器直接安装LLVM-9。 ## 语法设计说明 以易语言语法为蓝本,扩充了一些关键字和语法特性。 ## 目标和愿景 - 快速原型开发和算法验证; - 非编程专业人士也能轻松开发软件; - 设计即产品(Design as a Product)。 ## 项目现状 - 由于忙于为供职的公司做开发,可能不会在本项目上稳定输出; - 完成对编译系统框架的搭建; - 完成了基础语法文件; - 完成了从编译到最终可执行程序生成的主流程; - 实现了部分字符串和数组的运行时静态库; - 实现了支持断点和单步的调试信息。 ## 路线图 ![avatar](./doc/路线图.png) 1. 实现自动GC功能 2. 基本完成核心运行时库 3. 完善编译运行时系统 4. 专用集成开发环境 5. 可视化界面设计工具 6. 声明式开发 7. 兼容其他语言的C接口 8. 先基于对象再面向对象 9. 增强网页、COM等互操作性 10. 原生支持多端开发 11. ...... ## 系统概述 ![avatar](./doc/系统概述.png) ## 构建安装 参见 INSTALL.md 文件。 ## 许可协议 ### 用于商业免费、免费自主开源和付费完全开源的使用许可 本许可证基于Apache License v2.0许可证,并在此基础上增加了扩展条例,以确保原作者和贡献者的权利。详情请阅读根目录下的License.txt文件。 本许可仅限用于完全开源、免费闭源项目,并且使用本许可证之项目同样继承本商业免费、免费自主开源和付费完全开源使用许可。 ### 用于商业付费闭源的使用许可 本项目免费进行商业付费闭源许可授权,但是并不意味着无需获得书面授权。 需要使用本项目作为商业付费闭源软件的一部分(包括静态链接、动态链接、使用部分或全部代码等),请联系项目所有方进行书面授权。 所有授权仅授予项目所有方指定的用户,用户不可进行任何形式的转授权。 ### 商业付费的界定范围 付费是指包括整体软件付费、按功能模块付费以及基于程序的自动服务,但不包括基于该软件提供的人工服务。 ### 贡献者对项目所有方的授权范围 提交改动到本项目的贡献者在提交合并请求时将自动授予项目所有方对已有和可能存在的侵权行为进行追诉和起诉的权利。 此条款设置的目的在于当需要主张开源许可权利时,避免在获取贡献者授权工作上付出大量的精力和时间。 贡献者对仓库提交的任何代码必须是无版权或者版权清晰的,在提交时即意味着向项目所有方及使用方授予永久的、免费的、无附加条件的、不可撤销的版权和专利许可。 除非贡献者明确自己的行为,否则应尽量避免提交有版权或者有版权争议的代码,项目的所有方和使用方不承担任何版权纠纷问题。 ### 禁止事项 为了确保制止恶意商业行为,禁止不低于80%的内容源自本项目的项目或产品以任何形式要求使用者付费。 例外情况请联系项目所有方进行书面授权。