mirror of
git://git.musl-libc.org/musl
synced 2024-12-24 23:52:48 +00:00
27 lines
482 B
Awk
27 lines
482 B
Awk
|
function hex2int(str, i) {
|
||
|
str = tolower(str)
|
||
|
|
||
|
for (i = 1; i <= 16; i++) {
|
||
|
char = substr("0123456789abcdef", i, 1)
|
||
|
lookup[char] = i-1
|
||
|
}
|
||
|
|
||
|
result = 0
|
||
|
for (i = 1; i <= length(str); i++) {
|
||
|
result = result * 16
|
||
|
char = substr(str, i, 1)
|
||
|
result = result + lookup[char]
|
||
|
}
|
||
|
return result
|
||
|
}
|
||
|
|
||
|
function parse_const(str) {
|
||
|
sign = sub(/^-/, "", str)
|
||
|
hex = sub(/^0x/, "", str)
|
||
|
if (hex)
|
||
|
n = hex2int(str)
|
||
|
else
|
||
|
n = str+0
|
||
|
return sign ? -n : n
|
||
|
}
|