Peter,
That'd give you an upper bound and a rough count. It's be thrown off by comment header blocks that ususally have something like
* this procedure calculates the number of days between spottings of Elvis at the local 7-11 in them.
>How about something like this:
>
>x1=UPPER(filetostr("MyProg.prg"))
>?"Number of fuunctions ",OCCURS("FUNC",x1)
>?"Number of procedures ",OCCURS("PROC",x1)