local val
val="$1"; shift
- echo " XLAT(${val}),"
+ if [ -z "${val_type-}" ]; then
+ echo " XLAT(${val}),"
+ else
+ echo " XLAT_TYPE(${val_type}, ${val}),"
+ fi
}
print_xlat_pair()
val="$1"; shift
str="$1"; shift
- echo " XLAT_PAIR(${val}, \"${str}\"),"
+ if [ -z "${val_type-}" ]; then
+ echo " XLAT_PAIR(${val}, \"${str}\"),"
+ else
+ echo " XLAT_TYPE_PAIR(${val_type}, ${val}, \"${str}\"),"
+ fi
}
cond_xlat()
'#unterminated')
unterminated=1
;;
+ '#val_type '*)
+ # to be processed during 2nd pass
+ ;;
'#'*)
echo "${line}"
;;
fi
echo "const struct xlat ${name}[] = {"
- unconditional=
+ unconditional= val_type=
# 2nd pass: output everything.
while read line; do
LC_COLLATE=C
'#unterminated')
# processed during 1st pass
;;
+ '#val_type '*)
+ val_type="${line#\#val_type }"
+ ;;
[A-Z_]*) # symbolic constants
if [ -n "${unconditional}" ]; then
print_xlat "${line}"