protected function get_sequence( $pattern ) {
		$characters = Strings::mb_str_split( str_replace( '.', '_', $pattern ) );
		$result     = [];

		foreach ( $characters as $index => $chr ) {
			if ( ctype_digit( $chr ) ) {
				$result[] = $chr;
			} else {
				// Append '0' if this is the first character or the previous character was not a number.
				if ( ! isset( $characters[ $index - 1 ] ) || ! ctype_digit( $characters[ $index - 1 ] ) ) {
					$result[] = '0';
				}

				// Append '0' if this is the last character.
				if ( ! isset( $characters[ $index + 1 ] ) ) {
					$result[] = '0';
				}
			}
		}

		// Do some error checking.
		$count     = count( $result );
		$count_seg = mb_strlen( $this->get_segment( $pattern ) );
		$sequence  = implode( '', $result );

		if ( $count !== $count_seg + 1 ) {
			throw new \RangeException( "Invalid segment length $count for pattern $pattern (result sequence $sequence)." );
		}

		return $sequence;
	}
protected function get_sequence( $pattern ) {
		$characters = Strings::mb_str_split( str_replace( '.', '_', $pattern ) );
		$result     = [];

		foreach ( $characters as $index => $chr ) {
			if ( ctype_digit( $chr ) ) {
				$result[] = $chr;
			} else {
				// Append '0' if this is the first character or the previous character was not a number.
				if ( ! isset( $characters[ $index - 1 ] ) || ! ctype_digit( $characters[ $index - 1 ] ) ) {
					$result[] = '0';
				}

				// Append '0' if this is the last character.
				if ( ! isset( $characters[ $index + 1 ] ) ) {
					$result[] = '0';
				}
			}
		}

		// Do some error checking.
		$count     = count( $result );
		$count_seg = mb_strlen( $this->get_segment( $pattern ) );
		$sequence  = implode( '', $result );

		if ( $count !== $count_seg + 1 ) {
			throw new \RangeException( "Invalid segment length $count for pattern $pattern (result sequence $sequence)." );
		}

		return $sequence;
	}
protected function get_sequence ( $ pattern ) { $ characters = Strings :: mb_str_split ( str_replace ( '.' , '_' , $ pattern ) ) ; $ result = [ ] ; foreach ( $ characters as $ index => $ chr ) { if ( ctype_digit ( $ chr ) ) { $ result [ ] = $ chr ; } else { // Append '0' if this is the first character or the previous character was not a number. if ( ! isset ( $ characters [ $ index - 1 ] ) || ! ctype_digit ( $ characters [ $ index - 1 ] ) ) { $ result [ ] = '0' ; } // Append '0' if this is the last character. if ( ! isset ( $ characters [ $ index + 1 ] ) ) { $ result [ ] = '0' ; } } } // Do some error checking. $ count = count ( $ result ) ; $ count_seg = mb_strlen ( $ this -> get_segment ( $ pattern ) ) ; $ sequence = implode ( '' , $ result ) ; if ( $ count !== $ count_seg + 1 ) { throw new \ RangeException ( "Invalid segment length $count for pattern $pattern (result sequence $sequence)." ) ; } return $ sequence ; }
Calculate patgen sequence from TeX hyphenation pattern.

@param string $pattern TeX hyphenation pattern.

@throws \RangeException Thrown when the calculated pattern length is invalid.

@return string
Calculate patgen sequence from TeX hyphenation pattern .