frame_transpiler
frame_transpiler copied to clipboard
Frame is a markdown language for creating state machines (automata) in Python as well as generating UML documentation.
``` $A |>| -> $B($) ^ $B [return_state:$] |done| -> $return_state ^ ``` ```
``` .. code-block:: :caption: Event Handler Continue Terminator fn main { var sys:# = #ContinueTerminatorDemo() sys.passMe1() sys.passMe2() } ```
``` fn main { #A() } #B ## ```
``` fn main { var hsm:# = #HSM_Preview() hsm.passMe1() hsm.passMe2() } #HSM_Preview -interface- passMe1 passMe2 -machine- $Child => $Parent |passMe1| print("handled in $Child") :> |passMe2| :> $Parent |passMe1| print("handled in...
Currently event name is hardwired to 'e' which disallows 'e' being used as an identifier. This example overwrites event e with an int. ``` def __fibonaccidemo_state_PrintNextFibonacciNumber(self, e): if e._message ==...
``` fn main { var alias:# = #AliasDemo() alias.start() alias.one_two_three() alias.stop() } #AliasDemo -interface- start @(">>") one_two_three @("1..2..3") stop @(` $Countdown ^ $Countdown |>| print("In $Countdown") ^ |`1..2..3`| print("Saw '1..2..3'")...
``` `import time` fn main { #Looper(>(1000000)) } #Looper [>[loops]] -machine- $Start |>| [loops] print("Starting") -> (loops, loops, time.time()) $A ^ $A |>| [total_loops, loops_left, start] loops_left == 0 ?...