Raylang
Jump to navigation
Jump to search
Raylang is a clone of brainfuck, dedicated to the worship of the Raylib community. It was created by LonelyFloat in May 2022.
Context
Raylib is an open-source, cross-platform library explicitly intended for use in game development. It is written in C and is currently in version 4.0.0.
Overview
Raylang functions exactly as brainfuck does, only each command is replaced with keywords relevant to Raylib.
Command | Description | Brainfuck equivalent |
---|---|---|
ray
|
Increment the cell pointer | >
|
lib
|
Decrement the cell pointer | <
|
raylib
|
Increment cell at the pointer | +
|
libray
|
Decrement cell at the pointer | -
|
libraylib
|
Input and store a character at the pointer | ,
|
raylibray
|
Output cell ASCII character at the pointer | .
|
rayray
|
Jump past the matching liblib if the cell at the pointer is 0
|
[
|
liblib
|
Jump to the matching rayray if the cell at the pointer is not 0
|
]
|
Example Programs
Hello, World!
This program prints Hello World! to the console.
raylib raylib raylib raylib raylib raylib raylib raylib rayray ray raylib raylib raylib raylib rayray ray raylib raylib ray raylib raylib raylib ray raylib raylib raylib ray raylib lib lib lib lib libray liblib ray raylib ray raylib ray libray ray ray raylib rayray lib liblib lib libray liblib ray ray raylibray ray libray libray libray raylibray raylib raylib raylib raylib raylib raylib raylib raylibray raylibray raylib raylib raylib raylibray ray ray raylibray lib libray raylibray lib raylibray raylib raylib raylib raylibray libray libray libray libray libray libray raylibray libray libray libray libray libray libray libray libray raylibray ray ray raylib raylibray ray raylib raylib raylibray
Trivial brainfuck substitution interpreter
#!/usr/bin/ruby eval 'm=Hash.new(p=0);'+ARGF.read.downcase.gsub(/[!-~]+|./, 'ray' => 'p+=1;', 'lib' => 'p-=1;', 'raylib' => 'm[p]+=1;', 'libray' => 'm[p]-=1;', 'raylibray' => 'putc m[p];', 'libraylib' => 'm[p]=STDIN.getbyte if !STDIN.eof;', 'rayray' => '(', 'liblib' => ')while((m[p]&=255)!=0);')