##############################################
# Categorize harpoon symbols.                #
# Author: Scott Pakin <[email protected]> #
##############################################

# ------------------------------ regular -------------------------------

# ... basic ...

[[rewrite]]
matches = "harpoons"
item = "harpoon"

[[rewrite]]
regex = '^(down|up)harpoon(ccw|cw|left|right)$'
item = "harpoon"

[[rewrite]]
regex = '^(left|right)harpoon(ccw|cw|down|up)$'
item = "harpoon"

[[rewrite]]
regex = '^[ns][ew]harpoon(ccw|cw|[ns][ew])$'
item = "harpoon"

[[rewrite]]
matches = ["varleftharp", "varrightharp"]
item = "harpoon"

[[rewrite]]
regex = '^long(var)?(left|right)harp(oon)?(up|down)?$'
item = ["harpoon", "long"]

# ... double ...

[[rewrite]]
matches = [
   "downdownharpoons",
   "downharpoonsleftright",
   "leftharpoonsupdown",
   "leftleftharpoons",
   "rightharpoonsupdown",
   "rightrightharpoons",
   "upharpoonsleftright",
   "upupharpoons"
]
item = ["harpoon", "double, same side"]

[[rewrite]]
matches = [
   "downupharpoons",
   "downupharpoonsleftright",
   "leftrightharpoons",
   "leftrightharpoonsdown",
   "leftrightharpoonsup",
   "neswharpoons",
   "nwseharpoons",
   "rightleftharpoons",
   "rightleftharpoonsdown",
   "rightleftharpoonsup",
   "senwharpoons",
   "swneharpoons",
   "updownharpoons",
   "updownharpoonsleftright"
]
item = ["harpoon", "double, opposite sides"]

[[rewrite]]
matches = [
   "leftrightharpoon",
   "leftrightharpoondownup",
   "leftrightharpoonupdown",
   "neswharpoonnwse",
   "neswharpoonsenw",
   "nwseharpoonnesw",
   "nwseharpoonswne",
   "rightleftharpoon",
   "updownharpoonleftright",
   "updownharpoonrightleft",
   "varleftrightharp",
   "varrightleftharp"
]
item = ["harpoon", "double ended, opposite sides"]

[[rewrite]]
matches = ["longvarleftrightharp", "longvarrightleftharp"]
item = ["harpoon", "double ended, opposite sides, long"]

[[rewrite]]
matches = [
   "leftrightharpoondowndown",
   "leftrightharpoonupup",
   "updownharpoonleftleft",
   "updownharpoonrightright"
]
item = ["harpoon", "double ended, same side"]

# ... barred ...

[[rewrite]]
matches = [
   "bardownharpoonleft",
   "bardownharpoonright",
   "barrightharpoondown",
   "barrightharpoonup",
   "leftharpoondownbar",
   "leftharpoonupbar",
   "upharpoonleftbar",
   "upharpoonrightbar"
]
item = ["harpoon", "barred tail"]

[[rewrite]]
matches = [
   "barupharpoonleft",
   "barupharpoonright",
   "barleftharpoondown",
   "barleftharpoonup",
   "downharpoonleftbar",
   "downharpoonrightbar",
   "rightharpoondownbar",
   "rightharpoonupbar"
]
item = ["harpoon", "barred head"]

[[rewrite]]
matches = [
   "barleftharpoon",
   "barrightharpoon",
   "dashleftharpoondown",
   "dashrightharpoondown",
   "leftbarharpoon",
   "leftharpoonupdash",
   "rightbarharpoon",
   "rightharpoonupdash"
]
item = ["harpoon", "barred, parallel"]

# ... extensible ...

[[rewrite]]
regex = '^x(var)?(left|right)harp(oon)?(up|down)?$'
item = ["harpoon", "extensible"]

[[rewrite]]
matches = [
   "autoleftrightharpoons",
   "autorightleftharpoons",
   "xleftrightharpoons",
   "xrightleftharpoons"
]
item = ["harpoon", "double, opposite sides, extensible"]

[[rewrite]]
matches = ["xvarleftrightharp", "xvarrightleftharp"]
item = ["harpoon", "double ended, opposite sides, extensible"]

# ------------------------------ negated -------------------------------

# ... basic ...

[[rewrite]]
regex = '^n(down|up)harpoon(ccw|cw|left|right)$'
item = ["harpoon", "negated"]

[[rewrite]]
regex = '^n(left|right)harpoon(ccw|cw|down|up)$'
item = ["harpoon", "negated"]

[[rewrite]]
regex = '^n[ns][ew]harpoon(ccw|cw|[ns][ew])$'
item = ["harpoon", "negated"]

# ... double ...

[[rewrite]]
matches = [
   "ndownupharpoons",
   "ndownupharpoonsleftright",
   "nleftrightharpoons",
   "nneswharpoons",
   "nnwseharpoons",
   "nsenwharpoons",
   "nswneharpoons",
   "nrightleftharpoons",
   "nupdownharpoons",
   "nupdownharpoonsleftright"
]
item = ["harpoon", "double, opposite sides, negated"]

[[rewrite]]
matches = [
   "nleftrightharpoondownup",
   "nleftrightharpoonupdown",
   "nneswharpoonnwse",
   "nneswharpoonsenw",
   "nnwseharpoonnesw",
   "nnwseharpoonswne",
   "nupdownharpoonleftright",
   "nupdownharpoonrightleft"
]
item = ["harpoon", "double ended, opposite sides, negated"]