diff options
author | yenatch <yenatch@gmail.com> | 2015-04-13 21:30:51 -0700 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-04-13 21:41:32 -0700 |
commit | e7a3ba05929c27b3cc5b1f5c2725ab8dba9efb43 (patch) | |
tree | 678a49cd546a3e24fb63e8547b5b0ce2ef63948d /macros/enum.asm | |
parent | 50734c961c436c4e4a996f120befcab5ee74d15e (diff) |
Add a macro for enumeration.
"enum" is like "const" but uses variables instead. This might not be desired.
It has been moved to the top of macros.asm so that included macros can be enumerated.
Diffstat (limited to 'macros/enum.asm')
-rw-r--r-- | macros/enum.asm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/macros/enum.asm b/macros/enum.asm new file mode 100644 index 000000000..0a72d49d8 --- /dev/null +++ b/macros/enum.asm @@ -0,0 +1,31 @@ +; Enumerate variables + +enum_start: macro +if _NARG >= 1 +__enum__ = \1 +else +__enum__ = 0 +endc +if _NARG >= 2 +__enumdir__ = \2 +else +__enumdir__ = +1 +endc +endm + +enum: macro +\1 = __enum__ +__enum__ = __enum__ + __enumdir__ +endm + + +; Enumerate constants + +const_def: MACRO +const_value = 0 +ENDM + +const: MACRO +\1 EQU const_value +const_value = const_value + 1 +ENDM |