zypo-rs 0.0.1

The official reference compiler for the Zypo programming language.
Documentation

Zypo Compiler

Overview

zypo-rs is the official reference compiler for the Zypo programming language.

Objectives

  • Python inter-compatibility
  • Compiler portability (lightweight)
  • Fast compile speeds + optimizations
  • Markdown-friendly language (compiler logs and docstrings are markdown)

Language syntax

Basic blocks and class example:

get requests;

--- This is a docstring, it is 3x `-` and they should be parsed in
--- ***MARKDOWN*** (similar to what Rust does).
fun send_url(url: str) -> str {
    if (url == null) {
        return "No URL provided";
    }
    else {
        return requests.post(url).json();
    }
}

--- CoolClass is a simple testing class that you can easily add your full name
--- to and edit if you so wish.
---
--- # Examples
---
--- ```zypo
--- var new_class: CoolClass = CoolClass("Owen", "[last_name]");
--- new_class.print_name();
---
--- new_class.change_name("John", "Matthews");
--- new_class.print_name();
--- ```
class CoolClass {
    fun __init__(self, first_name: str, last_name: str) {
        change_name(first_name, last_name);
    }

    fun print_name(self) {
        print(self.name);
    }

    fun change_name(self, first_name: str, last_name: str) {
        var self.name: str = self._swap_name_full(
            concat(" ", first_name, last_name)
        );
    }
}

fun main() {
    -- Testing send_url

    var url: string = "https://duck.com";
    var return_msg: string = "";

    try {
        return_msg = send_url(url);
    }
    catch {
        return_msg = "Unsuccessful";
    }
    else {
        print("Sent successfully!");
    }

    if (return_msg) {
        print(return_msg);
    }

    -- Testing CoolClass

    var new_class: CoolClass = CoolClass("Owen", "[last_name]");
    new_class.print_name();

    new_class.change_name("John", "Matthews");
    new_class.print_name();
}