Requires: Java 1.2 SE (Standard Edition) or better.
Download: http://sourceforge.net/projects/smc
Home Page: http://smc.sourceforge.net
=================================================================
What's New?
=================================================================
+ Modified push transition syntax to be:
<transname> <state1>/push(<state2>) {<actions>}
which means "transition to <state1> and then
immediately push to <state2>". The current
syntax:
<transname> push(<state2>) {<actions>}
is still valid and <state1> is assumed to be a "nil"
loopback transition followed by a push to <state2>.
I added this feature to handle the following
situation:
Waiting
{
Event1 push(Working) {}
Event2 push(Working) {}
// When returning from Event1's push, we want to
// do this ...
WorkDone(status: Status) Busy {}
// but returning from Event2's push, we want to
// do something different.
Workdone(status: Status) WaitAgain {}
}
There is no way to distinguish between these two pushes
using the pre-v. 1.3.2 syntax. But now:
Waiting
{
Event1 Event1Pop/push(Working) {}
Event2 Event2Pop/push(Working) {}
}
// This state handle's the Event1 pop ...
Event1Pop
{
WorkDone(status: Status) Busy {}
}
// and this state handle's the Event2 pop.
Event2Pop
{
Workdone(status: Status) WaitAgain {}
}
=================================================================
What is SMC?
=================================================================
SMC takes a state machine description (stored in a .sm file) and
generates State pattern classes in a target language (C++, Java
and Tcl are currently supported). SMC is a console-based app
written in Java which means SMC can run anywhere Java (1.2 or
better) can run. The download package includes an example
directory showing how SMC can used with C++, Java and Tcl
(requires [incr Tcl] package). The examples range from trivial to
GUI apps.
=================================================================
How can I learn more?
=================================================================
At http://smc.sourceforge.net. You can access the SMC
Programmer's Manual there as well. While you're there, check out
the SMC demo applet at http://smc.sourceforge.net/SmcDemo.htm.
=================================================================
Where can I get it?
=================================================================
SMC and the Programmer's Manual can be downloaded from
http://sourceforge.net/projects/smc. You can also use this
website to:
+ Ask questions (via the Public Forum's Help discussion)
+ Submit a bug.
+ Join a mailing list.
+ Access SMC documentation.
+ Access SMC's source code in the CVS repository.
(Note: in order to make full use of SourceForge capabilities,
you must be a SourceForge member. If you are not a member,
head over to http://sourceforge.net/account/register.php
and sign up. SourceForge membership is free - no money, no
requirements and NO SPAM! Membership has its benefits.)
If you have any problems, surf over to
http://sourceforge.net/forum/forum.php?forum_id=27865 and report
the problem. I will try and answer you via the Help forum as
quickly as I can.
Enjoy!
Charles Rapp
mailto:ra...@acm.org
[[Send Tcl/Tk announcements to tcl-an...@mitchell.org
Send administrivia to tcl-announ...@mitchell.org
Announcements archived at http://groups.yahoo.com/group/tcl_announce/
The primary Tcl/Tk archive is ftp://ftp.neosoft.com/pub/tcl/ ]]