only strip comments when a semicolon appears on the line

This commit is contained in:
Bryan Bishop 2012-04-26 11:02:17 -05:00
parent d358b39024
commit 6e083c9b3a
1 changed files with 24 additions and 20 deletions

View File

@ -271,28 +271,32 @@ for l in sys.stdin:
sys.stdout.write(l)
continue
# strip comments
asm = ""
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:
# strip comments
comment = None
if ";" in l:
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
else:
asm = l
# skip asm with no quotes
if "\"" not in asm: