hdis86-0.1: tools/gen_opcode.sh
#!/bin/sh -e
if [ -z "$1" ]; then
echo "Usage: $0 path/to/udis86-1.x/libudis86/itab.h" >&2
echo >&2
echo "Outputs the generated Opcode.hs on standard out." >&2
exit 1
fi
cat <<EOF
{-# OPTIONS_HADDOCK
hide #-}
{-# LANGUAGE
DeriveDataTypeable #-}
module Hdis86.Internal.Opcode where
-- generated by gen_opcode.sh, do not exit
import Data.Typeable ( Typeable )
import Data.Data ( Data )
data Opcode
EOF
PFX=" ="
grep '^ UD_' "$1" | sed 's/^ UD_//; s/,//' | \
while read inst; do
echo "$PFX $inst"
PFX=" |"
done
echo " deriving (Eq, Ord, Show, Read, Enum, Bounded, Typeable, Data)"