#!/usr/bin/perl while (<>) { if (s/^CASE\s+//) { @fields = split; $funcname = pop(@fields); $rettype = "@fields"; @modes = (); @types = (); @names = (); @outies = (); @callnames = (); $pre = "\n"; $post = ''; while (<>) { last unless /^[IO]+\s/; @fields = split(' '); push(@modes, shift(@fields)); push(@names, pop(@fields)); push(@types, "@fields"); } while (s/^<\s//) { $pre .= "\t $_"; $_ = <>; } while (s/^>\s//) { $post .= "\t $_"; $_ = <>; } $items = @names; $namelist = '$' . join(', $', @names); $namelist = '' if $namelist eq '$'; print <