Produced bytecode cleaned up, labels compiled
actual bytecode generated
followup strings in the bytecode are now properly null-terminated (facepalm)
massive reorganization of compiler stuff. fixes #3. Also a very ugly commit, sorry about it.
Merge branch 'gui' into compiler

Conflicts:
	makefile
Interpreting works, more or less.
Added two debug loggers:

- dout (Debug OUtput) is an alias to cerr
- debug_var(var) is a macro function that prints the name and value of a variable.

When the DEBUG_MACROS_ENABLED flag is off, the macro function does nothing, and the dout gets a dummy object as a type, and let's hope the compiler optimizes it out.
Merge branch 'master' into interpreter
Interpreter demo working. It dies a horrible death at the slightest error, so be careful.
Some refactoring, some beautification, some fluff about printing the bytecode/assembly.
Compiler now accepts more procedures in a single file.
Cleaned up sample scripts & added debugf, the formatted debug logger.
Operators are now interrupts. Closes #6.

Kétségeim vannak a dolog felől, kicsit olyan, mintha adtam volna egy pofont a szarnak, de ez van.
Comparisons are back in (oops)
Operators and comparisons are now stored in static array instead of vectors, and that's a lot neater.
Div and mod throw exception on division by zero.
Procedures with no parameters can be called.
Procedures with parameters are syntactically valid and compiled correctly. Also moved subprogram's write methods to bytecode.cpp from compiler.cpp (oops).
Procedures can now be called with parameters. Woo.
Killed declarative part. Work on #8 continues.

It was surprisingly painless.