summaryrefslogtreecommitdiff
path: root/pokemontools/preprocessor.py
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-12-02 14:56:06 -0500
committeryenatch <yenatch@gmail.com>2013-12-02 14:56:06 -0500
commit07f7b1b892ac39597cb7e17fa95e3f52e617f5a2 (patch)
treef2ce9ced36a7f6beaa96e8823b26ba2267b53c6b /pokemontools/preprocessor.py
parent765e846a9eac19008e00a15cf4dcf05653e614c9 (diff)
preprocessor: get rid of PointerLabel cruft
now pretty much everything uses from_asm
Diffstat (limited to 'pokemontools/preprocessor.py')
-rw-r--r--pokemontools/preprocessor.py46
1 files changed, 3 insertions, 43 deletions
diff --git a/pokemontools/preprocessor.py b/pokemontools/preprocessor.py
index f4e92b6..d6b7a43 100644
--- a/pokemontools/preprocessor.py
+++ b/pokemontools/preprocessor.py
@@ -604,64 +604,24 @@ class Preprocessor(object):
if do_macro_sanity_check:
self.check_macro_sanity(params, macro, original_line)
- # used for storetext
- correction = 0
output = ""
index = 0
while index < len(params):
- param_type = macro.param_types[index - correction]
+ param_type = macro.param_types[index]
description = param_type["name"].strip()
param_klass = param_type["class"]
byte_type = param_klass.byte_type # db or dw
- size = param_klass.size
param = params[index].strip()
- # param_klass.to_asm() won't work here because it doesn't
- # include db/dw.
-
- # some parameters are really multiple types of bytes
- if (byte_type == "dw" and size != 2) or \
- (byte_type == "db" and size != 1):
-
- output += ("; " + description + "\n")
-
- if size == 3 and is_based_on(param_klass, "PointerLabelBeforeBank"):
- # write the bank first
- output += ("db " + param + "\n")
- # write the pointer second
- output += ("dw " + params[index+1].strip() + "\n")
- index += 2
- correction += 1
- elif size == 3 and is_based_on(param_klass, "PointerLabelAfterBank"):
- # write the pointer first
- output += ("dw " + param + "\n")
- # write the bank second
- output += ("db " + params[index+1].strip() + "\n")
- index += 2
- correction += 1
- elif size == 3 and "from_asm" in dir(param_klass):
- output += ("\t" + byte_type + " " + param_klass.from_asm(param) + "\n")
- index += 1
- else:
- raise exceptions.MacroException(
- "dunno what to do with this macro param ({klass}) in line: {line}"
- .format(
- klass=param_klass,
- line=original_line,
- )
- )
-
- elif "from_asm" in dir(param_klass):
+ if "from_asm" in dir(param_klass):
output += ("\t" + byte_type + " " + param_klass.from_asm(param) + " ; " + description + "\n")
- index += 1
- # or just print out the byte
else:
output += ("\t" + byte_type + " " + param + " ; " + description + "\n")
- index += 1
+ index += 1
sys.stdout.write(output)