lus2atg, oc2atg - automata visualisation |
lus2atg, oc2atg - automata visualisation
lus2atg file.lus node [options]
oc2atg file.oc [options]
oc2atg extracts basic information about the underlying automaton in the source file, and outputs this information in the atg format, suitable for the tool autograph;
Most of the information is lost: the atg file only contains the skeleton of the program. This skeleton consists of a set of states and transitions labelled by "input/output" presence conditions.
It is quite hard to compile a lustre program in such a way that the resulting oc program produces a meaningful atg automaton, so it is recommended to use the script lus2atg. Using this script, the Boolean part of the source program will be exactly reflected in the resulting automaton.
Labels are representing the input/output presence on a transition. Note that this information is relevant only if the oc program uses pure signals (see ec2oc). The lus2atg script automatically produces such a program. There are actually two styles for the labels: reactive machine style, and Boolean function style.
For the inputs, the default is to write +inname if the input is present, -inname if it is absent and ~inname for it is don't care.
For the output, only presence is represented by writing !outname (which means that the output is emited during the transition).
Exemple: +x+y-z~t/!a!b means that, for the transition to be taken, inputs x and y have to be true (i.e. present), z has to be false (i.e. absent), t and any other input (if it exist) can either true or false (don't care); as a consequence outputs a and b are true (emited), and any other output is false.
The label is made of the list of the input values (0 or 1) and the list of the corresponding outpt values, separated by a /. For instance, if the program has 2 inputs x, y and 1 output s, 10/1 means that the transition is taken when x is true, y is false, and that the output s is true.
Parts of the labels can be hiden.
lus2atg, oc2atg - automata visualisation |