mirror of
https://github.com/mii443/akaza.git
synced 2025-08-22 14:55:31 +00:00
219 lines
7.7 KiB
Perl
219 lines
7.7 KiB
Perl
use strict;
|
||
use warnings FATAL => "all";
|
||
use v5.10.0;
|
||
use utf8;
|
||
|
||
# romkan/azik.yml の生成スクリプト
|
||
|
||
binmode STDOUT, ":utf8";
|
||
binmode STDERR, ":utf8";
|
||
|
||
|
||
sub run {
|
||
my ($name, $s) = @_;
|
||
|
||
my @s = split /\n/, $s;
|
||
my @shiins = split /\s+/, shift @s;
|
||
if ($shiins[0] eq "") {
|
||
shift @shiins;
|
||
}
|
||
|
||
say " # $name";
|
||
for my $i (0..@shiins-1) {
|
||
# 「あ」行用の特別処置
|
||
$shiins[$i] = "" if $shiins[$i] eq "*";
|
||
}
|
||
|
||
for my $cols (@s) {
|
||
my @cols = split /\s+/, $cols;
|
||
my $boin = shift @cols;
|
||
for my $i (0..@cols-1) {
|
||
my $col = $cols[$i];
|
||
next if !defined($col) || $col eq "" || $col eq "*";
|
||
say " @{[$shiins[$i]]}$boin: $col";
|
||
}
|
||
}
|
||
say"";
|
||
}
|
||
|
||
say "---";
|
||
say "mapping:";
|
||
say " # generated by developers/azik.pl";
|
||
say " # http://hp.vector.co.jp/authors/VA002116/azik/azikinfo.htm";
|
||
|
||
run('清音(あ行〜わ行)', <<'EOT');
|
||
* k s t n h f m y r w
|
||
a あ か さ た な は ま や ら わ
|
||
i い き し ち に ひ み り
|
||
u う く す つ ぬ ふ ふ む ゆ る
|
||
e え け せ て ね へ め れ
|
||
o お こ そ と の ほ も よ ろ を
|
||
EOT
|
||
|
||
run('撥音拡張', <<'EOT');
|
||
k s t n h f m y r w
|
||
z かん さん たん なん はん ふぁん まん やん らん わん
|
||
n かん さん たん ん はん ふぁん * やん らん わん
|
||
k きん しん ちん にん ひん ふぃん みん りん うぃん
|
||
j くん すん つん ぬん ふん ふん むん ゆん るん
|
||
d けん せん てん ねん へん ふぇん めん れん うぇん
|
||
l こん そん とん のん ほん ふぉん もん よん ろん うぉん
|
||
EOT
|
||
|
||
|
||
run('二重母音拡張', <<'EOT');
|
||
k s t n h f m y r w
|
||
q かい さい たい ない はい ふぁい まい やい らい わい
|
||
h くう すう つう ぬう ふう ふう むう ゆう るう
|
||
w けい せい てい ねい へい ふぇい めい れい
|
||
p こう そう とう のう ほう ふぉー もう よう ろう うぉー
|
||
EOT
|
||
|
||
# 発音拡張キーのZは左手小指のため多少打ちにくい。このため、Nを発音拡張キーの互換キーとして割り当てている。(mnは例外的に、特殊拡張として【もの】が入力される)
|
||
run('撥音拡張互換キー', <<'EOT');
|
||
k s t n h f m y r w
|
||
n かん さん たん ん はん ふぁん もの やん らん わん
|
||
EOT
|
||
|
||
run('濁音、半濁音 撥音拡張、二重母音拡張', <<'EOT');
|
||
g z d b p
|
||
a が ざ だ ば ぱ
|
||
i ぎ じ ぢ び ぴ
|
||
u ぐ ず づ ぶ ぷ
|
||
e げ ぜ で べ ぺ
|
||
o ご ぞ ど ぼ ぽ
|
||
EOT
|
||
|
||
run('濁音、半濁音 撥音拡張、二重母音拡張', <<'EOT');
|
||
g z d b p
|
||
z がん ざん だん ばん ぱん
|
||
n がん ざん だん ばん ぱん
|
||
k ぎん じん ぢん びん ぴん
|
||
j ぐん ずん づん ぶん ぷん
|
||
d げん ぜん でん べん ぺん
|
||
l ごん ぞん どん ぼん ぽん
|
||
EOT
|
||
|
||
run('濁音、半濁音 撥音拡張、二重母音拡張', <<'EOT');
|
||
g z d b p
|
||
q がい ざい だい ばい ぱい
|
||
h ぐう ずう づう ぶう ぷう
|
||
w げい ぜい でい べい ぺい
|
||
p ごう ぞう どう ぼう ぽう
|
||
EOT
|
||
|
||
run('ザ行は打ちにくいので以下のようにしても打てるようにする。', <<'EOT');
|
||
z
|
||
c ざ
|
||
v ざい
|
||
x ぜい
|
||
EOT
|
||
|
||
run('拗音、拗音互換', <<'EOT');
|
||
ky kg sy x ty c ny ng hy hg my mg ry
|
||
a きゃ きゃ しゃ しゃ ちゃ ちゃ にゃ にゃ ひゃ ひゃ みゃ みゃ りゃ
|
||
u きゅ きゅ しゅ しゅ ちゅ ちゅ にゅ にゅ ひゅ ひゅ みゅ みゅ りゅ
|
||
e きぇ きぇ しぇ しぇ ちぇ ちぇ にぇ にぇ ひぇ ひぇ みぇ みぇ りぇ
|
||
o きょ きょ しょ しょ ちょ ちょ にょ にょ ひょ ひょ みょ みょ りょ
|
||
EOT
|
||
|
||
run('拗音、拗音互換', <<'EOT');
|
||
ky kg sy x ty c ny ng hy hg my mg ry
|
||
z きゃん きゃん しゃん しゃん ちゃん ちゃん にゃん にゃん ひゃん ひゃん みゃん みゃん りゃん
|
||
n きゃん きゃん しゃん しゃん ちゃん ちゃん にゃん にゃん ひゃん ひゃん みゃん みゃん りゃん
|
||
j きゅん きゅん しゅん しゅん ちゅん ちゅん にゅん にゅん ひゅん ひゅん みゅん みゅん りゅん
|
||
d きぇん きぇん しぇん しぇん ちぇん ちぇん にぇん にぇん ひぇん ひぇん みぇん みぇん りぇん
|
||
l きょん きょん しょん しょん ちょん ちょん にょん にょん ひょん ひょん みょん みょん りょん
|
||
EOT
|
||
|
||
run('拗音、拗音互換', <<'EOT');
|
||
ky kg sy x ty c ny ng hy hg my mg ry
|
||
q きゃい きゃい しゃい しゃい ちゃい ちゃい にゃい にゃい ひゃい ひゃい みゃい みゃい りゃい
|
||
h きゅう きゅう しゅう しゅう ちゅう ちゅう にゅう にゅう ひゅう ひゅう みゅう みゅう りゅう
|
||
w きぇい きぇい しぇい しぇい ちぇい ちぇい にぇい にぇい ひぇい ひぇい みぇい みぇい りぇい
|
||
p きょう きょう しょう しょう ちょう ちょう にょう にょう ひょう ひょう みょう みょう りょう
|
||
EOT
|
||
|
||
run('拗音 (濁音、半濁音)', <<'EOT');
|
||
gy zy j by py pg
|
||
a ぎゃ じゃ じゃ びゃ ぴゃ ぴゃ
|
||
u ぎゅ じゅ じゅ びゅ ぴゅ ぴゅ
|
||
e ぎぇ じぇ じぇ びぇ ぴぇ ぴぇ
|
||
o ぎょ じょ じょ ぴょ ぴょ ぴょ
|
||
EOT
|
||
|
||
run('拗音 (濁音、半濁音)', <<'EOT');
|
||
gy zy j by py pg
|
||
z ぎゃん じゃん じゃん びゃん ぴゃん ぴゃん
|
||
n ぎゃん じゃん じゃん びゃん ぴゃん ぴゃん
|
||
j ぎゅん じゅん じゅん びゅん ぴゅん ぴゅん
|
||
d ぎぇん じぇん じぇん びぇん ぴぇん ぴぇん
|
||
l ぎょん じょん じょん びょん ぴょん ぴょん
|
||
EOT
|
||
|
||
run('拗音 (濁音、半濁音)', <<'EOT');
|
||
gy zy j by py pg
|
||
q ぎゃい じゃい じゃい びゃい ぴゃい ぴゃい
|
||
h ぎゅう じゅう じゅう びゅう ぴゅう ぴゅう
|
||
w ぎぇい じぇい じぇい びぇい ぴぇい ぴぇい
|
||
p ぎょう じょう じょう びょう ぴょう ぴょう
|
||
EOT
|
||
|
||
run('拗音 (外来語、他)', <<'EOT');
|
||
f v tg dc w ws l ly
|
||
a ふぁ う゛ぁ ぁ ゃ
|
||
i ふぃ う゛ぃ てぃ でぃ うぃ ぃ
|
||
u ふ う゛ とぅ どぅ ぅ ゅ
|
||
e ふぇ う゛ぇ うぇ ぇ
|
||
o ふぉ う゛ぉ を うぉ ぉ ょ
|
||
EOT
|
||
|
||
# 撥音拡張、二重母音拡張
|
||
run('拗音 (外来語、他)', <<'EOT');
|
||
f v tg dc w ws l ly
|
||
z ふぁん う゛ぁん ぁ ゃ
|
||
k ふぃん う゛ぃん てぃん でぃん うぃん ぃん
|
||
j ふん う゛ん とぅん どぅん ぅん ゅん
|
||
d ふぇん う゛ぇん うぇん ぇん
|
||
l ふぉん う゛ぉん をん うぉん ぉん ょん
|
||
n ふぁん う゛ぁん ぁ ゃ
|
||
EOT
|
||
|
||
# 二重母音拡張
|
||
run('拗音 (外来語、他)', <<'EOT');
|
||
f v tg dc w ws l ly
|
||
q ふぁい う゛ぁい ぁい ゃい
|
||
h ふう う゛う とぅう どぅう ぅう ゅう
|
||
w ふぇい う゛ぇい うぇい ぇい
|
||
p ふぉお う゛ぉお をお うぉお ぉお ょお
|
||
EOT
|
||
|
||
say " # 促音、撥音、長音符";
|
||
say " \";\": っ";
|
||
say " q: ん";
|
||
say " \"-\": ー";
|
||
say " \":\": ー";
|
||
say "";
|
||
|
||
# 特殊拡張
|
||
my $t = <<'EOT';
|
||
KT こと ST した TT たち HT ひと
|
||
WT わた MN もの MS ます DS です
|
||
KM かも TM ため DM でも KR から
|
||
SR する TR たら NR なる YR よる
|
||
RR られ ZR ざる MT また TB たび
|
||
NB ねば BT びと GR がら GT ごと
|
||
NT にち DT だち WR われ
|
||
EOT
|
||
$t =~ tr/[A-Z]/[a-z]/;
|
||
say " # 特殊拡張";
|
||
for my $line (split /\n/, $t) {
|
||
my @cells = split /\s+/, $line;
|
||
while (@cells) {
|
||
my $k = shift @cells;
|
||
my $v = shift @cells;
|
||
say " $k: $v";
|
||
}
|
||
}
|
||
|