#ifndef GAZETTEERS_H
#define GAZETTEERS_H


 

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include "klib/kvec.h"
#include "libpostal.h"
#include "vector.h"

typedef enum dictionary_type {
    DICTIONARY_ANY = 1,
    DICTIONARY_SYNONYM = 2,
    DICTIONARY_STOPWORD = 3,
    DICTIONARY_ELISION = 4,
    DICTIONARY_AMBIGUOUS_EXPANSION = 5,

    DICTIONARY_STREET_NAME = 10,
    DICTIONARY_STREET_TYPE = 11,
    DICTIONARY_CONCATENATED_PREFIX_SEPARABLE = 12,
    DICTIONARY_CONCATENATED_SUFFIX_SEPARABLE = 13,
    DICTIONARY_CONCATENATED_SUFFIX_INSEPARABLE = 14,
    DICTIONARY_DIRECTIONAL = 15,
    DICTIONARY_QUALIFIER = 16,
    DICTIONARY_BUILDING_TYPE = 17,
    DICTIONARY_LEVEL = 18,
    DICTIONARY_UNIT = 19,
    DICTIONARY_POST_OFFICE = 20,
    DICTIONARY_NO_ADDRESS = 21,
    DICTIONARY_NULL = 22,

    DICTIONARY_PLACE_NAME = 50,
    DICTIONARY_COMPANY_TYPE = 51,
    DICTIONARY_GIVEN_NAME = 52,
    DICTIONARY_SURNAME = 53,
    DICTIONARY_PERSONAL_TITLE = 54,
    DICTIONARY_PERSONAL_SUFFIX = 55,
    DICTIONARY_ACADEMIC_DEGREE = 56,

    DICTIONARY_NAMED_PERSON = 60,
    DICTIONARY_NAMED_ORGANIZATION = 61,

    DICTIONARY_LOCALITY = 100,
    DICTIONARY_ADMIN1 = 101,
    DICTIONARY_ADMIN2 = 102,
    DICTIONARY_ADMIN3 = 103,
    DICTIONARY_ADMIN4 = 104,
    DICTIONARY_ADMIN_OTHER = 105,
    DICTIONARY_NEIGHBORHOOD = 106,
    DICTIONARY_POSTAL_CODE = 107,
    DICTIONARY_COUNTRY = 108,
    DICTIONARY_TOPONYM = 109

} dictionary_type_t;

typedef struct gazetteer {
    dictionary_type_t type;
    uint16_t address_components;
} gazetteer_t;


 

#endif

