msc
In other words, it is a tool that can parse textual descriptions to create diagrams. These diagrams are created as text, which can be printed anywhere, and even piped through enscript to create some nice PostScript output.
The description files are very simple, and you can create them using your favorite text editor. The reason for using text as input for msc and for diagram output is simple: you can use diff to track differences between two designs, and even use patch to merge them (you know how this is important if you have ever worked in a real-life project, with code re-use).
-c integer --commentwidth=integer
-h --help
-m integer --messagewidth=integer
-p --pagebreak
-s --swapstyles
-t integer --taskwidth=integer
--version
Description files contain the apropriate information needed to create a message sequence chart. Lines starting with a # will be ignored and will not be echoed to the terminal. The description file must contain only one Title and only one Tasks keywords. Lines beginning with * will be treated as comments in the diagram, and will be printed breaking the vertical chart lines (see Example).
The general structure of a description file is:
Title:<put your title here> Tasks:<comma separated list of tasks(no spaces!)> <message_name>:<from task>:<to task>:<Comment> . . .
Here is an example of a description file:
# This does not get printed Title:MSC Example Diagram Tasks:Home,Work,Play Message1:Home:Play:This is a comment Message2:Play:Play:Sent to itself :::Only a comment func():Play:Work:function call *This can be used as a separator... Message4:Work:Home:
And doing msc example.msc generates:
MSC Example Diagram - example.msc
Home Work Play
| | |
Message1 |-------+------>| This is a comment
Message2 | | |< Sent to itself
| | | Only a comment
func() | |<======| function call
This can be used as a separator...
Message4 |<------| |
| | |
patch(1), diff(1), enscript(1).