def tokenize_question_mark
      advance
      if @expr_state == :end || @expr_state == :endarg
        @expr_state = :beg
        return capture_token(:question_mark)
      end

      if (cchar != ' ' && cchar != "\t") && @i < @length
        advance until cchar == ' ' || cchar == "\t" ||
          cchar == "\r" || cchar == "\n" || @i > @length
        return capture_token(:character_literal)
      end

      capture_token(:question_mark)
    end
def tokenize_question_mark
      advance
      if @expr_state == :end || @expr_state == :endarg
        @expr_state = :beg
        return capture_token(:question_mark)
      end

      if (cchar != ' ' && cchar != "\t") && @i < @length
        advance until cchar == ' ' || cchar == "\t" ||
          cchar == "\r" || cchar == "\n" || @i > @length
        return capture_token(:character_literal)
      end

      capture_token(:question_mark)
    end
tokenizes question mark / character literals