use utf8;
use open OUT => ':utf8', ':std';
-use Data::Dumper;
our $VERSION = '1.03';
# personal addendums
my $extra = do 'data/digraphs-shiar.inc.pl'
or warn "could not include shiar proposals: ", $@ // $!;
-$di = { %{$di}, %{$extra // {}} };
+my $vim = do 'data/digraphs-vim.inc.pl'
+ or warn "could not include vim extensions ", $@ // $!;
+$di = { %{$vim // {}}, %{$di}, %{$extra // {}} };
# optionally get unicode character information
my $uninfo = do 'unicode-char.inc.pl'
or warn "could not include unicode details: ", $@ // $!;
-# convert info hashes into arrays of strings to output in display order
-for my $row (values %{$uninfo}) {
- my ($class, $name, $di, $html, $string) = @{$row};
- $row = [$name, $class];
- push @{$row}, '', $string if defined $string;
-}
-
# output perl code of hash
# (assume no backslashes or curlies, so we can just q{} w/o escaping)
print "# automatically generated by $0\n";
);
printf "q{%s}=>[%s],\n", $_, join(',',
$di->{$_}, # original code point
- (map {"'$_'"} @{ $uninfo->{ chr $di->{$_} } // [] }), # optional additional arguments
+ map {"'$_'"}
+ $uninfo->{ chr $di->{$_} }->[1], # name
+ $uninfo->{ chr $di->{$_} }->[0], # class
+ (map {('', $_)} $uninfo->{ chr $di->{$_} }->[4] // ()), # string
) for sort keys %{$di};
print "}\n";
=head1 DESCRIPTION
-Parses the official RFC-1345 document, searching the
-'character mnemonic table' for all digraph definitions.
-If successful, Perl code is output resulting in a hash
-with character data keyed by digraph.
-Any errors and warnings are given at STDERR.
+Combines precompiled digraph includes of rfc (1345), vim, and shiar
+and outputs a complete map including character details and usage classes.
The value can either be a scalar string containing another
digraph which can be considered identical (usually inverted),