FIX: almost working c++ interface.
    FIX: heavy refactoring for c++ classes.
    FIX: more c++ refactoring. lexer is using string and has implemented debug.
    FIX: intermediate commit not stable.