Skip to main content

Clyp is a programming language that transpiles to Python.

Project description

Clyp

Clyp is an experimental programming language that transpiles to Python. It's designed with a clean and simple syntax, aiming to make coding more straightforward and readable.

Site at codesoft.is-a.dev/clyp

Features

  • Static-like Typing: Variables are declared with their types, providing clarity and robustness.
  • Simplified Syntax: Uses {} for blocks and ; for newlines, similar to C-like languages.
  • Python Interoperability: Seamlessly uses Python libraries and functions.
  • Standard Library: Comes with a handy set of built-in functions for common tasks.

Installation

To get started with Clyp, you need to have Python installed. Then, you can clone the repository and install the dependencies:

git clone https://github.com/CodeSoftGit/clyp.git
cd clyp
pip install -r requirements.txt
pip install .

Usage

The Clyp CLI allows you to execute .clyp files directly from your terminal.

  • Run a file:

    clyp path/to/your/file.clyp
    
  • Check the version:

    clyp --version
    
  • Display help:

    clyp --help
    

Language Syntax

Variables

Variables are declared with their type followed by the name and value.

int x = 10;
str message = "Hello, World!";
bool is_active = true;

Functions

Functions are defined using the def keyword, with type hints for arguments and a returns clause for the return type.

def greet(str name) returns None {
    print("Hello, " + name);
}

Conditionals

Clyp uses if, else if, and else for conditional logic.

int a = 10;
if (a > 5) {
    print("a is greater than 5");
} else {
    print("a is not greater than 5");
}

Comments

Comments start with #.

# This is a single-line comment

Standard Library

Clyp includes a standard library with useful functions:

  • fetch(url: str): Fetches content from a URL.
  • read_file(path: str): Reads a file's content.
  • write_file(path: str, content: str): Writes content to a file.
  • slugify(text: str): Converts a string into a URL-friendly slug.
  • is_empty(value): Checks if a value is empty.
  • is_prime(n: int): Checks if a number is prime.
  • to_roman_numerals(num: int): Converts an integer to Roman numerals.

Development

To contribute to Clyp, you can set up a development environment:

pip install -r requirements-dev.txt

Run tests using pytest:

pytest

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

clyp-0.1.0.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clyp-0.1.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file clyp-0.1.0.tar.gz.

File metadata

  • Download URL: clyp-0.1.0.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for clyp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 169717b5095cf66a7de115bf101d13a5724cb69acc4c3ea00b97574dcc4bcba5
MD5 95c3f318e0450d131719d6d3e8c61fbd
BLAKE2b-256 3f901d949cf10cd3623b3a2389c0950cfe9df8dc1b86499b21b0a2a778943b2a

See more details on using hashes here.

File details

Details for the file clyp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: clyp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for clyp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc8e10f9eef90e9d60dbb785389e8a35b08eb529841e050a888895c1791c6265
MD5 d1b2a29205ffddf4af5e24b05ec409c4
BLAKE2b-256 1b86693829f205a7fbe9ccdf83bc87d831e31851bee9241359b41c22e66a26cb

See more details on using hashes here.

Supported by

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