Lenguaje de programación Mulan 0.0.15.0: entorno operativo basado en red; manejo de errores léxicos

[Instalación: pip install ulangconsulte PyPI para conocer el uso y las rutinas . El código fuente se encuentra en Open Source China . Nota: se requiere Python 3.7 y el archivo de origen necesita codificación UTF-8 ]

Anteriormente, era el editor de código fuente de Mulan implementado con tkinter, pero siempre quise deshacerme de la dependencia de la biblioteca de la interfaz de usuario de Python para la interfaz ( como este tipo de problema ). Ahora use un cliente WebSocket para hacer un prototipo del entorno de ejecución (similar al artículo anterior, el servidor está escrito con el código fuente de Mulan). En el desarrollo, para evitar poner la aplicación tk en otro hilo para ejecutar , cambie al editor de código basado en HTML. El efecto es el siguiente:

El lado izquierdo es el editor de código ( consulte la implementación anterior ); el lado superior derecho ingresa varios comandos y el lado inferior muestra la salida.

En el lado del servidor, el segmento de código de Python para analizar y ejecutar el código de Mulan fue interceptado desde el programa principal de Mulan, y reescrito para leer la salida del ejecutivo (para mostrar la salida en el cliente), y luego se llamó al servidor de Mulan. Dado que el lenguaje Mulan no tiene funciones integradas de compilación y ejecución, este código Python no se ha reescrito en código Mulan.

Fuera del entorno operativo basado en red, en el entorno interactivo original, si encuentra errores léxicos, saldrá directamente y la experiencia no es buena. Esta versión está corregida. Al mismo tiempo, se descubrió que había un error en la versión 0.7.7 del framework rply utilizada por Mulan. Faltaba la información del número de fila y columna que causó el error léxico. Afortunadamente, se encontró que este error se ha corregido en rply , pero parece que algunos casos no se han cubierto. En.

Dado que la versión de lanzamiento de rply no se ha actualizado durante mucho tiempo, y no sé cuándo se actualizará la versión de lanzamiento que contiene los parches anteriores, no pensé en una buena manera de omitir la versión de lanzamiento actual de rply y usar el parche. Cuando el desarrollo local, rply puede descargar el último código fuente, python setup.py installinstale el parche disponible localmente. El efecto es el siguiente:

> func a{
>> 1#2
   词法错误:文件 "【标准输入】", 第2行, 第1列, 分词时没认出这个词 "#"
1✋#2
【下面暂时还有 rply 相关层信息,之后将除去】 

Adjunto: Estadísticas de cantidad de código

La parte principal de las estadísticas de la línea de código, el formato es: última vez -> ahora.

  • Tamaño de código Mulan 3114 -> 3204
    • El entorno operativo, la mayor parte de la implementación y las pruebas es el código Mulan: 431 -> 524 (servidor WebSocket agregado)
    • Casos de prueba de Mulan, incluidos algunos programas pequeños útiles (como Tic Tac Toe): 2683 -> 2680

 

  • Volumen de código Python (marco de implementación y prueba de Mulan): 2612 -> 2675
    • 分析器/语法分析器.py: 1019 -> 1013
    • 分析器/词法分析器.py: 207
    • 测试/运行所有.py, Verifique todos los fragmentos de código de prueba de Mulan: 194 -> 195
    • 环境.py, Defina el método global: 172
    • 交互.py, Entorno interactivo (REPL): 138 -> 148
    • 分析器/语法成分.py, La constante de enumeración extraída del analizador: 81 -> 82
    • 功用/反馈信息.py: 71
    • 测试/unittest/语法树.pyPara asegurarse de que el árbol de sintaxis generado sea coherente con la versión original: 66
    • 编辑器/运行木兰.py: 45
    • 分析器/错误.py: 17 -> 26
    • Sin alterar
      • 分析器/语法树.py: 202
      • 中.py, El programa principal: 74
      • 功用/调试辅助.py, : 57
      • setup.py, 34
      • 测试/unittest/交互.py, Pruebas relacionadas con el entorno interactivo: 28

Supongo que te gusta

Origin www.oschina.net/news/121034/mulan-0-0-15-0-released
Recomendado
Clasificación