#!/bin/sh set -e test $# -ge 3 lowercase () { printf '%s\n' "$*" | tr '[A-Z]' '[a-z]'; } symbols="$(lowercase "$1")" shift 1 printf 'static const char *\n' printf 'extract_symbol_%s(struct libsyscalls_symbol_printer_data *data, ' "$symbols" printf 'unsigned long long int *valuep, char *fallback_out) /* %i */\n' $# printf '{\n' printf ' switch (data->nr) {\n' i=0 for use; do printf ' case %i:\n' $(( i++ )) printf ' return extract_symbol_%s(data, valuep, fallback_out);\n' "$(lowercase "$use")" done printf ' default:\n' printf ' abort();\n' printf ' }\n' printf '}\n'