Flow DSL AST 从FBP到BPM * http://en.wikipedia.org/wiki/Flow-based_programming // Kind // IO // input // output // Node // name // Edge // source // target ```json { nodes: [ ], edges: [ ] } ``` ```rust enum Kind { } struct Node { id: i64, name: String, kind: Kind, } ``` ## Nodes * https://nodes.io/docs/getting-started/#what-nodes-is 0. Incoming trigger - connection from parent node 1. Outgoing trigger - connection to child nodes 2. Incoming parameter - with type color resulting in a colour picker widget in the inspector 3. Importing a package from npm (has to be added to the project first) 4. Trigger callback - this is usually called every frame 5. Reading properties provided by the parent node 6. Reading input parameter value 7. Main node code - drawing a rectangle with a given colour 8. Passing data further down to the child nodes ## Butterfly * https://github.com/alibaba/butterfly * https://butterfly-dag.gitee.io/butterfly-dag/demo/flow ## iMove * https://www.yuque.com/imove/blog * https://github.com/ykfe/imove ## logic-flow * http://logic-flow.org/ ## flowchart-fun https://github.com/tone-row/flowchart-fun https://js.cytoscape.org/ ## Wireflow https://github.com/vanila-io/wireflow https://github.com/ritz078/transform