// =============================================================================
// =ALEKSI - FIND-DIGITS
// =============================================================================
////
//// @group aleksi-numbers
//// @author [Yoannis Jamar](http://yoannis.me)
//// @author [Hugo Giraudel]((http://hugogiraudel.com)

@import "aleksi/general/const";
@import "aleksi/const/decimal-space";
@import "aleksi/numbers/strip-unit";

// =find-integer( $source )
// -----------------------------------------------------------------------------
/// Finding the integer part of a stringified number
/// @access private
///
/// @param {String} $source  - string source
/// @param {Number} $pointer - current pointer
///
/// @return {List} new pointer, parsed number
///
/// @author [Hugo Giraudel]((http://hugogiraudel.com)

@function find-integer($source, $pointer)
{
  // don't waste our time with numbers
  @if type-of($source) == 'number' {
    @return strip-unit($source);
  }

  $source: to-lower-case($source);
  $length: str-length($source);
  $numbers: const('DECIMAL_SPACE');
  $result: 0;

  @while ($pointer <= $length) {
    $token: str-slice($source, $pointer, $pointer);
    $index: index($numbers, $token);

    @if ($token == '-') {
      // @continue;
    } @else if $index {
      $result: ($result * 10) + ($index - 1);
    } @else {
      @return $pointer, $result;
    }

    $pointer: ($pointer + 1);
  }

  @return $pointer, $result;
}
