support binary and underscore in number literal