diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /devtools/shared/webconsole/GenerateReservedWordsJS.py | |
parent | Initial commit. (diff) | |
download | firefox-esr-37a0381f8351b370577b65028ba1f6563ae23fdf.tar.xz firefox-esr-37a0381f8351b370577b65028ba1f6563ae23fdf.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/shared/webconsole/GenerateReservedWordsJS.py')
-rw-r--r-- | devtools/shared/webconsole/GenerateReservedWordsJS.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/devtools/shared/webconsole/GenerateReservedWordsJS.py b/devtools/shared/webconsole/GenerateReservedWordsJS.py new file mode 100644 index 0000000000..cd8a47b648 --- /dev/null +++ b/devtools/shared/webconsole/GenerateReservedWordsJS.py @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import re +import sys + + +def read_reserved_word_list(filename): + macro_pat = re.compile(r"^\s*MACRO\(([^,]+), *[^,]+, *[^\)]+\)\s*\\?$") + + reserved_word_list = [] + with open(filename, "r") as f: + for line in f: + m = macro_pat.search(line) + if m: + reserved_word_list.append(m.group(1)) + + assert len(reserved_word_list) != 0 + + return reserved_word_list + + +def line(opt, s): + opt["output"].write("{}\n".format(s)) + + +def main(output, reserved_words_h): + reserved_word_list = read_reserved_word_list(reserved_words_h) + opt = {"output": output} + + line(opt, "const JS_RESERVED_WORDS = [") + for word in reserved_word_list: + line(opt, ' "{}",'.format(word)) + line(opt, "];") + line(opt, "module.exports = JS_RESERVED_WORDS;") + + +if __name__ == "__main__": + main(sys.stdout, *sys.argv[1:]) |