StoneCypher / fsl

Finite State Language specification
9 stars 1 forks source link

operator `kind` #1256

Open StoneCypher opened 1 year ago

StoneCypher commented 1 year ago

In the spirit of #100, but in the more modern notational viewpoint, we could declare an operator kind similar to operator state, which allowed us to declare a set of attributes on a kind. This is basically the equals-sign notation in the old issue (let's generate less sugar.)

kind input { shape: invtrapezium; fillcolor: cyan; color: black; };
kind processor { };
kind storage { };

state WebForm { kind: input; };
state TextMessage { kind: input; };
state PhoneAgent { kind: input; };
state Email { kind: input; };

state HelpDesk { kind: processor; };
state Warehouse { kind: processor; };

state Archival { kind: storage; };

[ WebForm TextMessage PhoneAgent Email ] -> Helpdesk;

HelpDesk -> Support -> Warehouse -> Archival;
HelpDesk -> Support -> Archival;
HelpDesk -> Warehouse -> Archival;
HelpDesk -> Archival;

Blocks #1257, and most of the thinking should go there