Skip to main content

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

Project description

taishan

toisan-lang

pytest Code style: black PyPI - License PyPI - Python Version PyPI - Wheel Downloads GitHub Pages

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!

Credits

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.4.tar.gz (40.7 kB view details)

Uploaded Source

Built Distribution

toisan_lang-0.1.4-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file toisan-lang-0.1.4.tar.gz.

File metadata

  • Download URL: toisan-lang-0.1.4.tar.gz
  • Upload date:
  • Size: 40.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for toisan-lang-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9be889e36680c87dcfde979b0bae83c93a849c0034283c86d50241ea081b4d5e
MD5 85332b5ee7f265dde372e03096464af8
BLAKE2b-256 67067bdb100606e6c077ce198399e336c22dd8a4627afdf059e671fd9b9a1c03

See more details on using hashes here.

File details

Details for the file toisan_lang-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: toisan_lang-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for toisan_lang-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3f81866f04b12841369edef040b497fd72b9d52f1fdcf785483f6de6a6d70a04
MD5 a322d1d71f3cf8935bf23ca61049052f
BLAKE2b-256 383ab4587064a06993da9b0de99ec5d502988020e013ff441c0220094d61cd88

See more details on using hashes here.

Supported by

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