summaryrefslogtreecommitdiff
path: root/prequeue.py
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2013-12-10 14:08:08 -0500
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2013-12-10 14:08:08 -0500
commit4e530306781ccebf483dd86c39bd53bd4ca97fbd (patch)
tree034ae854a665d13ea2771c6d7998ab1ea8f641fa /prequeue.py
parent321e432e078d6eceeb25843341d0078214a58394 (diff)
parent515357a4504aa8c0816f088054c26f1902e71e72 (diff)
Merge branch 'master' of https://github.com/iimarckus/pokered
Conflicts: main.asm
Diffstat (limited to 'prequeue.py')
-rw-r--r--prequeue.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/prequeue.py b/prequeue.py
new file mode 100644
index 00000000..d9b37e03
--- /dev/null
+++ b/prequeue.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+"""
+Starting a new python process to preprocess each source file creates too much
+overhead. Instead, a list of files to preprocess is fed into a script run from
+a single process.
+"""
+
+import os
+import sys
+
+import preprocessor
+
+def preprocess_queue(filenames=sys.argv[1:]):
+
+ stdin = sys.stdin
+ stdout = sys.stdout
+
+ processor = preprocessor.setup_processor()
+
+ for source in filenames:
+ dest = os.path.splitext(source)[0] + '.tx'
+ sys.stdin = open(source, 'r')
+ sys.stdout = open(dest, 'w')
+ processor.preprocess()
+
+ processor.update_globals()
+
+ sys.stdin = stdin
+ sys.stdout = stdout
+
+def main():
+ filenames = list(set(sys.argv[1:]))
+ if filenames:
+ num_files = len(filenames)
+ s = '' if num_files == 1 else 's'
+ sys.stdout.write('Preprocessing {0} file{1}...\n'.format(num_files, s))
+ preprocess_queue(filenames)
+
+if __name__ == '__main__':
+ main()