Source of unicode-table.inc.pl

use utf8;
+{

punctuation => {
	quoting  => [qw{. « » . ‹ › . ‘ ’ . “ ” . „ ‚ . ‟ ‛}],
	common   => [qw{
		. † ‡ • . § ¶ # . © ® ™
		. ° ′ ″ . − × ÷ . ± ² √
		. ¹ ⁿ ³ . ¼ ½ ¾ . 年 月 日
	}],
	marks    => [qw{. ¿ … 〃 . ‽ · ※ }],
	spacing  => [
		split / +/, join ' ',
		". — – ‒  \x{2011} \x{2010}  \x{AD} \x{200D}",  # dashes
		". \x{2003} \x{2002} \x{2007}  \x{A0} \x{2009}  \x{200B} \x{200C}",  # spaces
		# em en figure  nobreak hyphen  break joiner
	],
	version  => [qw{. α β . ℵ ℶ }],
},

symbols => {
	binary   => [qw{. ⚋ ⚊ . ⚐ ⚑ . ☺ ☹ . ✓ ✗ . ✔ ✘ . ◄ ► }], # opposites
	currency => [qw{. ¤ ¢ ₥ € £ ₹ $ ¥ . ฿ ₫ ₭ ₺ ₦ ₽ ₩ ₪}],
	cards    => [
		qw{. ♢ ♡ ♠ ♣ . ♦ ♥ ♤ ♧ }, # diamonds, hearts, clubs, spades
#		qw{. 🔔 ❀ -⛨ 🌰 }, # bells, roses, shields, acorns
#		qw{. ⚚ ⚘ ⚔ ⚒ }, # merchant, clergy, nobility, peasant
#		qw{. ❂ 🏆 ⚔ -🔧 }, # coins, cups, swords, clubs
		qw{. 🜃 🜄 🜂 🜁 }, # earth, water, fire, air
		qw{. ☷ ☵ ☲ ☰ }, # earth, water, fire, heaven [cq ☴ wind]
		qw{. 土 水 火 金 }, # earth, water, fire, metal
	],
	chess    => [qw{. ♙ ♘ ♗ ♖ ♕ ♔ . ♟ ♞ ♝ ♜ ♛ ♚ }],
	signs1   => [qw{. ☮ ☯ ☻ ♪ ♲ ♿ }],
	signs2   => [qw{. ⚠ ☡ ☠}],
	communic => [ # note, mail, fax, phone, alt phone
		qw{. ✂ ✉ ℻ ☎ 📱 }, # scissors, envelope, fax sign, black phone, mobile
		qw{. 📎 📯 📠 ☏ 📞 }, # paperclip, postal horn, fax machine, white phone, receiver
	],
	trinity  => [qw{. ✊ ✋ ✌ . 🚹 🐜 👽 }], # rock, paper, scissors; terran, protoss, zerg
	solar    => [qw{. ☉ ☿ ♀ ♁ ♂ ♃ ♄ ⛢ ♆ }], # sun, mercury-neptune
	minorplanets => [qw{. ⚳ ⚴ ⚵ ⚶ ⚷ ♇ }], # 1ceres, 2pallas, 3juno, 4vesta, 2060chiron, 134340pluto
	zodiac   => [
		qw{. ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ }, # western signs
		qw{. 寅 卯 辰 巳 午 未 申 酉 戌 亥 子 丑 }, # chinese signs (earthly branches)
		qw{. 虎 兔 龍 蛇 馬 羊 猴 雞 狗 豬 鼠 牛 }, # chinese names
		qw{. 🐅 🐇 🐉 🐍 🐎 🐐 🐒 🐓 🐕 🐖 🐀 🐂 }, # chinese animals
		qw{. 🐏 🐂 👬 -🍤 -🐅 -👰 ⚖ -♏ 🎯 🐐 🚾 🐟 }, # western signs
	],
	harvey   => [qw{. ○ ◔ ◑ ◕ ● }],
},

keys => {
	spacing  => [qw{. ⇥ ⇤ . ␣ ⌫ }], # (fw and back) tab, char
	editing  => [qw{. ⎀ ⇱ ⇞ . ⌦ ⇲ ⇟ }], # ins, home, pgup; del, end, pgdn
	modifier => [qw{. ⇪ ⇯ ⇭ . ⇧ ⇮ № }], # (lock and select) shift, l3, num
	control  => [qw{. ⎈ ⌥ ⌘ ⎄ }], # ctrl, option, cmd, compose
	command  => [qw{. ↵ ⎋ ⎉ ⎊ }], # enter, esc, pause, break
	replace  => [qw{. � ␦ }], # substitute char, #2
	player   => [qw{. ► ⏩ ⏭ ◼ ⚫ . ◄ ⏪ ⏮ ⏏ -❚❚ }], # play, fast, skip, stop, record
	android  => [qw{. ↩ ⌂ ❐ ⋮ . 🔍 -⌽ 📞 🔊 }], # back, home, windows, menu; search, power, receive, sound
	android4 => [qw{. ◁ ⚪ ◻ ⋮ }], # back, home, recent, menu
	ps       => [qw{. ○ ☓ □ △ . ⦾ ⮾ 🟗 🟕 }], # circle, cross, square, triangle
	gamepad  => [qw{. Ⓐ Ⓑ ◭ ◮ }], # A, B, L1, R1
},

math => {
	equal    => [qw{. ∼ ≈ ≅ ≡ ∃ . ≁ ≉ ≇ ≢ ∄ }],
	size     => [qw{. ≪ < ≤ \= ≥ \> ≫ . - ≮ ≰ ≠ ≱ ≯ - }],
	set      => [qw{. ∈ ⊂ ⊆ ∀ ⊇ ⊃ ∋ ∪ . ∉ ⊄ ⊈ ∅ ⊉ ⊅ ∌ ∩ }],
	logic    => [qw{. ∧ ∨ ⊻ ⊥ ¬ . ⊼ ⊽ ↔ ⊤ - }], # and, or, xor, falsum, not; nand, nor, iff, tee

	constant => [qw{. ℝ πϖ ℯ φ ϑ ∂ ℵ }],
	predicate=> [qw{. ∴ ∵ }],
	complex  => [qw{. ℂ iℑ }],
	number   => [qw{. ℕ ∞ ℤ ℚ ℝℜ ℂ ‰ ℘ }],
#	                  natural inf int rational 
#					  Θ
	function => [qw{. ⌈ ⌉ . ⌊ ⌋ . ƒ ∑ ∏ ∫ ∇ ∝ }],
},

arrows => {
	single   => [qw{. ↖ ↑ ↗ ↔ . ← - → ↕ . ↙ ↓ ↘ - }],
	double   => [qw{. ⇖ ⇑ ⇗ ⇔ . ⇐ - ⇒ ⇕ . ⇙ ⇓ ⇘ - }],
	white    => [qw{. ⬁ ⇧ ⬀ ⬄ . ⇦ - ⇨ ⇳ . ⬃ ⇩ ⬂ - }],
	black    => [qw{. ⬉ ⬆ ⬈ ⬌ . ⬅ - ➡ ⬍ . ⬋ ⬇ ⬊ - }],
	triangle => [qw{. ⭦ ⭡ ⭧ ⭤ . ⭠ - ⭢ ⭥ . ⭩ ⭣ ⭨ - }],
	block    => [qw{. ◩ ⬒ ⬔   . ◧ □ ◨   . ⬕ ⬓ ◪   }],
	blacktri => [qw{. ◤ ▲ ◥   . ◀ ◆ ▶   . ◣ ▼ ◢   }],
	whitetri => [qw{. ◸ △ ◹   . ◁ ◇ ▷   . ◺ ▽ ◿   }],
	barb     => [qw{. 🡬 🡩 🡭   . 🡨 - 🡪   . 🡯 🡫 🡮   }],
	dash     => [qw{. ⇢ ⇣ . ⇡ ⇠ }],
	twohead  => [qw{. ↠ ↡ . ↟ ↞ }],
	frombar  => [qw{. ↦ ↧ . ↥ ↤ }],
	  tobar  => [qw{. ⇥ ⤓ . ⤒ ⇤ }],
	 stroke  => [qw{. ⇸ ⤈ . ⤉ ⇷ }],
	dstroke  => [qw{. ⇻ ⇟ . ⇞ ⇺ }],
	pair     => [qw{. ⇉ ⇊ . ⇈ ⇇ }],
	both     => [qw{. ⇄ ⇅ . ⇵ ⇆ }],
	triple   => [qw{. ⇛ ⤊ . ⤋ ⇚ }],
	quad     => [qw{. ⭆ ⟱ . ⟰ ⭅ }],
	    tip  => [qw{. ↱ ⬎ . ⬑ ↲ }],
	antitip  => [qw{. ⬐ ↰ . ↳ ⬏ }],
	halfwidth=> [qw{. → ↓ . ↑ ← }],
	barbout  => [qw{. ⇀ ⇂ . ↿ ↽ }],
	barbin   => [qw{. ⇁ ⇃ . ↾ ↼ }],
},

lines => {
	double   => [qw{. ╔ ╦ ╗ ═ . ╠ ╬ ╣ ║ . ╚ ╩ ╝ - }],
	doubleh  => [qw{. ╒ ╤ ╕   . ╞ ╪ ╡   . ╘ ╧ ╛   }],
	doublev  => [qw{. ╓ ╥ ╖   . ╟ ╫ ╢   . ╙ ╨ ╜   }],
	single   => [qw{. ┌ ┬ ┐   . ├ ┼ ┤   . └ ┴ ┘   }],
	heavy    => [qw{. ┏ ┳ ┓   . ┣ ╋ ┫   . ┗ ┻ ┛   }],
	heavyh   => [qw{. ┍ ┯ ┑   . ┝ ┿ ┥   . ┕ ┷ ┙   }],
	heavyv   => [qw{. ┎ ┰ ┒   . ┠ ╂ ┨   . ┖ ┸ ┚   }],
	straight => [qw{
		. ╴ ─ ╌ ┄ ┈ ╶ ╾
		. ╸ ━ ╍ ┅ ┉ ╺ ╼
		. ╵ │ ╎ ┆ ┊ ╷ ╿
		. ╹ ┃ ╏ ┇ ┋ ╻ ╽
	}],
	curved   => [qw{. ╭ ╮ . ╰ ╯ }],
	diagonal => [qw{. ╱ ╳ ╲ }],
	# ┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊
},

block => {
	square   => [qw{. □ ▣ ■ . ▤ ▦ ▥ . ▧ ▩ ▨}],
	shades   => [qw{. ░ . ▒ . ▓ }],
	fill4    => [qw{. ▘ ▀ ▝ . ▌ █ ▐ . ▖ ▄ ▗ }],
	fill4i   => [qw{. ▛ ▚ ▟ . ▙ ▞ ▜ }],
	fill8    => [qw{. ▁ ▂ ▃ ▄ ▅ ▆ ▇ ▔ . ▏ ▎ ▍ ▌ ▋ ▊ ▉ ▕ }],
	colour   => [qw{. 🟫 🟥 🟧 🟨 🟩 🟦 🟪}],
},

latin => {
	sample   => [qw{
		. å ä ö ü ß
		. ā æ ø ű ſ
		. á è õ û ç þ
		. ă ę œ ů š ð
		. ı ė º ư ș đ
	}],
	vowels   => [qw{
		. á é í ó ú ý
		. â ê î ô û ŷ
		. à è ì ò ù ỳ
		. ã ẽ ĩ õ ũ ỹ
		. ä ë ï ö ü ÿ
		. æ & ij œ ᵫ -
		. å - ı ⱺ ů ẙ
		. ă ĕ ĭ ŏ ŭ -
		. ǎ ě ǐ ǒ ǔ -
		. ą ę į ǫ ų -
	}],
	westeuro => [qw{
		. ç ð ñ ß þ
	}],
	easteuro => [qw{
		. č ď ľ ň ř š ť ž
		. ć đ ł ń ŕ ś ŧ ź ż
	}],
	uncommon => [qw{
		.>Englisc   æ ð ē ȝ œ þ ƿ
		.>Sámi      á č đ ŋ š ŧ ž
		.>Slavic    ą ě ł ů ź ż ž
		.>Türkçe    ç ğ ı İ ö ş ü
		.>Español   ñ á é í ó ú ü
		.>Română    ă â î ș ț
		.>Esperanto ª ĉ ĝ ĥ ĵ ŝ ŭ
	}],
},

ipa => {
	cons => [qw{
		- >Labial >>>Coronal >>Dorsal >>Laryngeal >
		- BiL:Bilabial LD:Labiodental D:Dental Alv:Alveolar PA:Postalveolar
		  Rf:Retroflex Pal:Palatal Vel:Velar Uv:Uvular Ph:Pharyngeal
		  EG:Epiglottal Gl:Glottal
		.>Plosive                   p  -ȹ >  >  t  ʈ  c  k  q  -  ʡ  ʔ
		.>Voiced_Plosive            b  -ȸ >  >  d  ɖ  ɟ  ɡ  ɢ  =  =  =
		.>Nasal                     m  ɱ  >  >  n  ɳ  ɲ  ŋ  ɴ  =  =  =
		.>Trill                     ʙ  -  >  >  r  -  -  =  ʀ  -  -я =
		.>Tap/flap                 -ⱳ  ⱱ  >  >  ɾ  ɽ  - -ɡ̆  ɢ̆  >  -ʡ̯ =
		.>Fricative                 ɸ  f  θ  s  ʃ  ʂ  ç  x  χ  ħ  ʜ  h
		.>Voiced_fricative          β  v  ð  z  ʒ  ʐ  ʝ  ɣ  ʁ  ʕ  ʢ  ɦ
		.>Lateral_fricative         =  =  >  >  ɬ  ꞎ -𝼆 -Ɬ  -  =  =  =
		.>Voiced_lateral_fricative  =  =  >  >  ɮ -𝼅  -  -  -  =  =  =
		.>Approximant               -  ʋ  >  >  ɹ  ɻ  j  ɰ  -  -ʕ̞ =  =
		.>Lateral_approximant       =  = -l̪  >  l  ɭ  ʎ  ʟ -ʟ̠  =  =  =
		.>Click                     ʘ  -  ǀ  ǁ  ǃ -‼  ǂ -ʞ  -  =  =  =
		.>Implosive                 ɓ  ɗ̪  >  >  ɗ -ᶑ  ʄ  ɠ  ʛ  =  =  =
		.>Articulation              ʷ  ᶹ   ̪   ͇  -  ˞  ʲ  ˠ   ̴  >  ˤ  ʰ
	}], #TODO: > Labial  > > > Coronal  > Dorsal  > > Laryngeal
	consco => [chr(865), qw{
		co:coarticulated .>sç ɕ .>zʝ ʑ .>ʃx ɧ .>jʷ ɥ .>lˠ ɫ .>hw̥ ʍ .>ɰʷ w
	}],
	vowels => [(
		'-',
		map { substr($_, 0, 1).':'.$_, substr($_, 0, 1)." r:$_ rounded" }
		qw{Front Central Back}
	), qw{
		.>Close      i y  ɨ ʉ  ɯ u
		.>Near-close ɪ ʏ -ᵻ -ᵿ -ω ʊ
		.>Close-mid  e ø  ɘ ɵ  ɤ o
		.>Mid       -ᴇ -  ə - - -ⱺ
		.>Open-mid   ɛ œ  ɜ ɞ  ʌ ɔ
		.>Near-open  æ -  ɐ -  - -
		.>Open       a ɶ -ä -ɒ̈ ɑ ɒ
	}],
	tones => [qw{
		.>Upstep     > ꜛ
		.>Higher     ˥  ̋
		.>High       ˦  ́
		.>Mid        ˧  ̄
		.>Low        ˨  ̀
		.>Lower      ˩  ̏
		.>Downstep   > ꜜ
	}],
	contours => [qw{
		-         >Rising >Falling
		.>High    ˧˥   ᷄   ˥˧   ᷇
		.>Rising  ˩˥   ̌   ˧˦˩  ᷈
		.>Falling ˨˩˦  ᷉   ˥˩   ̂
		.>Low     ˩˧   ᷅   ˧˩   ᷆
	}], #TODO: annotate Rising-Falling as Peaking, Falling-Rising as Dipping
	supraseg => [qw{
		. ˌ ˈ ˈˈ
		. ̆ ˑ ː
		. ‿ | ‖
	}],
	diacritics => [
		'.' => (map chr, 809, 781, 815, 785), # syllabic
		'.' => (map chr, '>', 'ʰ', '>', 794), # aspirated
		'.' => (map chr, 771, 'ⁿ', 734, 'ˡ'), # nasal/rhotic/lateral
		'.' => (map chr, '>', 812, 805, 778), # voiced
		'.' => (map chr, '>', 804, '>', 816), # breathy
		'.' => (map chr, 810, 838, '>', 828), # dental
		'.' => (map chr, '>', 826, '>', 827), # apical
		'.' => (map chr, 799,6856, 800, 772), # advanced
		'.' => (map chr, '>', 776, 829,7498), # centralized
		'.' => (map chr, 797, 724, 798, 725), # raised
		'.' => (map chr, 825, 855, 796, 849), # rounding
		'.' => (map chr, '>', 'ʷ', '>', 'ʲ'),
		'.' => (map chr, 'ˠ', 'ˤ', '>', 820), # velar/pharyngeal
		'.' => (map chr, 792, '꭪', 793, '꭫'), # tounge root
	],
},

japanese => {
	hira => [qw{
		  - A  I  U  E  O  _
		.>  あ い う え お =
		.>K か き く け こ =
		.>S さ し す せ そ =
		.>T た ち つ て と =
		.>N な に ぬ ね の ん
		.>H は ひ ふ へ ほ =
		.>M ま み む め も =
		.>Y や =  ゆ =  よ =
		.>R ら り る れ ろ =
		.>W わ -ゐ = -ゑ を =
	}],
	hiraderiv => [qw{
		  - A  I  U  E  O
		.>G が ぎ ぐ げ ご
		.>Z ざ じ ず ぜ ぞ
		.>D だ ぢ づ で ど
		.>B ば び ぶ べ ぼ
		.>P ぱ ぴ ぷ ぺ ぽ
	}],
	kata => [qw{
		  - A  I  U  E  O  _
		.>  ア イ ウ エ オ ー
		.>K カ キ ク ケ コ =
		.>S サ シ ス セ ソ =
		.>T タ チ ツ テ ト =
		.>N ナ ニ ヌ ネ ノ ン
		.>H ハ ヒ フ ヘ ホ =
		.>M マ ミ ム メ モ =
		.>Y ヤ -  ユ -  ヨ =
		.>R ラ リ ル レ ロ =
		.>W ワ ヰ -  ヱ ヲ =
	}],
	kataderiv => [qw{
		  - A  I  U  E  O
		.>G ガ ギ グ ゲ ゴ
		.>Z ザ ジ ズ ゼ ゾ
		.>D ダ ヂ ヅ デ ド
		.>B バ ビ ブ ベ ボ
		.>P パ ピ プ ペ ポ
		.>V ヷ ヸ ヴ ヹ ヺ
	}],
},

}