Skip to content
Fetish-themed programming language
Branch: master
Clone or download
Latest commit a80e660 Jun 28, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Document using external fetishes Nov 27, 2017
examples Add FizzBuzz example and remove C word Oct 21, 2017
fetishes
scripts Add top comment to Python script Nov 17, 2017
src Bounds checking for escape map Jun 26, 2018
.gitattributes Tell linguist that .h's in src are C++ Aug 28, 2017
.gitignore Rust support and new fetish - passing local test Aug 31, 2017
.travis.yml Upgrade python instead of installing python3 in macOS/travis Mar 29, 2018
LICENSE Update LICENSE Mar 29, 2018
README.md Update repository URL in README May 22, 2018

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++(>=4.9) or clang(>=3.5)

Optional dependencies:

  • boost algorithm(>=1.62)
  • boost filesystem(>=1.62)
  • boost system(>=1.62)

Supported systems:

  • macOS (tested with Travis CI)
  • GNU/Linux (tested with Travis CI)
  • Other modern Unix-like systems

Build Fetlang:

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

The build will use the version of Boost included in Fetlang by default. If you want to use your system's version of boost, you can run meson configure -Duse_system_boost=true in the build folder

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

You can’t perform that action at this time.