import type { GrammarRule } from "#types/grammar.types"; export const COORDINATION_RULES: readonly GrammarRule[] = [ { grammar: ' ::= "AWAIT" \n ::= | | \n ::= "INTO" | ε', title: "Await", }, { grammar: ' ::= "PARALLEL" ":" + "END"', title: "Parallel" }, { grammar: ' ::= "SURFACE" ":" +\n ::= "RECORD" "subject" ":" * *\n ::= "ITEM" "TO" ":" \n ::= \n ::= "PARENT" | "SATISFIED_BY" | "BLOCKS" | "ANSWERS" | "REFUTES" | "SUPERSEDES"\n ::= "OPEN" | "BLOCKED" | "ABSORBED"\n ::= "WAIT" "ON" "AS" "INTO" \n ::= "BARRIER" "ON" \n ::= "SWAP" "AGAINST" \n ::= "participant" | "bounded" | \n ::= \n ::= "-" \n ::= "-" \n ::= \n ::= | \n ::= \n ::= \n ::= ', title: "Surface", }, { grammar: ' ::= "STATE_MACHINE" ":" + +\n ::= "STATE" \n\n\n ::= "TRANSITION" "FROM" "TO" \n"ON" \n\n\n ::= ":" | ε\n ::= "ENTRY" ":" + | ε\n ::= "EXIT" ":" + | ε\n ::= "GUARD" ":" | ε\n ::= ":" + | ε\n ::= \n ::= \n ::= \n ::= ', title: "State machine", }, { grammar: ' ::= "DAG" ":" +\n ::= | \n ::= "NODE" \n\n\n\n":" +\n ::= "PARALLEL_GROUP" ":" \n ::= ("," )*\n ::= ("," )*\n ::= ("," )*\n ::= ":" | ε\n ::= "DEPENDS_ON" "[" "]" | ε\n ::= "AFTER" | ε\n ::= "BEFORE" | ε\n ::= \n ::= ', title: "DAG", }, { grammar: ' ::= "PRIORITY_QUEUE" \n\n":"\n ::= \n| \n| \n| \n ::= "ENQUEUE" "TO" \n\n ::= "DEQUEUE" "FROM" \n\n ::= "PEEK" \n\n ::= "HEAPIFY" \n ::= \n| "(" ")" "→" \n ::= "COMPARE_BY" | ε\n ::= "PRIORITY" "=" | ε\n ::= "TO" | ε\n ::= \n ::= | \n ::= ', title: "Priority queue", }, { grammar: ' ::= \n| \n| \n| \n ::= "FROM" "COLLECT" "TO" \n ::= "FROM" "FIND" "TO" \n ::= "REFERENCE" \n ::= "LINK" "TO" \n ::= | \n ::= \n ::= \n ::= "#" | ε\n ::= | "*"\n ::= | \n ::= \n ::= \n ::= \n ::= "AS" | ε', title: "Cross reference", }, { grammar: ' ::= \n ::= | | | \n ::= | ε\n ::= "WITH" \n| "USING" \n ::= ("," )*\n ::= ":" \n| "=" \n| \n ::= \n ::= \n| \n| \n| \n| \n| \n ::= | ε\n ::= "->" \n| "INTO" \n| "AS" \n ::= ', title: "Semantic operation", }, ]; export const FLOWCHART_RULES: readonly GrammarRule[] = [ { grammar: ' ::= "FLOWCHART" ":" \n ::= "LAYOUT" | ε\n ::= + \n ::= | ε\n ::= "ON" "ERROR" ":" +\n ::= \n| \n| \n| \n| \n ::= \n ::= | \n ::= "[" "]"\n| "(" ")"\n| "{" "}"\n| "<" ">"\n| "((" "))"\n| "[[" "]]"\n ::= ":" | ε\n ::= | ε\n ::= ":" \n ::= +\n| "EVALUATE" \n| "EXECUTE" \n| "TRY" ":" + "CATCH" ":" +\n ::= "WITH" "STATE" + | ε\n ::= ":" "=" \n ::= \n ::= \n ::= \n ::= "→" | "↓" | "↑" | "←" | "↔"\n| "-->" | "--->" | "==>" | "-.->>"\n| "|"\n ::= ":" | ε\n ::= "/" +\n ::= \n ::= "→" \n ::= | \n ::= \n ::= + "◄" \n ::= \n ::= \n ::= "LOOP" "→" \n ::= \n ::= \n ::= "MAX" | ε\n ::= "process"\n| "decision"\n| "start_end"\n| "input_output"\n| "subprocess"\n| "database"\n ::= "vertical" | "horizontal" | "lr" | "rl" | "tb" | "bt"\n ::= ', title: "Flowchart", }, { grammar: ' ::= +\n ::= \n| \n| \n| \n ::= \n ::= "[" "]"\n| "(" ")"\n| "{" "}"\n| "<" ">"\n ::= "|"\n| "│"\n| "▼"\n| "▲"\n| "►"\n| "◄"\n ::= "/" "\\"\n| "▼" "▼"\n ::= "\\" "/"\n| "◄" "─" "┘"\n ::= *', title: "ASCII flowchart", }, { grammar: ' ::= "MERMAID" ":" \n ::= "flowchart" | "graph" | "sequence" | "class" | "state" | "er"\n ::= +\n ::= \n| \n| \n| \n ::= \n ::= \n ::= "[" "]"\n| "(" ")"\n| "{" "}"\n| "((" "))"\n| "[[" "]]"\n| "[/" "/]"\n| "[\\" "\\]"\n ::= | ε\n ::= \n ::= "-->" | "--->" | "==>" | "-.->" | "--"\n ::= "|" "|" | ε\n ::= "subgraph" + "end"\n ::= \n ::= "style" \n ::= ("," )*\n ::= ":" ', title: "Mermaid flowchart", }, ];