keyboard/altgr: cache code include (package)
[sheet.git] / keyboard / altgr / apl.eng.inc.pl
1 use utf8;
2 use strict;
3 use warnings;
4 require './keyboard/altgr/groups.inc.pl';
5 Shiar_Sheet::KeyboardChars->import('kbchars');
6
7 my %dyalogx = (
8         'Q' => '⍰',
9         'R' => '⌾',
10         'G' => '⍢',
11         'B' => '⍭',
12         'N' => '⍡',
13         'M' => '∥',
14 );
15 my %rows = (
16         '~' => '⌺',
17         '!' => '⌶',
18         '@' => '⍫',
19         '#' => '⍒',
20         '$' => '⍋',
21         '%' => '⌽',
22         '^' => '⍉',
23         '&' => '⊖',
24         '*' => '⍟',
25         '(' => '⍱',
26         ')' => '⍲',
27         '_' => '!',
28         '+' => '⌹',
29         '`' => '⋄',
30         '1' => '¨',
31         '2' => '¯',
32         '3' => '<',
33         '4' => '≤',
34         '5' => '=',
35         '6' => '≥',
36         '7' => '>',
37         '8' => '≠',
38         '9' => '∨',
39         '0' => '∧',
40         '-' => '×',
41         '=' => '÷',
42         'E' => '⍷',
43         'T' => '⍨',
44         'I' => '⍸',
45         'O' => '⍥',
46         'P' => '⍣',
47         '{' => '⍞',
48         '}' => '⍬',
49         '|' => '⊣',
50         'q' => '?',
51         'w' => '⍵',
52         'e' => '∊',
53         'r' => '⍴',
54         't' => '∼', # ~
55         'y' => '↑',
56         'u' => '↓',
57         'i' => '⍳',
58         'o' => '○',
59         'p' => '⋆', # *
60         '[' => '←',
61         ']' => '→',
62         '\\'=> '⊢',
63         'J' => '⍤',
64         'K' => '⌸',
65         'L' => '⌷',
66         ':' => '≡',
67         '"' => '≢',
68         'a' => '⍺',
69         's' => '⌈',
70         'd' => '⌊',
71         'f' => '_',
72         'g' => '∇',
73         'h' => '∆',
74         'j' => '∘',
75         'k' => "'",
76         'l' => '⎕',
77         ';' => '⍎',
78         "'" => '⍕',
79         'Z' => '⊆',
80         '<' => '⍪',
81         '>' => '⍙',
82         '?' => '⍠',
83         'z' => '⊂',
84         'x' => '⊃',
85         'c' => '∩',
86         'v' => '∪',
87         'b' => '⊥',
88         'n' => '⊤',
89         'm' => '|',
90         ',' => '⍝',
91         '.' => '⍀',
92         '/' => '⌿',
93         %dyalogx,
94 );
95
96 my $groups = kbchars(\%rows);
97 $groups->{def}{''}{$_} = 'g4' for split //,'weEriIoOa/*'; # lookalikes
98 $groups->{def}{''}{$_} .= ' ext' for keys %dyalogx;
99 $groups->{flag}{ext} = ['extended', 'optional operators not available in all variants'];
100
101 +{
102         %{$groups},
103         version => '1.0',
104         title => 'APL',
105         intro => join("\n",
106                 'Resulting <a href="/charset">Unicode</a> characters',
107                 'of a typical <a href="/apl">APL</a> keyboard layout',
108                 'derived from IBM System/360 terminals.',
109                 'Usually obtained by prefixing <code>`</code> (Dyalog)',
110                 'and/or pressing AltGr (APLX).',
111         ),
112         description => [
113                 'Typical IBM-derived APL keyboard layout,',
114                 'as found in APLX and Dyalog implementations.',
115         ],
116         image => 'keyboard/altgr/unicomp-apl.jpg',
117 }