跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 木兰编程语言 0.0.15.0:基于网络的运行环境;词法错误处理
未分類
2020 年 11 月 24 日

木兰编程语言 0.0.15.0:基于网络的运行环境;词法错误处理

木兰编程语言 0.0.15.0:基于网络的运行环境;词法错误处理

資深大佬 : xuanwu 3

原文:木兰编程语言 0.0.15.0:基于网络的运行环境;词法错误处理

[安装:pip install ulang,用法与例程请见 PyPI。源码位于开源中国。 注意:必需 python 3.7,源码文件需 UTF-8 编码]

之前是用 tkinter 实现的木兰源码编辑器,但一直想将前端部分摆脱对 Python UI 库的依赖(比如这种问题)。现在用一个 WebSocket 客户端做了个运行环境原型(与前文类似,用木兰源码编写了服务端)。在开发中,为避免将 tk 应用置于其他线程运行,转用基于 HTML 的代码编辑器。效果如下:

木兰编程语言 0.0.15.0:基于网络的运行环境;词法错误处理

左侧为代码编辑器(参考了前文实现);右侧上部输入各命令,下部显示输出。

在服务端,从木兰主程序截取了解析和运行木兰代码的 Python 代码段,将其改写为可以读取 exec 输出(为显示输出在客户端)后,再在木兰服务端调用。由于木兰语言并未内置 compile 和 exec 函数,因此这段 Python 代码并未改写为木兰代码。

在基于网络的运行环境外,原本的交互环境中,遇到词法错误会直接退出,体验不佳,在此版本修正。同时发现木兰使用的 rply 框架发布版 0.7.7 有个 bug,导致词法错误的行列号信息缺失,幸运的是发现此 bug 已在 rply 中被修复了,但似乎有些情况没被覆盖,仍需跟进。

由于 rply 发布版已许久未更新,也不知何时会更新包含上面补丁的发布版,一时没想到好办法绕过 rply 当前发布版使用补丁。在本地开发时,可以下载 rply 最新源码,用 python setup.py install 安装,使补丁在本地可用。效果如下:

> func a{ >> 1#2        
大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具