pokecrystal/preprocessor.py

58 lines
1.2 KiB
Python
Raw Normal View History

2012-03-05 07:05:36 +00:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import extras.pokemontools.preprocessor as preprocessor
from extras.pokemontools.crystal import (
2013-01-10 21:07:36 +00:00
command_classes,
Warp,
XYTrigger,
Signpost,
PeopleEvent,
DataByteWordMacro,
text_command_classes,
movement_command_classes,
2013-01-27 23:45:23 +00:00
music_classes,
2013-03-29 22:54:13 +00:00
effect_classes,
2013-01-10 21:07:36 +00:00
)
2012-04-26 19:14:46 +00:00
def load_pokecrystal_macros():
"""
Construct a list of macros that are needed for pokecrystal preprocessing.
"""
ourmacros = []
even_more_macros = [
Warp,
XYTrigger,
Signpost,
PeopleEvent,
DataByteWordMacro,
]
2013-01-27 23:45:23 +00:00
ourmacros += command_classes
ourmacros += even_more_macros
ourmacros += [each[1] for each in text_command_classes]
ourmacros += movement_command_classes
ourmacros += music_classes
ourmacros += effect_classes
2012-04-26 19:14:46 +00:00
return ourmacros
2012-04-26 19:14:46 +00:00
def preprocess(macro_table, lines=None):
2013-03-21 20:15:42 +00:00
"""
Entry point for the preprocessor.
2012-04-26 19:14:46 +00:00
"""
return preprocessor.preprocess(macro_table, lines=lines)
2013-08-31 17:12:09 +00:00
def main():
macros = load_pokecrystal_macros()
macro_table = preprocessor.make_macro_table(macros)
preprocess(macro_table)
# only run against stdin when not included as a module
if __name__ == "__main__":
2013-08-31 17:12:09 +00:00
main()