1 #ifndef GAZETTEERS_H 2 #define GAZETTEERS_H 3 4 5 6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <stdint.h> 10 11 #include "klib/kvec.h" 12 #include "libpostal.h" 13 #include "vector.h" 14 15 typedef enum dictionary_type { 16 DICTIONARY_ANY = 1, 17 DICTIONARY_SYNONYM = 2, 18 DICTIONARY_STOPWORD = 3, 19 DICTIONARY_ELISION = 4, 20 DICTIONARY_AMBIGUOUS_EXPANSION = 5, 21 22 DICTIONARY_STREET_NAME = 10, 23 DICTIONARY_STREET_TYPE = 11, 24 DICTIONARY_CONCATENATED_PREFIX_SEPARABLE = 12, 25 DICTIONARY_CONCATENATED_SUFFIX_SEPARABLE = 13, 26 DICTIONARY_CONCATENATED_SUFFIX_INSEPARABLE = 14, 27 DICTIONARY_DIRECTIONAL = 15, 28 DICTIONARY_QUALIFIER = 16, 29 DICTIONARY_BUILDING_TYPE = 17, 30 DICTIONARY_LEVEL_NUMBERED = 18, 31 DICTIONARY_LEVEL_STANDALONE = 19, 32 DICTIONARY_LEVEL_MEZZANINE = 20, 33 DICTIONARY_LEVEL_BASEMENT = 21, 34 DICTIONARY_LEVEL_SUB_BASEMENT = 22, 35 DICTIONARY_UNIT_NUMBERED = 23, 36 DICTIONARY_UNIT_STANDALONE = 24, 37 DICTIONARY_UNIT_DIRECTION = 25, 38 DICTIONARY_ENTRANCE = 26, 39 DICTIONARY_STAIRCASE = 27, 40 41 DICTIONARY_NUMBER = 30, 42 DICTIONARY_NO_NUMBER = 31, 43 DICTIONARY_HOUSE_NUMBER = 32, 44 DICTIONARY_POST_OFFICE = 33, 45 DICTIONARY_POSTCODE = 34, 46 47 DICTIONARY_PLACE_NAME = 50, 48 DICTIONARY_COMPANY_TYPE = 51, 49 DICTIONARY_GIVEN_NAME = 52, 50 DICTIONARY_SURNAME = 53, 51 DICTIONARY_PERSONAL_TITLE = 54, 52 DICTIONARY_PERSONAL_SUFFIX = 55, 53 DICTIONARY_ACADEMIC_DEGREE = 56, 54 55 DICTIONARY_NAMED_PERSON = 60, 56 DICTIONARY_NAMED_ORGANIZATION = 61, 57 58 DICTIONARY_CATEGORY = 70, 59 DICTIONARY_CHAIN = 71, 60 DICTIONARY_NEAR = 72, 61 62 DICTIONARY_CROSS_STREET = 80, 63 64 DICTIONARY_NULL = 90, 65 66 DICTIONARY_TOPONYM = 100, 67 DICTIONARY_POSTAL_CODE = 101, 68 69 } dictionary_type_t; 70 71 typedef struct gazetteer { 72 dictionary_type_t type; 73 uint16_t address_components; 74 } gazetteer_t; 75 76 77 78 79 #endif 80 81