diff options
Diffstat (limited to 'readme.rst')
| -rw-r--r-- | readme.rst | 105 |
1 files changed, 2 insertions, 103 deletions
@@ -1,104 +1,3 @@ -Psi CLI Language -======================== +❄ Nivis +======= - Python Implementation of Psi. - -Psi is a new programming language designed with simplicity, flexibility, and performance in mind. It provides a clean and intuitive syntax that is easy to read and write, making it an excellent choice for both beginners and experienced programmers. - - -Features --------- - -- `Lexer Module`_: The lexer module is responsible for converting the source code into a sequence of tokens. It recognizes the basic elements of the language such as identifiers, keywords, operators, and literals. ``['OPERATOR', 'IDENTIFIER', 'SEPARATOR', 'SEPARATOR', 'CONTROL', 'IDENTIFIER', 'OPERATOR', 'INTEGER', 'SEPARATOR', 'IDENTIFIER', 'SEPARATOR', 'IDENTIFIER', 'OPERATOR', 'IDENTIFIER', 'SEPARATOR', 'IDENTIFIER', 'SEPARATOR', 'EOF']`` - -- `Parser Module`_: The parser module takes the sequence of tokens generated by the lexer module and transforms it into an Abstract Syntax Tree (AST). The AST is a tree-like data structure that represents the source code in a way that is closer to the syntactic structure of the programming language. - -- `Built-in Types Module`_: This module defines the built-in types of the Psi language, such as lists and dictionaries. It provides functions for creating and manipulating instances of these types. - -- `Error Handling Module`_: This module provides a mechanism for catching and handling errors during runtime. It defines a set of exception classes and functions for throwing and catching these exceptions. - -- `Execution Environment Module`_: This module defines the execution environment of the Psi language, including the scope and lifecycle of variables. It provides functions for defining and looking up variables in the execution environment. - -- `Interpreter Module`_: The main task of this module is to traverse the AST and perform the corresponding operations in the execution environment. - -- `Mathematics Foundation Module`_: This module provides basic mathematical functions and constants, such as addition, subtraction, multiplication, and division. - -- `Documentation Module`_: This module uses reStructuredText and Sphinx to build the documentation, providing API interface descriptions and usage examples. - -.. _`Lexer Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/lexer.py -.. _`Parser Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/parsers.py -.. _`Built-in Types Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/type.py -.. _`Error Handling Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/exception.py -.. _`Execution Environment Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/execution.py -.. _`Interpreter Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/interpreter.py -.. _`Mathematics Foundation Module`: https://github.com/HydroRoll-Team/psi/blob/main/psi/mathematics.py -.. _`Documentation Module`: https://github.com/HydroRoll-Team/psi/blob/main/docs - - -Getting Started ---------------- - -To get started with Psi, you can clone the repository and follow the instructions in the README file. The repository includes a comprehensive set of examples that demonstrate the various features of the language. - -.. @TODO 完整的Keywords列表 - -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| *Data Structures* | *Data Types* | *keywords* | *Special Characters* | -+=====================+=====================+=========================================+=============================================+ -| List | Integer | ``reply`` ``ask`` | ``?``: if, ``!``: else, ``|``: condition | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Dictionary | Float | ``import`` ``export`` | ``==`` ``<`` ``>`` ``!=`` ``~=`` ``=`` | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Set | Boolean | ``def`` ``call`` | ``&``: parallel, ``~``: delay | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Tuple | String | ``list`` ``dict`` ``set`` ``tuple`` | ``#`` ``""""...""""`` | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Array | Null | ``try`` ``catch`` ``assert`` | ``>>``: output stream, ``<<``: input stream | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Queue | Object | ``alias`` | ``@``: hook events | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Stack | Function | ``wait`` ``async`` ``cancel`` ``yield`` | ``*``: repeat | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Graph | Class | ``match`` ``search`` ``replace`` | ``&&``: and, ``||``: or, ``!``: not | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| Tree | Interface | ``namespace`` | ``{}``: code block, refer | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ -| LinkedList | Enum | ``loop`` ``break`` ``continue`` | ``=>``: functional program | -+---------------------+---------------------+-----------------------------------------+---------------------------------------------+ - - -Contributing ------------- - -Contributions to the Psi project are welcome. If you have a feature request, bug report, or proposal for improvement, please open an issue on the project's GitHub page. If you wish to contribute code, please fork the repository and submit a pull request. - -How to build docs -^^^^^^^^^^^^^^^^^ - -:: - - git clone https://github.com/HydroRoll-Team/psi.git - cd docs - pip install -r requirements.txt - # mkdocs build - mkdocs serve - - -Documentation -------------- - -Psi documentation is available at `psi.retrofor <https://psi.retrofor.space>`_. - -You can also view it throw the following links: - - `vercel-1 psi-alpha <https://psi-alpha.vercel.app>`_ - - `vercel-2 psi-retrofor <https://psi-retrofor.vercel.app>`_ - - `gh-pages from HydroRoll-Team <https://hydroroll-team.github.io/psi>`_ - - -License -------- - -Psi is open-source software, licensed under the MIT license. This means you are free to use, modify, and distribute it under the terms of this license. |
