diff options
author | Pierre Ossman <ossman@cendio.se> | 2017-05-31 16:02:36 +0200 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2017-08-02 15:31:37 +0100 |
commit | 0d6d25f4da94c1d1dad3a0b97cb78be068397898 (patch) | |
tree | e66c613f27e5d6e5fe148d1f4ba41ef3ad2ded50 /tools | |
parent | 199ddce53eb5e1db1b9d4e3b3a38c551ed16388d (diff) | |
download | keycodemapdb-0d6d25f4da94c1d1dad3a0b97cb78be068397898.zip keycodemapdb-0d6d25f4da94c1d1dad3a0b97cb78be068397898.tar.gz keycodemapdb-0d6d25f4da94c1d1dad3a0b97cb78be068397898.tar.bz2 |
Add support for JavaScript output
Signed-off-by: Pierre Ossman <ossman@cendio.se>
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/keymap-gen | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/keymap-gen b/tools/keymap-gen index b59ba50..ae33f4d 100755 --- a/tools/keymap-gen +++ b/tools/keymap-gen @@ -636,6 +636,40 @@ class PerlLanguageGenerator(LanguageSrcGenerator): def _array_entry_name(self, index, value, comment): self._array_entry_code(index, value, comment) +class JavaScriptLanguageGenerator(LanguageSrcGenerator): + + def _boilerplate(self, lines): + print("/*") + for line in lines: + print(" * %s" % line) + print("*/") + + def _array_start_code(self, varname, length, fromtype, totype): + print("export default {") + + def _array_start_name(self, varname, length, fromtype): + print("export default {") + + def _array_end(self): + print("};") + + def _array_entry_code(self, index, value, comment): + if value is None: + return + if type(index) == int: + if type(value) == int: + print(" 0x%x: 0x%x, /* %s */" % (index, value, comment)) + else: + print(" 0x%x: \"%s\", /* %s */" % (index, value, comment)) + else: + if type(value) == int: + print(" \"%s\": 0x%x, /* %s */" % (index, value, comment)) + else: + print(" \"%s\": \"%s\", /* %s */" % (index, value, comment)) + + def _array_entry_name(self, index, value, comment): + self._array_entry_code(index, value, comment) + class PodLanguageGenerator(LanguageDocGenerator): def _boilerplate(self, lines): @@ -683,6 +717,7 @@ SRC_GENERATORS = { "python2": PythonLanguageGenerator(), "python3": PythonLanguageGenerator(), "perl": PerlLanguageGenerator(), + "js": JavaScriptLanguageGenerator(), } DOC_GENERATORS = { "pod": PodLanguageGenerator(), |