mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 17:51:28 +00:00
45 lines
985 B
Bash
45 lines
985 B
Bash
#!/bin/sh
|
|
|
|
if [ ! -r "$1" -o -z "$2" ]; then
|
|
echo "Usage: $0 headerfile classname"
|
|
fi
|
|
|
|
name=`basename "$1" .h`
|
|
name="perl_${name}"
|
|
|
|
echo "Starting conversion of $2" >&2
|
|
|
|
{
|
|
cat "$1.xs"
|
|
|
|
cat "$1" \
|
|
| sed -e 's/inline//g' -e 's/const//g' -e 's/virtual//g' \
|
|
-e 's/{.*}/;/g' -e 's#//.*$##g' \
|
|
-e 's/(void)/()/g' \
|
|
| tr -d '[&;]' \
|
|
| perl -p -e "s/^\\s+(.+)[ \\t]([a-zA-Z0-9_]*)\\(/&\$1&$2::\$2(/g" \
|
|
| tr '&' '\n'
|
|
|
|
} > tmp
|
|
|
|
{
|
|
|
|
xsubpp -typemap class.typemap tmp \
|
|
| sed -e "s/\"$2::/\"/g" \
|
|
-e 's/("\([a-zA-Z0-9_]*\)"/(strcpy(buf, "\1")/g' \
|
|
-e 's/ / /g' -e 's/ / /g' \
|
|
-e 's#char\* file = __FILE__;#char file[256];^ strncpy(file, __FILE__, 256);^ file[255] = '\0';^ ^ if(items != 1)^ fprintf(stderr, "boot_quest does not take any arguments.");^ char buf[128];^^ //add the strcpy stuff to get rid of const warnings....^^#g' \
|
|
-e 's/Ptr//g' \
|
|
-e 's/Mob__e/Mob::e/g' \
|
|
| tr '^' '\n' \
|
|
| grep -v "^#line"
|
|
|
|
echo "#endif //EMBPERL_XS_CLASSES"
|
|
echo
|
|
} > "$name.cpp"
|
|
|
|
|
|
#rm -f tmp
|
|
|
|
|