( / ^ / ( ____ __ '_ _ _____/ __ ____ ' \)|_)_)\)| ) |(_(_|/ \)| )| ) )| (_| (_| |\_/ |
#!/usr/local/bin/perl ########################################################### # # / ^ # __ _ _ _ _ __ ____ # | )(_(_|(_)\) : |_)/ # | ___| (_ | \_- # # ########################################################### %letter = ( '0' => " \n". "/\\\n". "\\/\n". " \n", '1' => " \n". "o\n". " \n". " \n", '2' => " \n". "o\n". "o\n". " \n", '3' => " \n". "o\n". "o\n". "o\n", '4' => "o\n". "o\n". "o\n". "o\n", '5' => "|\n". "|\n". "|\n". "|\n", '6' => " |\n". "o|\n". " |\n". " |\n", '7' => " |\n". "o|\n". "o|\n". " |\n", '8' => " |\n". "o|\n". "o|\n". "o|\n", '9' => "o|\n". "o|\n". "o|\n". "o|\n", '!' => " \n". " \n". "::\n". " \n", "\"" => "``\n". " \n". " \n". " \n", '.' => " \n". " \n". " : \n". " \n", '-' => " \n". "-\n". "-\n". " \n", ' ' => " \n". " \n". " \n". " \n", 'A' => " \n". "^\n". "|\n". " \n", 'B' => " \n". "____ \n" . "|_)_)\n". "| \n", 'C' => " \n". "_ _\n". "(_|\n". " |\n", 'CH' => " |\n". "_ |\n". "(_|\n". " \n", 'D' => " \n". "____ \n". "| ) )\n". "| \n", 'DH' => "| \n". "|___ \n". "| ) )\n". " \n", 'THE' => "| \n". "|___ \n". "| ) )\n". "| \n", 'E' => " \n". "'\n". "|\n". " \n", 'F' => "| \n". "|_ \n". "|_)\n". " \n", 'OF' => "| \n". "|_ \n". "|_)\n". "| \n", 'G' => " \n". "_ _ _\n". "(_(_|\n". " |\n", 'H' => " \n". "(\\ \n". " /)\n". " \n", 'I' => " \n". ".\n". "|\n". " \n", 'J' => " |\n". "_ _ |\n". "(_(_|\n". " \n", 'K' => " \n". "_ _\n". "(_|\n". " |\n", 'L' => " \n". "____\n". "/ \n". "\\_/ \n", 'M' => " \n". "____ \n". "|_)_)\n". " \n", 'MP' => " \n". "__ \n". "|_)\n". "|_ \n", 'MB' => " \n". "____ \n". "|_)_)\n". "|___ \n", 'N' => " \n". "____ \n". "| ) )\n". " \n", 'NK' => " \n". " _ _\n". " (_|\n". " _|\n", 'NG' => " \n". "_ _ _\n". "(_(_|\n". " ___|\n", 'O' => " _\n". "( \n". "| \n". " \n", 'OU' => " _ \n". "( )\n". " / \n". " \\ \n", 'P' => " \n". "__ \n". "|_)\n". "| \n", 'Q' => " \n". "___\n". "(_|\n". " |\n", 'R' => " \n". " \n". "\\)\n". "(_\n", 'S' => " /\n". "/ \n". "\\)\n". " \n", 'SH' => "/ \n". "\\)\n". "\\)\n". " \n", 'T' => " \n". "__ \n". "| )\n". "| \n", 'TH' => "| \n". "|_ \n". "| )\n". " \n", 'U' => "_ \n". " )\n". " |\n". " \n", 'V' => "| \n". "|___ \n". "|_)_)\n". " \n", 'W' => " \n". " _ \n". "(_)\n". " \n", 'X' => " \n". "_ _ \n". "(_| \n". " |)\n", 'Y' => " \n". "_ \n". "/)\n". " \n", 'Z' => " \n". "(\\\n". " /\n". "/ \n", ); %vow = ( 'A', '^', 'E', '/', 'I', '.', 'O', '(', 'U', ')'); while($msg = shift) { @out = (); $msg =~ tr/a-z/A-Z/; @msg = split('', $msg); $msg = join(':', @msg); # # do some grouping # $msg =~ s/O:U/OU/g; $msg =~ s/ :T:H:E: / :THE: /g; $msg =~ s/^T:H:E: /THE: /g; $msg =~ s/T:H/TH/g; $msg =~ s/D:H/DH/g; $msg =~ s/S:H/SH/g; $msg =~ s/C:H/CH/g; $msg =~ s/M:B/MB/g; $msg =~ s/M:P/MP/g; $msg =~ s/N:K/NK/g; $msg =~ s/N:G/NG/g; $msg =~ s/([AEIOU]):([BCDFGHJKLMNPQRSTVWXYZ])/$1$2/g; @msg = split(':', $msg); $vowel = 0; foreach $dude (@msg) { if ($letter{$dude}) # it's in the database { @l = split("\n", $letter{$dude}); for ($j = 0; $j < 4; $j++) { $out[$j] .= $l[$j]; } } elsif ($dude =~ /([AEIOU])([BCDFGHJKLMNPQRSTVWXYZ]+)/) # got a v +owel { @l = &vowelize($1, $2); for ($j = 0; $j < 4; $j++) { $out[$j] .= $l[$j]; } } } print "\n"; print join("\n", @out); print "\n"; } # # vowelize: superimpose a vowel mark over a consonant # sub vowelize { local($vowel, $consonant) = @_; $line = 0; @consonant = split("\n", $letter{$consonant}); $vowelMark = $vow{$vowel}; @oldline = split('', $consonant[$line]); splice(@oldline, 1, 1, $vowelMark); $consonant[$line] = join('', @oldline); return @consonant; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Tengwar
by Ovid (Cardinal) on May 05, 2004 at 18:56 UTC | |
by japhy (Canon) on May 05, 2004 at 19:03 UTC | |
by halley (Prior) on May 05, 2004 at 19:20 UTC | |
by Tomte (Priest) on May 06, 2004 at 07:51 UTC | |
|
Re: Tengwar
by rje (Deacon) on May 05, 2004 at 19:32 UTC | |
by QM (Parson) on May 05, 2004 at 20:04 UTC |