############################################################################ # # File: statemap.icn # # Subject: Procedure for table of states and abbreviations # # Author: Ralph E. Griswold # # Date: March 25, 2002 # ############################################################################ # # This file is in the public domain. # ############################################################################ # # This procedure produces a "two-way" table to map state names (in # the postal sense) to their postal abbreviations and vice-versa. # # The list is done in two parts with auxiliary procedures so that this # procedure can be used with the default constant-table size for the # translator and linker. # ############################################################################ procedure statemap() local state_list, state_map, i state_map := table() every state_list := __list1() | __list2() do every i := 1 to *state_list - 1 by 2 do { insert(state_map, state_list[i], state_list[i + 1]) insert(state_map, state_list[i + 1], state_list[i]) } return state_map end procedure __list1() return [ "AK", "Alaska", "AL", "Alabama", "AR", "Arkansas", "AS", "American Samoa", "AZ", "Arizona", "CA", "California", "CO", "Colorado", "CT", "Connecticut", "DC", "District of Columbia", "DE", "Delaware", "FL", "Florida", "FM", "Federated States of Micronesia", "GA", "Georgia", "GU", "Guam", "HI", "Hawaii", "IA", "Iowa", "ID", "Idaho", "IL", "Illinois", "IN", "Indiana", "KS", "Kansas", "KY", "Kentucky", "LA", "Louisiana", "MA", "Massachusetts", "MD", "Maryland", "ME", "Maine", "MH", "Marshall Islands", "MI", "Michigan", "MN", "Minnesota" ] end procedure __list2() return [ "MO", "Missouri", "MP", "Northern Mariana Islands", "MS", "Mississippi", "MT", "Montana", "NC", "North Carolina", "ND", "North Dakota", "NE", "Nebraska", "NH", "New Hampshire", "NJ", "New Jersey", "NM", "New Mexico", "NV", "Nevada", "NY", "New York", "OH", "Ohio", "OK", "Oklahoma", "OR", "Oregon", "PA", "Pennsylvania", "PR", "Puerto Rico", "PW", "Palau", "RI", "Rhode Island", "SC", "South Carolina", "SD", "South Dakota", "TN", "Tennessee", "TX", "Texas", "UT", "Utah", "VA", "Virginia", "VT", "Vermont", "WA", "Washington", "WI", "Wisconsin", "WV", "West Virginia", "WY", "Wyoming" ] end