Made a cleaner Makefile

Despite still not generic it will now run lex and yacc only when needed.
It can also clean the intermediate files and is more robust against
files that could be named like the special targets.

Signed-off-by: Celelibi <celelibi@gmail.com>
Reindentation of lexer and grammar

One tab to rule them all.

Signed-off-by: Celelibi <celelibi@gmail.com>
Run the test by default when "make run"

Signed-off-by: Celelibi <celelibi@gmail.com>
Use left recursion when possible

Bison prefer left recursions over right recursions. It save memory and
little kittens.

Signed-off-by: Celelibi <celelibi@gmail.com>
Rename two non-terminals with more meaningful names

S become Algos
Commands become Algo

Signed-off-by: Celelibi <celelibi@gmail.com>