Skip to content

Latest commit

 

History

History
99 lines (76 loc) · 2.78 KB

README.md

File metadata and controls

99 lines (76 loc) · 2.78 KB

PIKALANG - The Pikachu Programming Language



A brainfuck derivative based off the vocabulary of Pikachu from Pokémon.

Syntax

pikalang brainfuck description
pi + increment the byte at pointer
ka - decrement the byte at pointer
pika [ if pointer is zero, jump to matching chu
chu ] if pointer is nonzero, jump to matching pika
pipi > increment the data pointer
pichu < decrement the data pointer
pikapi , input of one byte into pointer
pikachu . output the byte at pointer

Installation

stable:

pip install pikalang

or bleeding edge...

git clone https://github.com/grotewold/pikalang.git
cd pikalang

python setup.py install

Usage

pikalang path/to/file.pokeball

File Extention

A pikalang program must be stored in a file with a .pokeball extention

API Usage

import pikalang

sourcecode = """
    pi pi pi pi pi pi pi pi pi pi pika pipi pi pi pi pi pi pi pi pipi pi pi pi
    pi pi pi pi pi pi pi pipi pi pi pi pipi pi pichu pichu pichu pichu ka chu
    pipi pi pi pikachu pipi pi pikachu pi pi pi pi pi pi pi pikachu pikachu pi
    pi pi pikachu pipi pi pi pikachu pichu pichu pi pi pi pi pi pi pi pi pi pi
    pi pi pi pi pi pikachu pipi pikachu pi pi pi pikachu ka ka ka ka ka ka
    pikachu ka ka ka ka ka ka ka ka pikachu pipi pi pikachu pipi pikachu
    """

# or use sourcecode = pikalang.load_source("FILENAME.pokeball") to load from file

pikalang.evaluate(sourcecode)

Development

When developing, use pipenv to install needed tools.

pipenv install

pipenv run black .

pipenv run python -m pikalang tests/hello-world.pokeball

Thanks

Special thanks to Elliot Chance for providing the base implementation of this.

Disclaimer

This is a fan-based parody of themes from Pokémon. The language, as well as its author, is in no way associated with the Pokémon francise and its creators, nor is this project, in any way, for-profit. This is a project to teach myself ply, which is protected under fair use.