File: hangul

package info (click to toggle)
tran 2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 140 kB
  • ctags: 7
  • sloc: perl: 187; makefile: 17
file content (35 lines) | stat: -rwxr-xr-x 1,058 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl -w
use strict;
use open ':locale';

my @lead=('g','gg','n','d','dd','r','m','b','bb','s','ss','','j','jj','c',
          'k','t','p','h');
my @vowel=('a','ae','ya','yae','eo','e','yeo','ye','o','wa','wae','oe','yo',
           'u','weo','we','wi','yu','eu','yi','i');
my @tail=('','g','gg','gs','n','nj','nh','d','l','lg','lm','lb','ls','lt',
          'lp','lh','m','b','bs','s','ss','ng','j','c','k','t','p','h');

sub u($) { return pack 'U', $_[0]; }

my ($x,$y,$z);

print "SCRIPT hangul\n";

print "\n#lone lead consonants\n";
for $x (0..$#lead)	{ $_=$lead[$x]; s/^$/*/;print u($x+0x1100),"\t>\t$_\n"; }
print "\n#lone vowels\n";
for $x (0..$#vowel)	{ $_=$vowel[$x];s/^$/*/;print u($x+0x1161),"\t>\t$_\n"; }
print "\n#lone tail consonants\n";
for $x (0..$#tail)	{ $_=$tail[$x]; s/^$/*/;print u($x+0x11A7),"\t>\t$_\n"; }

print "\n#composed hangul\n";
for $x (0..$#lead)
{
    for $y (0..$#vowel)
    {
        for $z (0..$#tail)
        {
            print u($x*588+$y*28+$z+0xAC00),"\t$lead[$x]$vowel[$y]$tail[$z]\n";
        }
    }
}