#!/usr/local/bin/perl while (<>) { /^([^ ]*) *(.*)$/; $classname = $1; $username = $2; STDERR << $classname ; if ((/CLASS/) || (/----/)) { print""; } else { @attribs = `bhgqdict -c "$classname" -a /usr/lpp/cicssm/data/bhgsm.dict`; print "\n\n/***************************************/\n"; print "\n class $classname\n { \t\t /* $username */ \n"; for (@attribs) { /^([^ ]*) *([^ ]*) *(.*)$/; $attrib = $1; $attr_type = $2; $username = $3; if ((/ATTRIBUTE/) || (/------/)) { print"\t\t\t /* Attributes */\n"; } else { print" $attr_type \t\t $attrib;\t/* $username */\n"; } } @allmethods = `bhgqdict -c "$classname" -m /usr/lpp/cicssm/data/bhgsm.dict`; for (@allmethods) { if ((/METHOD/) || (/-----------/)) { print"\t\t /* METHODS */\n"; } else { if (/(.*)/) { /^([^ ]*) *(.*)$/; $methodname = $1; $username = $2; @methodparm = `bhgqdict -c "$classname" -m "$methodname" -p /usr/lpp/cicssm/data/bhgsm.dict`; print"\t\t\t /* METHOD: $username */\n"; print " void\t $methodname("; $kommaflag = 0; for (@methodparm) { if ((/PARAM/) || (/----/)) { print""; } else { /^([^ ]*) *([^ ]*) *([^ ]*) *(.*)$/; $parmname = $1; $parmtype = $2; $direction = $3; $parmdescript = $4; if ($kommaflag == 1){ print ", "; } print"\n\t\t $parmtype\t $parmname\t /* $parmdescript */"; $kommaflag = 1; } } # for (@methodparm) } # if (/(.*)/) print");\n"; } # else } # for (@allmethods) @relations = `bhgqdict -c "$classname" -r /usr/lpp/cicssm/data/bhgsm.dict`; for (@relations) { if ((/RELATIONSHIP/) || (/-----------/)) { print"\t\t\t /* RELATIONSHIPS */\n"; } else { if (/(.*)/) { /^([+|-])([^ ]*) *([^ ]*) *(.*)$/; $plusminus = $1; $relname = $2; $relclass = $3; $reldesc = $4; print"\t\t\t /* $reldesc*/\n"; print" $relclass *\t $relname; \t /* $reldesc */\n"; } } # else } # for (@relations) print "\n }; /* end of class $classname */ \n"; # print "\n/******************************************/\n"; print ""; } }