ref: 3d8e7a17769436a099360ad925de1968994f1b49
parent: 935384f93186b976dfdeab12f46e30ea51e44a17
author: Bryan Bishop <kanzure@gmail.com>
date: Fri Nov 30 05:12:27 EST 2012
make preprocessor includable as a module The preprocessor only runs against stdin when __main__ is activated, instead of always running on stdin. This allows the file to be included in an interactive python session or in other scenarios.
--- a/preprocessor.py
+++ b/preprocessor.py
@@ -552,6 +552,7 @@
read_line(line)
def read_line(l):
+ """Preprocesses a given line of asm."""
# strip and store any comment on this line
if ";" in l:
asm, comment = separate_comment(l)
@@ -581,5 +582,18 @@
if comment != None:
sys.stdout.write(comment)
-for l in sys.stdin:
- read_line(l)
+def preprocess(lines=None):
+ """Main entry point for the preprocessor."""
+ if not lines:
+ # read each line from stdin
+ lines = sys.stdin
+ elif not isinstance(lines, list):
+ # split up the input into individual lines
+ lines = lines.split("\n")+
+ for l in lines:
+ read_line(l)
+
+# only run against stdin when not included as a module
+if __name__ == "__main__":
+ preprocess()
--
⑨