public CodePoint advance(int count) {
            while (count > 0 && hasNext()) {
                if(program.text.codePointAt(index) == '\n')
                {
                    line++;
                    position = 0;
                }
                position++;
                index = program.text.offsetByCodePoints(index, 1);
                count--;
            }
            current.setValue(program.text.codePointAt(index));
            current.setPosition(new Position(line, position, index));
            
            return current;
        }