Aeon

Aeon is a Turing-complete more-flexible esoteric language designed by User:Cptx032 in april of 2014. Its based in FALSE and brainfuck languages.

Overview
Aeon works with two lists: one for string values and other for function values [written in the same language of compiler]. The functions available are fixed. You can't write, in a script, another function. The default compiler has 5 basic functions[that can increase if you embed the interpreter in your application]:  0: print: prints the current value 1: println: prints the current value and puts \n char in the end of line 2: input: gets terminal entry and saves that value in the current position 3: run: interprets the current value like a aeon script. 4: read: read the content of file path in current value and saves your value in the previous position  The only chars available are ., +, -, %, v, ^, >, <, {, =, |, [, ], ( and #. Any other chars are ignored.

Functions
You should use those chars to move in the function list:  v: moves down in the list ^: moves up in the list</li> </ul> Its like an vertical list. To run the current function use '.' char.

Variables
The variables are in a horizontal list:   >: moves right in the list</li>  <: moves left in the list</li> </ul> Others commands:  +: tries add +1</li> -: tries add -1</li> %: saves the rest of line in current position</li> </ul>

Flow control
Aeon has an if-greater-than, an if-less-than, an if-equal-to, an if-different-of and a while loop flow controls. The 'if' flow control starts with the '{' char. To test if the value of current position is greater than the last value, you can type: '{]'. To test if the value of current position is less than last value, you can type: '{['. If you want know if the current value is equal to last value, you can type '{=', and different '{|'. If the operation returns true the rest of line is interpreted, if not, the line is broken. The while loop works in the same way: if the current value is different of '0' then the rest of line is interpreted.

Error handling
Commands like +, -, {[, {[ can throw errors if the current value can't be casted to float or integer. Aeon hasn't any kind of error handling [although you can do that if you embed the language]. So, be careful.

c++
To embed aon in c++ you need of the "aeon.cpp" file: int main{ AeonInterpreter *i = new AeonInterpreter; std::string script = "++>>><"; // example std::vector<std::string> script_lines; script_lines.push_back(script); AeonError::AeonError er = i->run(lines); if(er == AeonError::SYNTAX_ERROR){ std::cout << "OPS" << std::endl; } return 0; }
 * 1) include "aeon.cpp"

Compile
To compile type: g++ -O3 -o

Hello World
%Hello World .

Simple name program

 * 0 : print
 * 1 : println
 * 2 : input

%Enter your name: v.v.>%Welcome, ^.<^.%Press [ENTER] to continue... v.v.

Simple age program
%In Brazil, you can only drive if you have more than 16 years. . %Enter your age: >%You can drive >%You can't drive v<<.>>>v.^^>%16 {[<<<.>>> {]<<.>> {=<<<.>>>