ref: 216a7ac1ecde92e366e02f74e88f28eebf33b903
parent: a720875a84c1ae89237ca2a0b075accb2c10e83c
author: Bryan Bishop <kanzure@gmail.com>
date: Thu Apr 26 06:51:37 EDT 2012
better comment handling in textpre.py
--- a/textpre.py
+++ b/textpre.py
@@ -266,14 +266,28 @@
}
for l in sys.stdin:
-
# strip comments
- line = l.partition(";")- i = 0
asm = ""
- while i < len(line) and l[0] != ";":
- asm = asm + line[i]
- i = i + 1
+ comment = None
+ in_quotes = False
+ in_comment = False
+ for letter in l:
+ if in_comment:
+ comment += letter
+ elif in_quotes and letter != "\"":
+ asm += letter
+ elif in_quotes and letter == "\"":
+ in_quotes = False
+ asm += letter
+ elif not in_quotes and letter == "\"":
+ in_quotes = True
+ asm += letter
+ elif not in_quotes and letter != "\"":
+ if letter == ";":
+ in_comment = True
+ comment = ";"
+ else:
+ asm += letter
# skip asm with no quotes
if "\"" not in asm:
@@ -339,3 +353,6 @@
else:
sys.stdout.write(token)
even = not even
+
+ if comment != None:
+ sys.stdout.write(comment)
--
⑨