Codebase list libmawk / a8c8f483-bda4-4dcb-b181-d7b9964ade2c/main src / awklib / lib_ascii.awk
a8c8f483-bda4-4dcb-b181-d7b9964ade2c/main

Tree @a8c8f483-bda4-4dcb-b181-d7b9964ade2c/main (Download .tar.gz)

lib_ascii.awk @a8c8f483-bda4-4dcb-b181-d7b9964ade2c/mainraw · history · blame

function lib_ascii_version()
{
	return 1
}

# convert an binary character to ascii code (integer)
function lib_ascii_ord(chr)
{
	return lib_ascii_ASCII[chr]
}

# ---- initializing the ASCII table ----
# Slowest variant: 10k runs at 2.241 seconds on a machine
#	for(n = 0; n < 256; n = n+1)
#		lib_ascii_ASCII[sprintf("%c", n)] = n
#
# a bit faster: 10k runs at 1.604 on the same machine
#	split("\001 \002 \003 \004 \005 \006 \007 \010 \011 \012 \013 \014 \015 \016 \017 \020 \021 \022 \023 \024 \025 \026 \027 \030 \031 \032 \033 \034 \035 \036 \037 ! \041 \042 \043 \044 \045 \046 \047 \050 \051 \052 \053 \054 \055 \056 \057 \060 \061 \062 \063 \064 \065 \066 \067 \070 \071 \072 \073 \074 \075 \076 \077 \100 \101 \102 \103 \104 \105 \106 \107 \110 \111 \112 \113 \114 \115 \116 \117 \120 \121 \122 \123 \124 \125 \126 \127 \130 \131 \132 \133 \134 \135 \136 \137 \140 \141 \142 \143 \144 \145 \146 \147 \150 \151 \152 \153 \154 \155 \156 \157 \160 \161 \162 \163 \164 \165 \166 \167 \170 \171 \172 \173 \174 \175 \176 \177 ", A, " ");
#	for(n = 1; n < 128; n++) {
#		lib_ascii_ASCII[A[n]] = n;
#	}
#	split("\200 \201 \202 \203 \204 \205 \206 \207 \210 \211 \212 \213 \214 \215 \216 \217 \220 \221 \222 \223 \224 \225 \226 \227 \230 \231 \232 \233 \234 \235 \236 \237 \240 \241 \242 \243 \244 \245 \246 \247 \250 \251 \252 \253 \254 \255 \256 \257 \260 \261 \262 \263 \264 \265 \266 \267 \270 \271 \272 \273 \274 \275 \276 \277 \300 \301 \302 \303 \304 \305 \306 \307 \310 \311 \312 \313 \314 \315 \316 \317 \320 \321 \322 \323 \324 \325 \326 \327 \330 \331 \332 \333 \334 \335 \336 \337 \340 \341 \342 \343 \344 \345 \346 \347 \350 \351 \352 \353 \354 \355 \356 \357 \360 \361 \362 \363 \364 \365 \366 \367 \370 \371 \372 \373 \374 \375 \376 \377", A, " ");
#	for(n = 1; n < 128; n++) {
#		lib_ascii_ASCII[A[n]] = n+128;
#	}
#	lib_ascii_ASCII["\000"] = 0
#	lib_ascii_ASCII[" "] = 32

# Fastest version on the same machine: 0.5 seconds
BEGIN {
	lib_ascii_ASCII["\000"] = 0
	lib_ascii_ASCII["\001"] = 1
	lib_ascii_ASCII["\002"] = 2
	lib_ascii_ASCII["\003"] = 3
	lib_ascii_ASCII["\004"] = 4
	lib_ascii_ASCII["\005"] = 5
	lib_ascii_ASCII["\006"] = 6
	lib_ascii_ASCII["\007"] = 7
	lib_ascii_ASCII["\010"] = 8
	lib_ascii_ASCII["\011"] = 9
	lib_ascii_ASCII["\012"] = 10
	lib_ascii_ASCII["\013"] = 11
	lib_ascii_ASCII["\014"] = 12
	lib_ascii_ASCII["\015"] = 13
	lib_ascii_ASCII["\016"] = 14
	lib_ascii_ASCII["\017"] = 15
	lib_ascii_ASCII["\020"] = 16
	lib_ascii_ASCII["\021"] = 17
	lib_ascii_ASCII["\022"] = 18
	lib_ascii_ASCII["\023"] = 19
	lib_ascii_ASCII["\024"] = 20
	lib_ascii_ASCII["\025"] = 21
	lib_ascii_ASCII["\026"] = 22
	lib_ascii_ASCII["\027"] = 23
	lib_ascii_ASCII["\030"] = 24
	lib_ascii_ASCII["\031"] = 25
	lib_ascii_ASCII["\032"] = 26
	lib_ascii_ASCII["\033"] = 27
	lib_ascii_ASCII["\034"] = 28
	lib_ascii_ASCII["\035"] = 29
	lib_ascii_ASCII["\036"] = 30
	lib_ascii_ASCII["\037"] = 31
	lib_ascii_ASCII["\040"] = 32
	lib_ascii_ASCII["\041"] = 33
	lib_ascii_ASCII["\042"] = 34
	lib_ascii_ASCII["\043"] = 35
	lib_ascii_ASCII["\044"] = 36
	lib_ascii_ASCII["\045"] = 37
	lib_ascii_ASCII["\046"] = 38
	lib_ascii_ASCII["\047"] = 39
	lib_ascii_ASCII["\050"] = 40
	lib_ascii_ASCII["\051"] = 41
	lib_ascii_ASCII["\052"] = 42
	lib_ascii_ASCII["\053"] = 43
	lib_ascii_ASCII["\054"] = 44
	lib_ascii_ASCII["\055"] = 45
	lib_ascii_ASCII["\056"] = 46
	lib_ascii_ASCII["\057"] = 47
	lib_ascii_ASCII["\060"] = 48
	lib_ascii_ASCII["\061"] = 49
	lib_ascii_ASCII["\062"] = 50
	lib_ascii_ASCII["\063"] = 51
	lib_ascii_ASCII["\064"] = 52
	lib_ascii_ASCII["\065"] = 53
	lib_ascii_ASCII["\066"] = 54
	lib_ascii_ASCII["\067"] = 55
	lib_ascii_ASCII["\070"] = 56
	lib_ascii_ASCII["\071"] = 57
	lib_ascii_ASCII["\072"] = 58
	lib_ascii_ASCII["\073"] = 59
	lib_ascii_ASCII["\074"] = 60
	lib_ascii_ASCII["\075"] = 61
	lib_ascii_ASCII["\076"] = 62
	lib_ascii_ASCII["\077"] = 63
	lib_ascii_ASCII["\100"] = 64
	lib_ascii_ASCII["\101"] = 65
	lib_ascii_ASCII["\102"] = 66
	lib_ascii_ASCII["\103"] = 67
	lib_ascii_ASCII["\104"] = 68
	lib_ascii_ASCII["\105"] = 69
	lib_ascii_ASCII["\106"] = 70
	lib_ascii_ASCII["\107"] = 71
	lib_ascii_ASCII["\110"] = 72
	lib_ascii_ASCII["\111"] = 73
	lib_ascii_ASCII["\112"] = 74
	lib_ascii_ASCII["\113"] = 75
	lib_ascii_ASCII["\114"] = 76
	lib_ascii_ASCII["\115"] = 77
	lib_ascii_ASCII["\116"] = 78
	lib_ascii_ASCII["\117"] = 79
	lib_ascii_ASCII["\120"] = 80
	lib_ascii_ASCII["\121"] = 81
	lib_ascii_ASCII["\122"] = 82
	lib_ascii_ASCII["\123"] = 83
	lib_ascii_ASCII["\124"] = 84
	lib_ascii_ASCII["\125"] = 85
	lib_ascii_ASCII["\126"] = 86
	lib_ascii_ASCII["\127"] = 87
	lib_ascii_ASCII["\130"] = 88
	lib_ascii_ASCII["\131"] = 89
	lib_ascii_ASCII["\132"] = 90
	lib_ascii_ASCII["\133"] = 91
	lib_ascii_ASCII["\134"] = 92
	lib_ascii_ASCII["\135"] = 93
	lib_ascii_ASCII["\136"] = 94
	lib_ascii_ASCII["\137"] = 95
	lib_ascii_ASCII["\140"] = 96
	lib_ascii_ASCII["\141"] = 97
	lib_ascii_ASCII["\142"] = 98
	lib_ascii_ASCII["\143"] = 99
	lib_ascii_ASCII["\144"] = 100
	lib_ascii_ASCII["\145"] = 101
	lib_ascii_ASCII["\146"] = 102
	lib_ascii_ASCII["\147"] = 103
	lib_ascii_ASCII["\150"] = 104
	lib_ascii_ASCII["\151"] = 105
	lib_ascii_ASCII["\152"] = 106
	lib_ascii_ASCII["\153"] = 107
	lib_ascii_ASCII["\154"] = 108
	lib_ascii_ASCII["\155"] = 109
	lib_ascii_ASCII["\156"] = 110
	lib_ascii_ASCII["\157"] = 111
	lib_ascii_ASCII["\160"] = 112
	lib_ascii_ASCII["\161"] = 113
	lib_ascii_ASCII["\162"] = 114
	lib_ascii_ASCII["\163"] = 115
	lib_ascii_ASCII["\164"] = 116
	lib_ascii_ASCII["\165"] = 117
	lib_ascii_ASCII["\166"] = 118
	lib_ascii_ASCII["\167"] = 119
	lib_ascii_ASCII["\170"] = 120
	lib_ascii_ASCII["\171"] = 121
	lib_ascii_ASCII["\172"] = 122
	lib_ascii_ASCII["\173"] = 123
	lib_ascii_ASCII["\174"] = 124
	lib_ascii_ASCII["\175"] = 125
	lib_ascii_ASCII["\176"] = 126
	lib_ascii_ASCII["\177"] = 127
	lib_ascii_ASCII["\200"] = 128
	lib_ascii_ASCII["\201"] = 129
	lib_ascii_ASCII["\202"] = 130
	lib_ascii_ASCII["\203"] = 131
	lib_ascii_ASCII["\204"] = 132
	lib_ascii_ASCII["\205"] = 133
	lib_ascii_ASCII["\206"] = 134
	lib_ascii_ASCII["\207"] = 135
	lib_ascii_ASCII["\210"] = 136
	lib_ascii_ASCII["\211"] = 137
	lib_ascii_ASCII["\212"] = 138
	lib_ascii_ASCII["\213"] = 139
	lib_ascii_ASCII["\214"] = 140
	lib_ascii_ASCII["\215"] = 141
	lib_ascii_ASCII["\216"] = 142
	lib_ascii_ASCII["\217"] = 143
	lib_ascii_ASCII["\220"] = 144
	lib_ascii_ASCII["\221"] = 145
	lib_ascii_ASCII["\222"] = 146
	lib_ascii_ASCII["\223"] = 147
	lib_ascii_ASCII["\224"] = 148
	lib_ascii_ASCII["\225"] = 149
	lib_ascii_ASCII["\226"] = 150
	lib_ascii_ASCII["\227"] = 151
	lib_ascii_ASCII["\230"] = 152
	lib_ascii_ASCII["\231"] = 153
	lib_ascii_ASCII["\232"] = 154
	lib_ascii_ASCII["\233"] = 155
	lib_ascii_ASCII["\234"] = 156
	lib_ascii_ASCII["\235"] = 157
	lib_ascii_ASCII["\236"] = 158
	lib_ascii_ASCII["\237"] = 159
	lib_ascii_ASCII["\240"] = 160
	lib_ascii_ASCII["\241"] = 161
	lib_ascii_ASCII["\242"] = 162
	lib_ascii_ASCII["\243"] = 163
	lib_ascii_ASCII["\244"] = 164
	lib_ascii_ASCII["\245"] = 165
	lib_ascii_ASCII["\246"] = 166
	lib_ascii_ASCII["\247"] = 167
	lib_ascii_ASCII["\250"] = 168
	lib_ascii_ASCII["\251"] = 169
	lib_ascii_ASCII["\252"] = 170
	lib_ascii_ASCII["\253"] = 171
	lib_ascii_ASCII["\254"] = 172
	lib_ascii_ASCII["\255"] = 173
	lib_ascii_ASCII["\256"] = 174
	lib_ascii_ASCII["\257"] = 175
	lib_ascii_ASCII["\260"] = 176
	lib_ascii_ASCII["\261"] = 177
	lib_ascii_ASCII["\262"] = 178
	lib_ascii_ASCII["\263"] = 179
	lib_ascii_ASCII["\264"] = 180
	lib_ascii_ASCII["\265"] = 181
	lib_ascii_ASCII["\266"] = 182
	lib_ascii_ASCII["\267"] = 183
	lib_ascii_ASCII["\270"] = 184
	lib_ascii_ASCII["\271"] = 185
	lib_ascii_ASCII["\272"] = 186
	lib_ascii_ASCII["\273"] = 187
	lib_ascii_ASCII["\274"] = 188
	lib_ascii_ASCII["\275"] = 189
	lib_ascii_ASCII["\276"] = 190
	lib_ascii_ASCII["\277"] = 191
	lib_ascii_ASCII["\300"] = 192
	lib_ascii_ASCII["\301"] = 193
	lib_ascii_ASCII["\302"] = 194
	lib_ascii_ASCII["\303"] = 195
	lib_ascii_ASCII["\304"] = 196
	lib_ascii_ASCII["\305"] = 197
	lib_ascii_ASCII["\306"] = 198
	lib_ascii_ASCII["\307"] = 199
	lib_ascii_ASCII["\310"] = 200
	lib_ascii_ASCII["\311"] = 201
	lib_ascii_ASCII["\312"] = 202
	lib_ascii_ASCII["\313"] = 203
	lib_ascii_ASCII["\314"] = 204
	lib_ascii_ASCII["\315"] = 205
	lib_ascii_ASCII["\316"] = 206
	lib_ascii_ASCII["\317"] = 207
	lib_ascii_ASCII["\320"] = 208
	lib_ascii_ASCII["\321"] = 209
	lib_ascii_ASCII["\322"] = 210
	lib_ascii_ASCII["\323"] = 211
	lib_ascii_ASCII["\324"] = 212
	lib_ascii_ASCII["\325"] = 213
	lib_ascii_ASCII["\326"] = 214
	lib_ascii_ASCII["\327"] = 215
	lib_ascii_ASCII["\330"] = 216
	lib_ascii_ASCII["\331"] = 217
	lib_ascii_ASCII["\332"] = 218
	lib_ascii_ASCII["\333"] = 219
	lib_ascii_ASCII["\334"] = 220
	lib_ascii_ASCII["\335"] = 221
	lib_ascii_ASCII["\336"] = 222
	lib_ascii_ASCII["\337"] = 223
	lib_ascii_ASCII["\340"] = 224
	lib_ascii_ASCII["\341"] = 225
	lib_ascii_ASCII["\342"] = 226
	lib_ascii_ASCII["\343"] = 227
	lib_ascii_ASCII["\344"] = 228
	lib_ascii_ASCII["\345"] = 229
	lib_ascii_ASCII["\346"] = 230
	lib_ascii_ASCII["\347"] = 231
	lib_ascii_ASCII["\350"] = 232
	lib_ascii_ASCII["\351"] = 233
	lib_ascii_ASCII["\352"] = 234
	lib_ascii_ASCII["\353"] = 235
	lib_ascii_ASCII["\354"] = 236
	lib_ascii_ASCII["\355"] = 237
	lib_ascii_ASCII["\356"] = 238
	lib_ascii_ASCII["\357"] = 239
	lib_ascii_ASCII["\360"] = 240
	lib_ascii_ASCII["\361"] = 241
	lib_ascii_ASCII["\362"] = 242
	lib_ascii_ASCII["\363"] = 243
	lib_ascii_ASCII["\364"] = 244
	lib_ascii_ASCII["\365"] = 245
	lib_ascii_ASCII["\366"] = 246
	lib_ascii_ASCII["\367"] = 247
	lib_ascii_ASCII["\370"] = 248
	lib_ascii_ASCII["\371"] = 249
	lib_ascii_ASCII["\372"] = 250
	lib_ascii_ASCII["\373"] = 251
	lib_ascii_ASCII["\374"] = 252
	lib_ascii_ASCII["\375"] = 253
	lib_ascii_ASCII["\376"] = 254
	lib_ascii_ASCII["\377"] = 255
}