smc takes a state machine stored in a .sm file and generates a State pattern in twelve programming languages. Includes: default transitions, transition args, transition guards, push/pop transitions and Entry/Exit actions. See User Manual for more info.