1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2026-02-10 13:40:32 +00:00

Added helper routine for generating boiler-plate code

This commit is contained in:
Bryan Roe
2020-11-16 17:16:23 -08:00
parent 88020e993a
commit 9822aa8a31
2 changed files with 404 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
/*
Copyright 2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var table = require('fs').readFileSync(process.argv[0].split('\\win-kblayout.js').join('\\win-kblayout_table.txt'));
var lines = table.toString().split('\r\n');
var check = {};
var buffer = Buffer.alloc(8);
var str = ' switch(((int64_t*)val)[0])\r\n';
str += ' {\r\n';
for (var i = 0; i < lines.length; ++i)
{
var code = lines[i].split(' ')[0];
var text = lines[i].substring(lines[i].indexOf(' ')).split(',')[0].trim();
if (text.length < 8)
{
buffer.fill(0);
Buffer.from(text).copy(buffer);
var n = require('bignum').fromBuffer(buffer, { endian: 'little' });
str += (' case ' + n.toString() + ': // ' + text + '\r\n');
str += (' ret = "' + code + '";\r\n');
str += (' break;\r\n');
}
}
var tst = {};
for (var i = 0; i < lines.length; ++i)
{
var code = lines[i].split(' ')[0];
var text = lines[i].substring(lines[i].indexOf(' ')).split(',')[0].trim();
if (text.length >= 8)
{
if (tst[text.substring(0, 8)] == null) { tst[text.substring(0, 8)] = []; }
buffer.fill(0);
Buffer.from(text.substring(0,8)).copy(buffer);
var primary = require('bignum').fromBuffer(buffer, { endian: 'little' }).toString();
buffer.fill(0);
Buffer.from(text.substring(8)).copy(buffer);
var secondary = require('bignum').fromBuffer(buffer, { endian: 'little' }).toString();
tst[text.substring(0, 8)].push({ code: code, text: text, primary: primary, secondary: secondary });
}
}
for (var i in tst)
{
if(tst[i].length == 1)
{
var val = tst[i].pop();
str += (' case ' + val.primary + ': // ' + val.text + '\r\n');
str += (' ret = "' + val.code + '";\r\n');
str += (' break;\r\n');
}
else
{
var top = tst[i].peek();
str += (' case ' + top.primary + ':\r\n');
str += (' switch(((int64_t*)val)[1])\r\n');
str += (' {\r\n');
while (tst[i].length > 0)
{
top = tst[i].pop();
str += (' case ' + top.secondary + ': // ' + top.text + '\r\n');
str += (' ret = "' + top.code + '";\r\n');
str += (' break;\r\n');
}
str += (' }\r\n');
str += (' break;\r\n');
}
}
str += ' }\r\n';
console.log('Value saved to clipboard...');
require('clipboard')(str);
process.exit();

View File

@@ -0,0 +1,311 @@
00000401 ar-SA
00000402 bg-BG
00000403 ca-ES
00000404 zh-TW
00000405 cs-CZ
00000406 da-DK
00000407 de-DE
00000408 el-GR
00000409 en-US
0000040A es-ES_tradnl
0000040B fi-FI
0000040C fr-FR
0000040D he-IL
0000040E hu-HU
0000040F is-IS
00000410 it-IT
00000411 ja-JP
00000412 ko-KR
00000413 nl-NL
00000414 nb-NO
00000415 pl-PL
00000416 pt-BR
00000417 rm-CH
00000418 ro-RO
00000419 ru-RU
0000041A hr-HR
0000041B sk-SK
0000041C sq-AL
0000041D sv-SE
0000041E th-TH
0000041F tr-TR
00000420 ur-PK
00000421 id-ID
00000422 uk-UA
00000423 be-BY
00000424 sl-SI
00000425 et-EE
00000426 lv-LV
00000427 lt-LT
00000428 tg-Cyrl-TJ
00000429 fa-IR
0000042A vi-VN
0000042B hy-AM
0000042C az-Latn-AZ
0000042D eu-ES
0000042E hsb-DE
0000042F mk-MK
00000430 st-ZA
00000431 ts-ZA
00000432 tn-ZA
00000433 ve-ZA
00000434 xh-ZA
00000435 zu-ZA
00000436 af-ZA
00000437 ka-GE
00000438 fo-FO
00000439 hi-IN
0000043A mt-MT
0000043B se-NO
0000043D yi-Hebr, reserved
0000043E ms-MY
0000043F kk-KZ
00000440 ky-KG
00000441 sw-KE
00000442 tk-TM
00000443 uz-Latn-UZ
00000444 tt-RU
00000445 bn-IN
00000446 pa-IN
00000447 gu-IN
00000448 or-IN
00000449 ta-IN
0000044A te-IN
0000044B kn-IN
0000044C ml-IN
0000044D as-IN
0000044E mr-IN
0000044F sa-IN
00000450 mn-MN
00000451 bo-CN
00000452 cy-GB
00000453 km-KH
00000454 lo-LA
00000455 my-MM
00000456 gl-ES
00000457 kok-IN
00000458 mni-IN, reserved
00000459 sd-Deva-IN, reserved
0000045A syr-SY
0000045B si-LK
0000045C chr-Cher-US
0000045D iu-Cans-CA
0000045E am-ET
0000045F tzm-Arab-MA, reserved
00000460 ks-Arab
00000461 ne-NP
00000462 fy-NL
00000463 ps-AF
00000464 fil-PH
00000465 dv-MV
00000466 bin-NG, reserved
00000467 fuv-NG, reserved
00000468 ha-Latn-NG
00000469 ibb-NG, reserved
0000046A yo-NG
0000046B quz-BO
0000046C nso-ZA
0000046D ba-RU
0000046E lb-LU
0000046F kl-GL
00000470 ig-NG
00000471 kr-NG, reserved
00000472 om-ET
00000473 ti-ET
00000474 gn-PY
00000475 haw-US
00000476 la-Latn, reserved
00000477 so-SO
00000478 ii-CN
00000479 pap-029, reserved
0000047A arn-CL
0000047C moh-CA
0000047E br-FR
00000480 ug-CN
00000481 mi-NZ
00000482 oc-FR
00000483 co-FR
00000484 gsw-FR
00000485 sah-RU
00000486 qut-GT
00000487 rw-RW
00000488 wo-SN
0000048C prs-AF
0000048D plt-MG, reserved
0000048E zh-yue-HK, reserved
0000048F tdd-Tale-CN, reserved
00000490 khb-Talu-CN, reserved
00000491 gd-GB
00000492 ku-Arab-IQ
00000493 quc-CO, reserved
00000501 qps-ploc
000005FE qps-ploca
00000801 ar-IQ
00000803 ca-ES-valencia
00000804 zh-CN
00000807 de-CH
00000809 en-GB
0000080A es-MX
0000080C fr-BE
00000810 it-CH
00000811 ja-Ploc-JP, reserved
00000813 nl-BE
00000814 nn-NO
00000816 pt-PT
00000818 ro-MD
00000819 ru-MD
0000081A sr-Latn-CS
0000081D sv-FI
00000820 ur-IN
0000082C az-Cyrl-AZ
0000082E dsb-DE
00000832 tn-BW
0000083B se-SE
0000083C ga-IE
0000083E ms-BN
00000843 uz-Cyrl-UZ
00000845 bn-BD
00000846 pa-Arab-PK
00000849 ta-LK
00000850 mn-Mong-CN
00000851 bo-BT, reserved
00000859 sd-Arab-PK
0000085D iu-Latn-CA
0000085F tzm-Latn-DZ
00000860 ks-Deva, reserved
00000861 ne-IN
00000867 ff-Latn-SN
0000086B quz-EC
00000873 ti-ER
000009FF qps-plocm
00000C01 ar-EG
00000C04 zh-HK
00000C07 de-AT
00000C09 en-AU
00000C0A es-ES
00000C0C fr-CA
00000C1A sr-Cyrl-CS
00000C3B se-FI
00000C50 mn-Mong-MN
00000C51 dz-BT
00000C5F tmz-MA, reserved
00000C6b quz-PE
00001001 ar-LY
00001004 zh-SG
00001007 de-LU
00001009 en-CA
0000100A es-GT
0000100C fr-CH
0000101A hr-BA
0000103B smj-NO
0000105F tzm-Tfng-MA
00001401 ar-DZ
00001404 zh-MO
00001407 de-LI
00001409 en-NZ
0000140A es-CR
0000140C fr-LU
0000141A bs-Latn-BA
0000143B smj-SE
00001801 ar-MA
00001809 en-IE
0000180A es-PA
0000180C fr-MC
0000181A sr-Latn-BA
0000183B sma-NO
00001C01 ar-TN
00001C09 en-ZA
00001C0A es-DO
00001C1A sr-Cyrl-BA
00001C3B sma-SE
00002001 ar-OM
00002009 en-JM
0000200A es-VE
0000200C fr-RE
0000201A bs-Cyrl-BA
0000203B sms-FI
00002401 ar-YE
00002409 en-029
0000240A es-CO
0000240C fr-CD
0000241A sr-Latn-RS
0000243B smn-FI
00002801 ar-SY
00002809 en-BZ
0000280A es-PE
0000280C fr-SN
0000281A sr-Cyrl-RS
00002C01 ar-JO
00002C09 en-TT
00002C0A es-AR
00002C0C fr-CM
00002C1A sr-Latn-ME
00003001 ar-LB
00003009 en-ZW
0000300A es-EC
0000300C fr-CI
0000301A sr-Cyrl-ME
00003401 ar-KW
00003409 en-PH
0000340A es-CL
0000340C fr-ML
00003801 ar-AE
00003809 en-ID, reserved
0000380A es-UY
0000380C fr-MA
00003c01 ar-BH
00003c09 en-HK
00003c0A es-PY
00003c0C fr-HT
00004001 ar-QA
00004009 en-IN
0000400A es-BO
00004401 ar-Ploc-SA, reserved
00004409 en-MY
0000440A es-SV
00004801 ar-145, reserved
00004809 en-SG
0000480A es-HN
00004C09 en-AE, reserved
00004C0A es-NI
00005009 en-BH, reserved
0000500A es-PR
00005409 en-EG, reserved
0000540A es-US
00005809 en-JO, reserved
0000580A es-419
00005C09 en-KW, reserved
00005C0A es-CU
00006009 en-TR, reserved
00006409 en-YE, reserved
0000641A bs-Cyrl
0000681A bs-Latn
00006C1A sr-Cyrl
0000701A sr-Latn
0000703B smn
0000742C az-Cyrl
0000743B sms
00007804 zh
00007814 nn
0000781A bs
0000782C az-Latn
0000783B sma
00007843 uz-Cyrl
00007850 mn-Cyrl
0000785D iu-Cans
0000785F tzm-Tfng
00007C04 zh-Hant
00007C14 nb
00007C1A sr
00007C28 tg-Cyrl
00007C2E dsb
00007C3B smj
00007C43 uz-Latn
00007C46 pa-Arab
00007C50 mn-Mong
00007C59 sd-Arab
00007C5C chr-Cher
00007C5D iu-Latn
00007C5F tzm-Latn
00007C67 ff-Latn
00007C68 ha-Latn