forked from FireEmblemUniverse/ColorzCore
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexecution_plan.txt
12 lines (11 loc) · 1.02 KB
/
execution_plan.txt
1
2
3
4
5
6
7
8
9
10
11
12
1) Tokenization and Lexing
2) Line-by-line: Parsing, Label definitions, Macro expansion, Preprocessor evaluation*, in that order (First Pass)
3) Interpret byte changes (Second Pass)
*) Preprocessor parsing is a bit special. What I've decided upon is that each directive gets handed its parameters which it then may decide how to simplify.
#include / #incbin have their first parameter implicitly parsed as a windows pathname.
All parameters must still be proper EA syntax (i.e. identifiers or expressions), with the exception that flags may be passed as -foobar,
where foobar may be any non-whitespace-containing string.
#incext / #inctevent attempt to simplify all parameters before passing them out.
What this means is that using an identifier that has been defined by that point will pass out the defined value.
All directives get their first and ONLY their first parameter to not be expanded (i.e. if it's already defined, it will not be expanded).
As such, #ifdef / #ifndef are now limited to only one parameter.