JssmArrow:
| "->"
| "→"
| "=>"
| "⇒"
| "~>"
| "↛"
| "<-"
| "←"
| "<="
| "⇐"
| "<~"
| "↚"
| "<->"
| "↔"
| "<=>"
| "⇔"
| "<~>"
| "↮"
| "<-=>"
| "←⇒"
| "←=>"
| "<-⇒"
| "<-~>"
| "←↛"
| "←~>"
| "<-↛"
| "<=->"
| "⇐→"
| "⇐->"
| "<=→"
| "<=~>"
| "⇐↛"
| "⇐~>"
| "<=↛"
| "<~->"
| "↚→"
| "↚->"
| "<~→"
| "<~=>"
| "↚⇒"
| "↚=>"
| "<~⇒"
Every arrow token recognized by the FSL grammar — all 42 spellings. Each arrow encodes a direction (one-way left/right, or two-way) and a "kind" for each direction (
-legal,=main path,~forced-only). See the Language Reference docs for the full semantic table.Every arrow has an ASCII spelling and a unicode spelling, and each half of a two-way arrow may be spelled independently, so the two-way arrows also have mixed ASCII/unicode spellings (
←=>,<-⇒, and so on). All of them are accepted, by the grammar and by arrow_direction, arrow_left_kind, and arrow_right_kind.