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 | |
} |