SMC takes a state machine stored in a .sm file and generates a State pattern in fourteen programming languages (C, C++, C#, [incr Tcl], Groovy, Java, Lua, Objective-C, Perl, PHP, Python, Ruby, Scala, VB.net). Includes: default transitions, transition args, transition guards, push/pop transitions and Entry/Exit actions. See all details on http://smc.sourceforge.net/.