shithub: pokecrystal

Download patch

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)
--