Replacefuck is based around pre-processing. Namely, before the actual program, you can define 'functions'. Those functions are defined in this manner:
Functions must be defined on separate lines, which is to say, with a linefeed character between them. Additional newlines are not allowed. Variables in functions must be at the end of the function name. Variable n in the PLUS function of the example replaces iself and the character before it with n copies of the character before it, essentially multiplying the character that comes before it by n.
The program itself is also defined as a function
PROG, and cannot contain any Brainfuck code, and must consist solely of function calls and comments, like this:
PROG:PLUSfPLUSfPLUSfPLUSfPLUSf COPY11 OUTPUTALL
KK, twice ascii number 75.
Numbers you can use for functions in the PROG function are single-digit hexadecimal numbers: 0-f.
Translation from Brainfuck easy; Turing-complete.