OREO
Jump to navigation
Jump to search
OREO - esoteric language created by User:Kamish.
This language is useless as all of my languages, lol ;)
Commands
Okay, what commands exist:
Command | Description |
---|---|
RE | accumulator += 1 |
O | pointer move right |
&O | print the accumulator as ASCII |
All programs are as if you bake cookies: O
is biscuit; RE
is cream; &O
is biscuit too.
Hello World program
ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O ORERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE&O
Implementations
Common Lisp
A simple and concise implementation of an OREO interpreter in Common Lisp follows.
(defun interpret-OREO (code) "Interprets the CODE representing an OREO program and returns ``NIL''." (declare (type string code)) (let ((memory (make-array 1 :element-type '(integer 0 *) :adjustable T :fill-pointer 1 :initial-element 0)) (pointer 0)) (declare (type (vector (integer 0 *) *) memory) (type fixnum pointer)) (with-input-from-string (input code) (loop for character of-type (or null character) = (read-char input NIL) while character do (cond ((and (char= character #\R) (char= (peek-char NIL input NIL) #\E)) (read-char input) (incf (aref memory pointer))) ((char= character #\O) (incf pointer) (vector-push-extend 0 memory)) ((and (char= character #\&) (char= (peek-char NIL input NIL) #\O)) (read-char input) (write-char (code-char (aref memory pointer)))) ((member character '(#\Newline #\Space #\Tab) :test #'char=) NIL) (T (error "Invalid command: ~s." character)))))))
Slashes
/RE/+//O/>//&O/./
Compiles to BF. Program is written after this code. Hello World code produces this output:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++. >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. >+++++++++++++++++++++++++++++++++.
C
#include<stdio.h> int main(){ char c,x=0; while((c=getchar())!=EOF){ if(c=='O') x++; if(c=='&'&&getchar()=='O') putchar(x); if(c=='R'&&getchar()=='E') x=0; } return 0; }
See also
- OREO Conversion Sheet
- Fuck-brain, an esolang the same as this one except the characters are different.
Interpreters
GitHub offers a more elaborate implementation of the language.