Skip to content
View fetlang's full-sized avatar

Block or report fetlang

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
fetlang/README.md

Fetlang

Fetlang is a statically typed, procedural, esoteric programming language and reference implementation. It is designed such that source code looks like poorly written fetish erotica.

Fetlang is not recommended for production use at this moment, especially in medical or military applications.

Example

The following example outputs the arguments given to the executable:

Make Sean moan
Worship Carrie's feet

Bind Amy to Saint Andrew's Cross
    Have Amy hogtie Sean
    If Amy is Carrie's bitch
        Make Slave scream Sean's name
        Make Sean moan

Features

  • Input/output with standard streams and files
  • Statically typed
  • Gendered variables
  • Access previously mentioned variables using pronouns
  • Numbers represented internally as fractions instead of floating point
  • Transpiles to C
  • Confusing English-like syntax and unhelpful error messages
  • Turing complete (See here for a Rule 110 implementation by Kjeld Schmidt)
  • Has a Vim plugin (thanks to Kutsan Kaplan)
  • Can be extended with C, C++, or Rust

Building

Requirements:

  • meson
  • ninja
  • gcc/g++(>=9.1) or clang(>=12.0)

Supported systems:

  • macOS (tested in CI)
  • GNU/Linux (tested in CI)
  • Other modern Unix-like systems
  • Windows 10 under WSL/WSL2

Build Fetlang:

$ git clone https://github.com/fetlang/fetlang
$ cd fetlang
$ meson setup --buildtype=release src build
$ cd build
$ # Build Fetlang
$ ninja
$ # Run unit tests
$ ninja test

Install Fetlang:

$ sudo ninja install
$ # Make sure it worked
$ fetlang ../examples/hello.fet && ./a.out
Hello World!

Documentation

Comments
Control Flow
Fetishes
Fetish Reference
Grammar
Tutorial
Types
Variables

License

Fetlang is licensed under the BSDM (BSD, modified) license

Pinned Loading

  1. fetlang fetlang Public

    Fetish-themed programming language

    C++ 1.5k 37

  2. vim-fetlang vim-fetlang Public

    Forked from kutsan/vim-fetlang

    Vim runtime files for Fetlang, the fetish-themed programming language

    Vim Script 1