# JxLang **Repository Path**: JXX_CODE/jx-lang ## Basic Information - **Project Name**: JxLang - **Description**: 一个基于python的极简自定义编程语言 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-05 - **Last Updated**: 2025-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JxLang 0.3.126 一个轻量级的自定义编程语言,专为简单性和交互式脚本设计而打造。基于 Python 构建,`jxlang` 提供了 REPL 环境,支持基本的编程结构,包括变量、循环、函数和库导入等功能。 ## 安装 ### 方法一:通过 PyPI 安装 ```bash pip install jxlang ``` ### 方法二:通过清华源安装(推荐国内用户使用) ```bash pip install jxlang -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 方法三:一键安装(推荐未安装 Python 的用户使用) 在上方点击下载适用于您操作系统的安装脚本: - **Windows**: 下载 `install_jxlang.bat` - **macOS**: 下载 `install_jxlang_macOS.sh` - **Linux**: 下载 `install_jxlang_linux.sh` 然后运行脚本: - Windows: 双击运行 `install_jxlang.bat` - macOS: 打开终端并运行: ```bash chmod +x install_jxlang_macOS.sh ./install_jxlang_macOS.sh ``` - Linux: 打开终端并运行: ```bash chmod +x install_jxlang_linux.sh ./install_jxlang_linux.sh ``` 脚本将自动安装 Python(如果尚未安装)和 JxLang。 ## 更新 如果您已经安装过`jxlang`了,那么您可以直接使用下面的命令更新至最新版本的`jxlang`。 ```bash pip install --upgrade jxlang==0.3.126 ``` ## 更新内容
* JxLang 只能调用已安装在 Python 环境中的库。
### 6. 列表和表格操作 ```python let lst: table(1, 2, 3) say(lst[0]) # 输出:1 say(lst) # 输出:[1,2,3] let tbl: table(1, 2; 3, 4) say(tbl) # 输出:[[1, 2], [3, 4]] # 列表操作 push 1 -> lst # 在列表末尾添加 1 say(lst) # [1,2,3,1] push tbl -> lst say(lst) # [1,2,3,1,[[1,2],[3,4]]] out 1 -> lst # 移除第一个 1 并存储在 outlist 中 say(lst) # [2,3,[[1,2],[3,4]]] say(lst.outlist) # [1,1] throw 2 -> lst # 永久移除列表中的 2 say(lst) # [3,[[1,2],[3,4]]] let lst[0]: 2 # 将索引 0 处的元素替换为 2 say(lst) # [2,[[1,2],[3,4]]] ```* JxLang 使用 n 个分号创建 n+1 维列表。
### 7. 动态结构体和类型检查 ```python # 定义结构体 struct Person { name: string, age: int, address: string } # 创建结构体实例 let person: Person { name: "张三", age: 30, address: "北京" } # 创建嵌套结构体 struct Info { info: Person } let i: Info { info: Person { name: "张三", age: 30, address: "北京" } } # 访问结构体成员 say(person->name) # 输出:张三 say(person->age) # 输出:30 say(i->info->name) # 输出:张三 say(i->info->age) # 输出:30 # 动态修改结构体的值 let person->name: '李四' let person->age: 40 say(person->name) # 输出:李四 say(person->age) # 输出:40 ``` ### 8. 查看元素类型 ```python let a: 100 let b: 'Alice' let c: table(1,2,3) func (i -> add): out i # 显示类型 shape(a) # 输出:int shape(b) # 输出:string shape(c) # 输出:list shape(add) # 输出:function # 其余类型的元素同理使用shape方法即可查看 ``` ## 使用 REPL 通过以下命令启动交互式环境: ```bash jxlang ``` 多行输入示例: ``` jxlang> func(x && y -> add): ... out x + y jxlang> say(add(5, 3)) 8 jxlang> endend(0) # 可以使用 0 到 9 的数字作为 endend() 的参数 Exiting with code 0 ``` ## 贡献 欢迎贡献代码!请 fork 本仓库并提交 pull request。 对于重大更改,请先开 issue 讨论您的想法。 ## 许可证 本项目采用 Apache 许可证。 --- 祝您编码愉快!🚀