Obfunae is a software tool that executes code written in the Obfuna language by interpreting it.
The language offers twenty-six variables and one unbounded array, which is randomly accessible. All variables in the Obfuna language are dynamically typed, which is intended to reduce the overall length of the code. The standard variables in Obfuna are represented by the letters 'a' to 'z'. On the other hand, the single infinitely extendable array is represented by a number indicating its position in the array or a function with a number surrounded by brackets.
Using special 'variables' - signified by $ and % - allows the current size of the array to be ascertained. $ holds the index number of the last element in the array, while % holds the number of elements in the array. Assigning to these unique 'variables' can either grow or shrink the array to a given size. These are useful because they can be used to add a new element to the end of the array or reference the last element in a stack.
Furthermore, there are three special 'variables' used as input/output pipes. When a value is passed to '?', it is printed to the standard output. Assigning a variable from '?' reads its input from the standard input. Finally, '!' acts like '?' but appends a newline character to output and preserves the newline character in input. The '#' operator serves the same function as '?' but instead inputs and outputs from and to the currently open file.
Obfuna has an incredibly simple syntax with only two instruction types - function calls and assignments. Assignments are indicated by omitting the '=' operator, while functions are represented by parenthesis with an argument in the center. You can nest functions within other functions using this syntax.
Using angle brackets, '<' and '>', allows strings to be quoted in Obfuna. Additionally, curly brackets, '{' and '}', can be used to create comments ignored by the Obfuna interpreter. This feature is handy in naming variables and helping to explain the code's functionality. For example, instead of writing 'n10', you could write - n{umber}10.
Obfuna also supports square brackets, '[', and ']', which create blocks of code processed as a single instruction. They are particularly useful when using flow control functions, skipping or repeating just the next line of code.
Version 0.5.2: N/A