Skip to main content

A programming language based on Toisanese, aka Taishanese, a dialect of Cantonese

Project description

taishan

toisan-lang

GitHub Workflow Status Code style: black Downloads

A programming language based on Toisanese, aka Taishanese, a dialect of Cantonese

Install

pip install toisan-lang

Command Line Usage

  • python -m toisan_lang "..." to transpile and execute toisan-lang in Python
  • --show xxx to show extra information if given: tree for parse tree, code for transpiled python code

For example,

Transpile and execute

python -m toisan_lang "你系嚿叉烧。你个头系假咯。睇下你系乜呀。睇下(丐时)系乜。"

Output:

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

Output:


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

Code Usage

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

Develop

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

To run test, simply

pytest

Happy hacking!


Credit: logo from https://izihun.com/yishuzi/564471.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

toisan_lang-0.1.2.tar.gz (38.5 kB view hashes)

Uploaded Source

Built Distribution

toisan_lang-0.1.2-py3-none-any.whl (8.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page