# KEHOME/bin/APIdocgen
# May/6/2003

# Generate MKE/MKR API documentation
# usage: APIdocgen
# outputs:
#	KEHOME/doc/APIbindef.txt		
#	KEHOME/doc/APIkedef.txt
#	KEHOME/doc/APIproceduredef.txt

. systype.env
case $systype in
Linux)	kehome="$KEHOME";;
Interix)kehome="$(winpath2unix "$KEHOME")";;
WinXP)	kehome="$KEHOME";;
Win98)	kehome="$KEHOME";;
esac
cd "$kehome"/doc

# Unicon procedure list
grep '^procedure ' ../src/*.icn			|
    grep -v 'OLD'				|
    grep -v 'OBSOLETE'				|
    sed 's/^.*:procedure //'			|
    sed 's/(/ isu procedure with label = [/'	|
    sed 's/).*$/];/'				|
    sort -u					> APIprocedure.ku
cat APIprocedure.ku				|
	sed 's/ isu procedure;/ is ?;/'		> APIprocedure.query


# definitions of KEHOME/bin commands
ke <<\EOF | deletecomment > APIbindef.txt
do read from kb/ke.def done;
bins := do ls od ../bin done;
every bin in $bins {
	$bin is ?;
};
exit;
EOF

# definitions of MKE commands and variables
ke <<\EOF | deletecomment > APIkedef.txt
do read from kb/ke.def done;
variables := ke has ?;
every var in $variables {
	$var is ?;
};
commands := ke do ? done;
every cmd in $commands {
	$cmd is ?;
};
exit;
EOF

# definitions of Unicon procedures
ke <<\EOF | deletecomment > APIproceduredef.txt
do read from APIprocedure.ku done;
do read from kb/procedure.def done;
every proc isu procedure {
	$proc is ?;
}:
exit;
EOF
