Skip to content

jgcodes2020/jaki-kiwen

 
 

Repository files navigation

jaki kiwen

Aren't you pilin lape from writing Rust programs in English? Do you like saying "pakala a" a lot? Would you like to try something different, in a super simplified language? Would you want to bring some Toki Pona touch to your programs?

jaki kiwen (Toki Pona for Rust) is here to save your day, as it allows you to write Rust programs in Toki Pona, using Toki Pona keywords, Toki Pona function names, Toki Pona idioms.

This has been designed to be used as the official programming language for ma pona pi toki pona.

You're a jan sin and don't feel at ease using only Toki Pona words?

Don't worry! Toki Pona Rust is fully compatible with English Rust, so you can mix both at your convenience.

Here's an example of what can be achieved with jaki kiwen:

trait and impl (aka nasin_suli en nasin_lon)

jaki_kiwen::jaki_kiwen! {
    weka poki_suli jaki_kiwen;
    o_kepeken std::collections::LipuNimi sama LipuN;

    nasin_suli NimiEnKon {
        nasin o_pana(&mi, nimi: Linja, kon: Linja);
        nasin o_alasa(&mi, nimi: Linja) -> IjoPini<IjoKen<&Linja>, Linja>;
    }

    kule_awen ken_ante LIPU_NIMI: IjoKen<LipuN<Linja, Linja>> = IjoAla;

    tomo IjoSijelo;

    nasin_lon NimiEnKon lon_ale IjoSijelo {
        nasin o_pana(&mi, nimi: Linja, kon: Linja) {
            o_lon_e lipu = ike_a {
                LIPU_NIMI.o_wile_anu_pana_kepeken(NasinOpen::nasin_open)
            };
            lipu.o_pana_lon_insa_e(nimi, kon);
        }
        nasin o_alasa(&mi, nimi: Linja) -> IjoPini<IjoKen<&Linja>, Linja> {
            lon_la o_lon_e IjoLon(lipu) = ike_a { LIPU_NIMI.o_kama_ijo_tan() } {
                Pona(lipu.o_wile_tan(&nimi))
            }
            ala_la {
                Ike("lipu li ala a!".o_ante_tawa())
            }
        }
    }
}

Other examples

See the examples to get a rough sense of the whole syntax. o lukin a, that's it.

o pana!

First of all, sina pona mute for considering participating to this joke, Sonja Lang will thank you later! Feel free to throw in a few identifiers here and there, and open a pull request against the suli-nanpa-wan (Toki Pona for main) branch.

Please don't introduce any unpa, though: we will not excuse your Toki Pona.

but why would you do ni

  • horsin around
  • playing with raw proc macros
  • making a bit of fun about programming languages that do this seriously, though I can see their utility.
  • ni li sama nimi kijetesantakalu

Other languages

nasin pi ken pana

WTFPL. A translation to Toki Pona is provided at LICENSE-tok.txt.

About

Rust programming, in Toki Pona.

Resources

License

WTFPL, Unknown licenses found

Licenses found

WTFPL
LICENSE.txt
Unknown
LICENSE-tok.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%