function _parsePasswordRulesInternal()

in tools/PasswordRulesParser.js [500:536]


function _parsePasswordRulesInternal(input)
{
    let parsedProperties = [];
    let length = input.length;

    var position = _indexOfNonWhitespaceCharacter(input);
    while (position < length) {
        if (!_isIdentifierCharacter(input[position])) {
            console.warn("Failed to find start of property: " + input.substr(position));
            return parsedProperties;
        }

        var [parsedProperty, position] = _parsePasswordRule(input, position)
        if (parsedProperty && parsedProperty.value) {
            parsedProperties.push(parsedProperty);
        }

        position = _indexOfNonWhitespaceCharacter(input, position);
        if (position >= length) {
            break;
        }

        if (input[position] === PROPERTY_SEPARATOR) {
            position = _indexOfNonWhitespaceCharacter(input, position + 1);
            if (position >= length) {
                return parsedProperties;
            }

            continue;
        }

        console.error("Failed to find start of next property: " + input.substr(position));
        return null;
    }

    return parsedProperties;
}