f8fc3e8ba4a2d3e94c2b8d9215d0632ca5e9f63a
[sheet.git] / tools / mkcharver
1 #!/usr/bin/env perl
2 use 5.012;
3 use warnings;
4 use utf8;
5
6 our $VERSION = '1.00';
7
8 say '# automatically generated by tools/mkcharver';
9 say '+{';
10
11 while (my $line = readline) {
12         $line =~ m{
13                 \A (?<start> [0-9A-F]+)
14                 (?: \.\. (?<end> [0-9A-F]+) )?
15                 \h+ ; \h+ (?<major> [0-9]+) \. (?<minor> [0-9])
16         }x or next;
17
18         my $start   = hex $+{start};
19         my $end     = defined $+{end} ? hex $+{end} : $start;
20         my $version = $+{major} . $+{minor};
21         say "(map {\$_ => $version} $start .. $end),";
22 }
23
24 say '}';
25
26 __END__
27
28 =head1 NAME
29
30 mkcharver - Create Perl include of Unicode character versions
31
32 =head1 SYNOPSIS
33
34     mkcharver DerivedAge.txt >unicode-age.inc.pl
35
36 =head1 AUTHOR
37
38 Mischa POSLAWSKY <perl@shiar.org>
39
40 =head1 LICENSE
41
42 Licensed under the GNU Affero General Public License version 3.
43