about summary refs log blame commit diff stats
path: root/tools/expand_string_handle
blob: 0c739f65676a840a30c0a89be6358cb89e035a72 (plain) (tree)



















                                                                                            
#!/bin/sh
# Expand syntax sugar for SubX string literals and show the corresponding handle definition.
#
# The handle has a fake alloc-id; we're never going to try to reclaim global
# variables, we just sometimes need handles in them to satisfy type constraints.

INPUT=$(cat)
echo "    0x11/imm32/alloc-id:fake:payload"
echo "    # \"$INPUT\""

# print length in bytes
printf "    0x%x/imm32/size\n" $(echo -n $INPUT |wc -c)

# print ascii codes for each character in hex
echo -n "   "
for c in $(echo "$INPUT" |sed -e 's/./& /g')
do
  echo -n " 0x$(printf '%x' "'$c")/$c"
done
echo