Skip to main content

A small programming language written for learning purposes.

Project description

GPLv3 license zai PyPI version fury.io PyPI status

Zai

Zai is a small programming language which I wrote for fun. The language:

  • Is Dynamically typed
  • Is Entirely written in Python
  • Supports classes
  • Supports first-class functions
  • Supports writing and importing modules

NOTE: This is a project made for both learning and fun. It is not meant to be used in serious projects.

Installation

Git

git clone https://github.com/sehnsucht13/zai-pl.git
cd zai-pl
# Start a REPL
python3 -m zai
# Run a file called FILENAME.zai
python3 -m zai FILENAME.zai

Pip

# Install from pip
pip install --user zai-pl

# Start a REPL
zai-pl

# Run a file called FILENAME.zai
zai-pl FILENAME.zai

Language Tour

A small tour of the language showing some of the features available along with language syntax can be found within the docs/language-tour.md file.

Missing Features and Future Improvements

Here is a list of the features which are currently missing but will be implemented in the future

Language Features

  • Basic class inheritance
  • for loops
  • Multiline comments
  • Prefix/Postfix increment and decrement operators
  • Printing more than one variable at a time.
  • Floating Point Numbers
  • Add support for source code comments

Dev Features

  • Improve test coverage
  • Automatic Deploy of new versions with CircleCI

Internals and Documentation

  • The language grammar can be found within the docs/grammar file.
  • Some more in-depth details about the implementation(how objects are represented internally, environment...) can be found within docs/architecture.md file.

Resources

Below are some of the resources which I found helpful while making this.

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

zai-pl-0.8.2.tar.gz (25.4 kB view hashes)

Uploaded Source

Built Distribution

zai_pl-0.8.2-py3-none-any.whl (45.0 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