aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2017-05-31 16:02:36 +0200
committerDaniel P. Berrange <berrange@redhat.com>2017-08-02 15:31:37 +0100
commit0d6d25f4da94c1d1dad3a0b97cb78be068397898 (patch)
treee66c613f27e5d6e5fe148d1f4ba41ef3ad2ded50 /tools
parent199ddce53eb5e1db1b9d4e3b3a38c551ed16388d (diff)
downloadkeycodemapdb-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-xtools/keymap-gen35
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(),