[WIP] check integer number range in vistor 

hi @Alefas, I think it's a better version now. could you go through it?
Also I cannot get the test running for now, test cases will be later.
There is anther issue. java.lang.Long.parseLong("ffffffffffffffff", 16) throws an exception rather than returns -1. I am thinking of a way to deal with these issues. @Alefas, hope you can give me some advice.