chromium/out/Default/gen/components/autofill/core/browser/form_parsing/regex_patterns_inl.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_PARSING_REGEX_PATTERNS_INL_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_PARSING_REGEX_PATTERNS_INL_H_

#include <algorithm>
#include <array>
#include <string_view>

#include "base/containers/fixed_flat_map.h"
#include "base/containers/fixed_flat_set.h"
#include "base/containers/span.h"
#include "base/types/cxx23_to_underlying.h"

#include "components/autofill/core/browser/form_parsing/regex_patterns.h"
#include "components/autofill/core/common/dense_set.h"
#include "components/autofill/core/browser/form_parsing/autofill_parsing_utils.h"

namespace autofill {

// Wrapper of MatchPatternRef's private constructor.
// It's a friend of MatchPatternRef.
constexpr MatchPatternRef MakeMatchPatternRef(
    bool is_supplementary,
    MatchPatternRef::UnderlyingType index) {}

// A pair of const char* used as keys in the `kPatternMap`.
struct NameAndLanguage {};

// A less-than relation on NameAndLanguage and/or std::string_view pairs.
struct NameAndLanguageComparator {};

// A less-than relation on const char* and std::string_view, in particular for
// language codes.
struct LanguageComparator {};

// The patterns. Referred to by their index in MatchPatternRef.
constexpr auto kPatterns =;

// The patterns for field types and languages.
// They are sorted by the patterns MatchingPattern::positive_score.
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__de[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__fr[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__it[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__pl[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_APT_NUM__ru[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_DEPENDENT_LOCALITY[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_DEPENDENT_LOCALITY__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_DEPENDENT_LOCALITY__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_DEPENDENT_LOCALITY__id[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_DEPENDENT_LOCALITY__pt[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_DEPENDENT_LOCALITY__tr[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__de[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__it[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__pl[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__pt[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER__ru[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER_AND_APT[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_HOUSE_NUMBER_AND_APT__pl[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_LOCATION[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_LOCATION__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__de[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__it[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__pl[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__pt[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_HOME_STREET_NAME__ru[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__de[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__fr[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__id[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__it[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__ja[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__ko[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__pl[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__pt[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__ru[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__tr[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_1__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__de[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__fr[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__it[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__ja[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__ko[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__pt[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__ru[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_2__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_EXTRA[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_EXTRA__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_EXTRA__fr[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LINE_EXTRA__it[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LOOKUP[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_LOOKUP__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_NAME_IGNORED[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_NAME_IGNORED__en[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_NAME_IGNORED__es[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_NAME_IGNORED__id[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_NAME_IGNORED__pt[] {};
constexpr MatchPatternRef kPatterns__0__ADDRESS_NAME_IGNORED__tr[] {};
constexpr MatchPatternRef kPatterns__0__ADMIN_LEVEL_2[] {};
constexpr MatchPatternRef kPatterns__0__ADMIN_LEVEL_2__es[] {};
constexpr MatchPatternRef kPatterns__0__ADMIN_LEVEL_2__pt[] {};
constexpr MatchPatternRef kPatterns__0__ATTENTION_IGNORED[] {};
constexpr MatchPatternRef kPatterns__0__ATTENTION_IGNORED__en[] {};
constexpr MatchPatternRef kPatterns__0__AUGMENTED_PHONE_COUNTRY_CODE[] {};
constexpr MatchPatternRef kPatterns__0__AUGMENTED_PHONE_COUNTRY_CODE__en[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS__en[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS__es[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_LINE_1[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_LINE_1__es[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_LINE_2[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_LINE_2__es[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_OR_LANDMARK[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_OR_LANDMARK__en[] {};
constexpr MatchPatternRef kPatterns__0__BETWEEN_STREETS_OR_LANDMARK__es[] {};
constexpr MatchPatternRef kPatterns__0__CITY[] {};
constexpr MatchPatternRef kPatterns__0__CITY__de[] {};
constexpr MatchPatternRef kPatterns__0__CITY__en[] {};
constexpr MatchPatternRef kPatterns__0__CITY__es[] {};
constexpr MatchPatternRef kPatterns__0__CITY__fa[] {};
constexpr MatchPatternRef kPatterns__0__CITY__fr[] {};
constexpr MatchPatternRef kPatterns__0__CITY__hi[] {};
constexpr MatchPatternRef kPatterns__0__CITY__id[] {};
constexpr MatchPatternRef kPatterns__0__CITY__it[] {};
constexpr MatchPatternRef kPatterns__0__CITY__ja[] {};
constexpr MatchPatternRef kPatterns__0__CITY__ko[] {};
constexpr MatchPatternRef kPatterns__0__CITY__ml[] {};
constexpr MatchPatternRef kPatterns__0__CITY__pl[] {};
constexpr MatchPatternRef kPatterns__0__CITY__pt[] {};
constexpr MatchPatternRef kPatterns__0__CITY__ru[] {};
constexpr MatchPatternRef kPatterns__0__CITY__tr[] {};
constexpr MatchPatternRef kPatterns__0__CITY__zh_TW[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__de[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__en[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__es[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__fa[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__fr[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__id[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__it[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__ja[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__ko[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__ru[] {};
constexpr MatchPatternRef kPatterns__0__COMPANY_NAME__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__de[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__en[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__es[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__fa[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__fr[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__id[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__it[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__ja[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__ko[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__pl[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__tr[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY_LOCATION[] {};
constexpr MatchPatternRef kPatterns__0__COUNTRY_LOCATION__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__de[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__es[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__fr[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__it[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__ja[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__pt[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE__ru[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__de[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__es[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__fr[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__id[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__it[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__ja[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__pt[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__ru[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH_BEFORE_YEAR[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_MONTH_BEFORE_YEAR__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__de[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__es[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__id[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__it[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__ja[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__pt[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__ru[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR_AFTER_MONTH[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR_AFTER_MONTH__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR_AFTER_MONTH_EXPERIMENTAL[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_EXP_YEAR_AFTER_MONTH_EXPERIMENTAL__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__de[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__es[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__fr[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__id[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__ja[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__ko[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__pt[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__ru[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_NUMBER__zh_TW[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_VERIFICATION_CODE[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_VERIFICATION_CODE__br[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_VERIFICATION_CODE__de[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_VERIFICATION_CODE__en[] {};
constexpr MatchPatternRef kPatterns__0__CREDIT_CARD_VERIFICATION_CODE__es[] {};
constexpr MatchPatternRef kPatterns__0__DAY[] {};
constexpr MatchPatternRef kPatterns__0__DAY__en[] {};
constexpr MatchPatternRef kPatterns__0__DEBIT_CARD[] {};
constexpr MatchPatternRef kPatterns__0__DEBIT_CARD__en[] {};
constexpr MatchPatternRef kPatterns__0__DEBIT_GIFT_CARD[] {};
constexpr MatchPatternRef kPatterns__0__DEBIT_GIFT_CARD__en[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__en[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__es[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__fa[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__fr[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__hi[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__ja[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__ko[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__ml[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__ru[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__tr[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__EMAIL_ADDRESS__zh_TW[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__de[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__en[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__es[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__fa[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__fr[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__hi[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__id[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__ja[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__ko[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__ml[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__pt[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__ru[] {};
constexpr MatchPatternRef kPatterns__0__FIRST_NAME__tr[] {};
constexpr MatchPatternRef kPatterns__0__FLIGHT[] {};
constexpr MatchPatternRef kPatterns__0__FLIGHT__en[] {};
constexpr MatchPatternRef kPatterns__0__FLIGHT__es[] {};
constexpr MatchPatternRef kPatterns__0__FLIGHT__ja[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__de[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__en[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__es[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__fa[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__fr[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__id[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__ja[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__ko[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__pt[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__ru[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__tr[] {};
constexpr MatchPatternRef kPatterns__0__FULL_NAME__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__GIFT_CARD[] {};
constexpr MatchPatternRef kPatterns__0__GIFT_CARD__en[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__de[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__el[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__en[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__es[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__fr[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__it[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__ru[] {};
constexpr MatchPatternRef kPatterns__0__HONORIFIC_PREFIX__tr[] {};
constexpr MatchPatternRef kPatterns__0__IBAN_VALUE[] {};
constexpr MatchPatternRef kPatterns__0__IBAN_VALUE__en[] {};
constexpr MatchPatternRef kPatterns__0__IN_DEPENDENT_LOCALITY[] {};
constexpr MatchPatternRef kPatterns__0__IN_DEPENDENT_LOCALITY__en[] {};
constexpr MatchPatternRef kPatterns__0__IN_STREET_LOCATION[] {};
constexpr MatchPatternRef kPatterns__0__IN_STREET_LOCATION__en[] {};
constexpr MatchPatternRef kPatterns__0__LANDMARK[] {};
constexpr MatchPatternRef kPatterns__0__LANDMARK__en[] {};
constexpr MatchPatternRef kPatterns__0__LANDMARK__es[] {};
constexpr MatchPatternRef kPatterns__0__LANDMARK__pt[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__de[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__en[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__es[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__fa[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__fr[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__hi[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__id[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__it[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__ja[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__ko[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__ml[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__pt[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__ru[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME__tr[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME_FIRST[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME_FIRST__es[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME_SECOND[] {};
constexpr MatchPatternRef kPatterns__0__LAST_NAME_SECOND__es[] {};
constexpr MatchPatternRef kPatterns__0__MERCHANT_PROMO_CODE[] {};
constexpr MatchPatternRef kPatterns__0__MERCHANT_PROMO_CODE__en[] {};
constexpr MatchPatternRef kPatterns__0__MIDDLE_INITIAL[] {};
constexpr MatchPatternRef kPatterns__0__MIDDLE_INITIAL__en[] {};
constexpr MatchPatternRef kPatterns__0__MIDDLE_NAME[] {};
constexpr MatchPatternRef kPatterns__0__MIDDLE_NAME__en[] {};
constexpr MatchPatternRef kPatterns__0__NAME_GENERIC[] {};
constexpr MatchPatternRef kPatterns__0__NAME_GENERIC__en[] {};
constexpr MatchPatternRef kPatterns__0__NAME_GENERIC__fr[] {};
constexpr MatchPatternRef kPatterns__0__NAME_GENERIC__pt[] {};
constexpr MatchPatternRef kPatterns__0__NAME_IGNORED[] {};
constexpr MatchPatternRef kPatterns__0__NAME_IGNORED__en[] {};
constexpr MatchPatternRef kPatterns__0__NAME_IGNORED__ko[] {};
constexpr MatchPatternRef kPatterns__0__NAME_IGNORED__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__de[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__en[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__es[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__fr[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__id[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__it[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__ja[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__pt[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__ru[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD_CONTEXTUAL[] {};
constexpr MatchPatternRef kPatterns__0__NAME_ON_CARD_CONTEXTUAL__en[] {};
constexpr MatchPatternRef kPatterns__0__NUMERIC_QUANTITY[] {};
constexpr MatchPatternRef kPatterns__0__NUMERIC_QUANTITY__en[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW__de[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW__fr[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW__it[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW__pt[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW_AND_LANDMARK[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW_AND_LANDMARK__en[] {};
constexpr MatchPatternRef kPatterns__0__OVERFLOW_AND_LANDMARK__pt[] {};
constexpr MatchPatternRef kPatterns__0__PASSPORT[] {};
constexpr MatchPatternRef kPatterns__0__PASSPORT__en[] {};
constexpr MatchPatternRef kPatterns__0__PASSPORT__es[] {};
constexpr MatchPatternRef kPatterns__0__PASSPORT__fr[] {};
constexpr MatchPatternRef kPatterns__0__PASSPORT__ja[] {};
constexpr MatchPatternRef kPatterns__0__PATTERN_SOURCE_DUMMY[] {};
constexpr MatchPatternRef kPatterns__0__PATTERN_SOURCE_DUMMY__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__de[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__es[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__fr[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__hi[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__id[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__ja[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__ko[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__ml[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__pt[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__ru[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__tr[] {};
constexpr MatchPatternRef kPatterns__0__PHONE__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_AREA_CODE[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_AREA_CODE__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_AREA_CODE__ko[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_AREA_CODE_NO_TEXT[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_AREA_CODE_NO_TEXT__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_COUNTRY_CODE[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_COUNTRY_CODE__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_EXTENSION[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_EXTENSION__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_EXTENSION__pt[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_PREFIX[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_PREFIX__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_PREFIX__fr[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_PREFIX__pt[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_PREFIX_SEPARATOR[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_PREFIX_SEPARATOR__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_SUFFIX[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_SUFFIX__en[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_SUFFIX_SEPARATOR[] {};
constexpr MatchPatternRef kPatterns__0__PHONE_SUFFIX_SEPARATOR__en[] {};
constexpr MatchPatternRef kPatterns__0__PRICE[] {};
constexpr MatchPatternRef kPatterns__0__PRICE__ar[] {};
constexpr MatchPatternRef kPatterns__0__PRICE__en[] {};
constexpr MatchPatternRef kPatterns__0__PRICE__fa[] {};
constexpr MatchPatternRef kPatterns__0__PRICE__fr[] {};
constexpr MatchPatternRef kPatterns__0__REGION_IGNORED[] {};
constexpr MatchPatternRef kPatterns__0__REGION_IGNORED__en[] {};
constexpr MatchPatternRef kPatterns__0__REGION_IGNORED__es[] {};
constexpr MatchPatternRef kPatterns__0__REGION_IGNORED__pt[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__de[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__en[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__fa[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__fr[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__ja[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__pt[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__ru[] {};
constexpr MatchPatternRef kPatterns__0__SEARCH_TERM__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__STATE[] {};
constexpr MatchPatternRef kPatterns__0__STATE__en[] {};
constexpr MatchPatternRef kPatterns__0__STATE__fa[] {};
constexpr MatchPatternRef kPatterns__0__STATE__hi[] {};
constexpr MatchPatternRef kPatterns__0__STATE__id[] {};
constexpr MatchPatternRef kPatterns__0__STATE__ja[] {};
constexpr MatchPatternRef kPatterns__0__STATE__ko[] {};
constexpr MatchPatternRef kPatterns__0__STATE__ml[] {};
constexpr MatchPatternRef kPatterns__0__STATE__pt[] {};
constexpr MatchPatternRef kPatterns__0__STATE__ru[] {};
constexpr MatchPatternRef kPatterns__0__STATE__tr[] {};
constexpr MatchPatternRef kPatterns__0__STATE__zh_TW[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_DESTINATION[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_DESTINATION__en[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_DESTINATION__es[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_DESTINATION__ja[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_ORIGIN[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_ORIGIN__en[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_ORIGIN__es[] {};
constexpr MatchPatternRef kPatterns__0__TRAVEL_ORIGIN__ja[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_4[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_4__en[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_4__pt[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__de[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__en[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__es[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__fr[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__hi[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__id[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__it[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__ja[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__ko[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__ml[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__pl[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__pt[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__ru[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__tr[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__zh_CN[] {};
constexpr MatchPatternRef kPatterns__0__ZIP_CODE__zh_TW[] {};

// The lookup map for field types and langs.
//
// The key type in the map is essentially a pair of const char*.
// It also allows for lookup by std::string_view pairs (because the
// comparator transparently accepts std::string_view pairs).
//
// The value type is an array of spans of MatchPatternRefs. The
// indices of the array correspond to the pattern source: the patterns
// from the first input JSON file are stored at index 0, etc.
//
// This design exploits that the different JSON files by and large
// contain the same pattern names and languages. If instead we
// generated an individual map for each JSON file, then, assuming four
// JSON files, the duplicate keys would cause 60% overhead, which
// adds up to >10K binary size on Android.
constexpr auto kPatternMap =;

// The set of language codes across all language source ids and
// pattern names.
constexpr auto kLanguages =;

// Checks if all the matching patterns for the given PatternSources
// and language are the same - meaning that computing predictions for
// both is unnecessary, since it will yield the same result.
constexpr bool AreMatchingPatternsEqualImpl(PatternSource a,
                                            PatternSource b,
                                            LanguageCode lang_code) {}

}  // namespace autofill

#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_PARSING_REGEX_PATTERNS_INL_H_