一种基于土桑语(又称台山话)的程序设计语言,是一种粤语方言

toisan-lang的Python项目详细描述


台山郎

GitHub Workflow StatusCode style: blackDownloads

一种基于土桑语(又称台山话)的程序设计语言,是一种粤语方言

安装

pip install toisan-lang

命令行用法

  • python -m toisan_lang "..."在Python中传输并执行到sanlang
  • --show xxx显示额外信息(如果给定):tree表示解析树,code表示透明python代码

例如

传输和执行

^{pr2}$

输出:

{'头': False}
2020-02-28 12:09:01.580252
python -m toisan_lang "你系嚿叉烧。你个头系假咯。睇下你系乜呀。睇下(丐时)系乜。" --show tree code

输出:


Parse Tree:
(START
  (begin_program (begin_scope))
  (block
    (statement (st_assign
      (var_list (var (variable_ref '你'))) '系'
      (exp_list (exp (dict_init '嚿叉烧'))))) '。'
    (statement (st_assign
      (var_list (var (variable_ref '你' '个' '头'))) '系'
      (exp_list (exp (constant (boolean '假')))))) '咯' '。'
    (statement (st_print '睇下'
      (var (variable_ref '你')) '系乜')) '呀' '。'
    (statement (st_print '睇下'
      (adjusted_exp '('
        (exp (now '丐时')) ')') '系乜')) '。')
  (end_program (end_scope)))

Transpiled Python Code:
from datetime import datetime

def main():
    你 = dict()
    你['头'] = False
    print( 你 )
    print( ( datetime.now() ) )

if __name__ == '__main__':
    main()

{'头': False}
2020-03-03 22:26:13.549966

代码使用

from toisan_lang import parse
program = """
...
"""
code, tree = parse(program)
print(code)
print(tree)
exec(code)

发展

git clone https://github.com/zehengl/toisan-lang.git
cd toisan-lang
python -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt

运行测试

pytest

黑客快乐!在

图片来源:来自https://izihun.com/yishuzi/564471.html的徽标

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用MVC设计模式观察嵌套对象   java将多个客户端连接到服务器   合并Java Web应用程序   Spring Security中未捕获java AuthenticationSuccessEvent   java Firebase JSON到Arraylist内部的Arraylist,存在对象问题   在Java15的sealedclasses特性中,final类和非密封类之间有什么区别?   java我可以使用数组。copyOf制作二维数组的防御副本?   java球不会在屏幕上移动   Java类如何在同一个文件中包含两个类?   java使用“Character.isWhiteSpace”删除所有空白   java阻止在RealmList中保存时创建领域对象   如何仅在ConnectionFactory上使用Java JMS身份验证   spring可以强制java对象在运行时实现接口吗?   socket无法在JAVA中使用TCP启用双工模式通信