mirror of https://github.com/pret/pokecrystal.git
preprocessor: print macro automatically inserts newlines
This commit is contained in:
parent
a85077eb4f
commit
ac391b7b8e
|
@ -352,6 +352,11 @@ def quote_translator(asm):
|
||||||
sys.stdout.write(asm)
|
sys.stdout.write(asm)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
print_macro = False
|
||||||
|
if asms[0].strip() == 'print':
|
||||||
|
asms[0] = asms[0].replace('print','db 0,')
|
||||||
|
print_macro = True
|
||||||
|
|
||||||
output = ""
|
output = ""
|
||||||
even = False
|
even = False
|
||||||
i = 0
|
i = 0
|
||||||
|
@ -359,6 +364,7 @@ def quote_translator(asm):
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
|
||||||
if even:
|
if even:
|
||||||
|
characters = []
|
||||||
# token is a string to convert to byte values
|
# token is a string to convert to byte values
|
||||||
while len(token):
|
while len(token):
|
||||||
# read a single UTF-8 codepoint
|
# read a single UTF-8 codepoint
|
||||||
|
@ -393,10 +399,35 @@ def quote_translator(asm):
|
||||||
char = char + token[0]
|
char = char + token[0]
|
||||||
token = token[1:]
|
token = token[1:]
|
||||||
|
|
||||||
output += ("${0:02X}".format(chars[char]))
|
characters += [char]
|
||||||
|
|
||||||
|
if print_macro:
|
||||||
|
line = 0
|
||||||
|
while len(characters):
|
||||||
|
last_char = 1
|
||||||
|
if len(characters) > 18 and characters[-1] != '@':
|
||||||
|
for i, char in enumerate(characters):
|
||||||
|
last_char = i + 1
|
||||||
|
if ' ' not in characters[i+1:18]: break
|
||||||
|
output += ", ".join("${0:02X}".format(chars[char]) for char in characters[:last_char-1])
|
||||||
|
if characters[last_char-1] != " ":
|
||||||
|
output += ", ${0:02X}".format(characters[last_char-1])
|
||||||
|
if not line & 1:
|
||||||
|
line_ending = 0x4f
|
||||||
|
else:
|
||||||
|
line_ending = 0x51
|
||||||
|
output += ", ${0:02X}".format(line_ending)
|
||||||
|
line += 1
|
||||||
|
else:
|
||||||
|
output += ", ".join(["${0:02X}".format(chars[char]) for char in characters[:last_char]])
|
||||||
|
characters = characters[last_char:]
|
||||||
|
if len(characters): output += ", "
|
||||||
|
# end text
|
||||||
|
line_ending = 0x57
|
||||||
|
output += ", ${0:02X}".format(line_ending)
|
||||||
|
|
||||||
|
output += ", ".join(["${0:02X}".format(chars[char]) for char in characters])
|
||||||
|
|
||||||
if len(token):
|
|
||||||
output += (", ")
|
|
||||||
# if not even
|
# if not even
|
||||||
else:
|
else:
|
||||||
output += (token)
|
output += (token)
|
||||||
|
|
Loading…
Reference in New Issue