beast/tools/make_field.sh
2017-08-09 18:50:04 -07:00

23 lines
607 B
Bash
Executable File

#!/bin/sh
export LC_COLLATE=C
echo "// string constants"
echo ' "<unknown-field>",'
cat $1 | sort -f | uniq | sed 's/^/ \"/; s/$/\",/'
echo
echo "enum class field : unsigned short"
echo "{"
echo " unknown = 0,"
echo
#cat $1 | uniq | sort -f | sed 's/./\L&/g; s/^/\t/; s/$/,/'
cat $1 | sort -f | uniq | sed 's/\(.*\)/ \L\1,/; s/-/_/g'
echo "};"
echo
echo "// pairs"
#cat $1 | uniq | sort -f | sed 's/\(.*\)/\tmatch\(field::\L\1, \"\E\1\"\);/; s/-/_/'
cat $1 | sort -f | uniq | perl -nE 'chomp; $a=lc($_); $a=~s/-/_/g; say " match(field::$a, \"$_\");";' | tr -d "\015"