check the variables never go below 0

Right now, the parser checks if the substraction is valid or not but the program doesn't take care about the 'in' restriction yet
Let us start a new PR about the debug output.
From what I read [here](http://stackoverflow.com/questions/1941307/c-debug-print-macros) the best looking solution to me is 
````
#ifdef DEBUG
#define DEBUG_PRINT(...) printf( __VA_ARGS__ );
#else
#define DEBUG_PRINT(...) do{ } while ( 0 )
#endif
````
you might consider renaming DEBUG_PRINT into PRINTF as I have seen in other projects.
this way you can keep all the prinfts needed for debugging and turn them on by appending -DDEBUG when you compile.