All Projects → fetlang → Fetlang

fetlang / Fetlang

Licence: bsd-3-clause
Fetish-themed programming language

Programming Languages

language
365 projects

Projects that are alternatives of or similar to Fetlang

Crossshader
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
Stars: ✭ 113 (-91.55%)
Mutual labels:  compiler, transpiler
Wax
A tiny programming language that transpiles to C, C++, Java, TypeScript, Python, C#, Swift, Lua and WebAssembly 🚀
Stars: ✭ 373 (-72.1%)
Mutual labels:  compiler, transpiler
Transcrypt
Python 3.7 to JavaScript compiler - Lean, fast, open! -
Stars: ✭ 2,502 (+87.14%)
Mutual labels:  compiler, transpiler
Evm2wasm
[ORPHANED] Transcompiles EVM code to eWASM
Stars: ✭ 96 (-92.82%)
Mutual labels:  compiler, transpiler
J2cl
Java to Closure JavaScript transpiler
Stars: ✭ 773 (-42.18%)
Mutual labels:  compiler, transpiler
Elixirscript
Converts Elixir to JavaScript
Stars: ✭ 1,504 (+12.49%)
Mutual labels:  compiler, transpiler
Ratel Core
High performance JavaScript to JavaScript compiler with a Rust core
Stars: ✭ 367 (-72.55%)
Mutual labels:  compiler, transpiler
Godzilla
Godzilla is a ES2015 to Go source code transpiler and runtime
Stars: ✭ 1,464 (+9.5%)
Mutual labels:  compiler, transpiler
Nimporter
Compile Nim Extensions for Python On Import!
Stars: ✭ 474 (-64.55%)
Mutual labels:  compiler, transpiler
Haxe
Haxe - The Cross-Platform Toolkit
Stars: ✭ 4,665 (+248.92%)
Mutual labels:  compiler, transpiler
Retyped
Access 3600+ libraries from C# and let Bridge.NET compile your project into JavaScript.
Stars: ✭ 216 (-83.84%)
Mutual labels:  compiler, transpiler
Elchemy
Write Elixir code using statically-typed Elm-like syntax (compatible with Elm tooling)
Stars: ✭ 1,080 (-19.22%)
Mutual labels:  compiler, transpiler
Bytecoder
Rich Domain Model for JVM Bytecode and Framework to interpret and transpile it.
Stars: ✭ 401 (-70.01%)
Mutual labels:  compiler, transpiler
Typescripttolua
Typescript to lua transpiler. https://typescripttolua.github.io/
Stars: ✭ 783 (-41.44%)
Mutual labels:  compiler, transpiler
Jsweet
A Java to JavaScript transpiler.
Stars: ✭ 1,167 (-12.72%)
Mutual labels:  compiler, transpiler
Feral
Feral programming language reference implementation
Stars: ✭ 89 (-93.34%)
Mutual labels:  compiler
Scheje
A little scheme implementation on top of Clojure
Stars: ✭ 92 (-93.12%)
Mutual labels:  compiler
Ghdl
VHDL 2008/93/87 simulator
Stars: ✭ 1,285 (-3.89%)
Mutual labels:  compiler
Mrustc
Alternative rust compiler (re-implementation)
Stars: ✭ 1,263 (-5.53%)
Mutual labels:  compiler
Ngraph
nGraph has moved to OpenVINO
Stars: ✭ 1,322 (-1.12%)
Mutual labels:  compiler

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].