summaryrefslogtreecommitdiff
path: root/preprocessor.py
diff options
context:
space:
mode:
Diffstat (limited to 'preprocessor.py')
-rw-r--r--preprocessor.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/preprocessor.py b/preprocessor.py
index f350971af..0a0c8a0d6 100644
--- a/preprocessor.py
+++ b/preprocessor.py
@@ -481,14 +481,20 @@ def macro_translator(macro, token, line):
raise Exception, "dunno what to do with this non db/dw macro param: " + \
str(param_klass) + " in line: " + original_line
- assert len(params) == allowed_length, \
+ # sometimes the allowed length can vary
+ if hasattr(macro, "allowed_lengths"):
+ allowed_lengths = macro.allowed_lengths + [allowed_length]
+ else:
+ allowed_lengths = [allowed_length]
+
+ assert len(params) in allowed_lengths, \
"mismatched number of parameters on this line: " + \
original_line
# --- end of ridiculously long sanity check ---
index = 0
- while index < len(macro.param_types):
+ while index < len(params):
param_type = macro.param_types[index]
description = param_type["name"]
param_klass = param_type["class"]