I ended up using the following in VHDL for subprograms:
meta.block.procedure.specification.vhdl
meta.block.procedure.body.vhdl
meta.block.function.specification.vhdl
meta.block.funcitonl.body.vhdl
These seemed to fit because these are block declarative items. Separating the specification and body out is due to the fact that VHDl does have something analogous to a prototyping system. Anyway, I think there can be some value to languages that have specific subclasses of subprograms to further specify. Iâm not sure whether in my case meta.function
is any better than meta.block
. Iâll have to think about this. (Honestly I would prefer meta.subprogram
simply because Python has methods, Java has methods, C has functions, VHDL has functions and procedures, Pascal has functions and procedures, etc. Theyâre all loosely subprograms. But I suspect the ship has sailed on that one.)