Metadata-Version: 2.1
Name: toisan_lang
Version: 0.1.1
Summary: A programming language based on Toisanese, aka Taishanese, a dialect of Cantonese
Home-page: https://github.com/zehengl/toisan-lang
Author: Zeheng Li
Author-email: imzehengl@gmail.com
Maintainer: Zeheng Li
Maintainer-email: imzehengl@gmail.com
License: UNKNOWN
Description: <div align="center">
            <img src="logo.jpg" alt="taishan" height="196">
        </div>
        
        # toisan-lang
        
        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
        ```
        
        <details>
        <summary>To Show extra information</summary>
        
            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
        ```
        
        </details>
        
        ## 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!
        
        <hr>
        
        <sup>Credit: logo from https://izihun.com/yishuzi/564471.html</sup>
        
Platform: UNKNOWN
Description-Content-Type: text/markdown
