summaryrefslogtreecommitdiff
path: root/src/gen_classes.sh
blob: dc5847de4dc3a37dd79e28ffbd0787f2c6a7e33a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh -e

CLASSES=
SOURCES=

while test -n "$1"; do
	SOURCES="$SOURCES $1"
	CLASSES="$CLASSES `echo "$1" | sed 's/\.cxx//'`"
	shift
done

echo '# 1 "classes.h"'
cat classes.h


for i in $CLASSES; do
	echo "class $i;"
done

for i in $SOURCES; do
	cpp $CPPFLAGS $i |
		sed 's/public/public:/' |
		sed 's/protected/protected:/' |
		sed 's/private/private:/' |
		sed 's/extends/:public/'
done


echo 'extern "C" {'

cpp main.c

echo '}'