Here are some of mine post processors for esprit:
Spinner - 3 axis, TOS WHQ13 - only 3 axis, DOOSAN HM-800 - 4 axis, MAKINO MC45 - 4 axis and HAAS UMC-750 - 5 axis.

DOOSAN and MAKINO are using macro variables to call tools and their length and radius compensations. Both of them are using sub programs on machine to calculate coordinate system transformation around B axis.
UMC-750 only uses macros for tool calls and compensations.
Spinner uses variables to call tools by name. Not by number.

I didn't write any of them. I just edited them.