Differences From Artifact [b06c507597]:
- File src/Variable.h — part of check-in [7a98b92af9] at 2025-03-25 23:52:50 on branch trunk — Make use of OF_DIRECT (user: js, size: 4886) [annotate] [blame] [check-ins using]
To Artifact [780b5706d6]:
- File
src/Variable.h
— part of check-in
[75e920ae30]
at
2025-03-29 14:25:43
on branch trunk
— Switch from clang-format to manual formatting
clang-format does too many weird things. (user: js, size: 3388) [annotate] [blame] [check-ins using]
1 2 3 4 | #import "Identifier.h" OF_ASSUME_NONNULL_BEGIN | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > > | | | | | < > | | | | | | | | | < < > > | | > > > > | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #import "Identifier.h" OF_ASSUME_NONNULL_BEGIN #define VARP(name, min_, cur, max_) \ int name = cur; \ \ OF_CONSTRUCTOR() \ { \ enqueueInit(^ { \ Variable *variable = \ [Variable variableWithName: @#name \ min: min_ \ max: max_ \ storage: &name \ function: NULL \ persisted: true]; \ Identifier.identifiers[@#name] = variable; \ }); \ } #define VAR(name, min_, cur, max_) \ int name = cur; \ \ OF_CONSTRUCTOR() \ { \ enqueueInit(^ { \ Variable *variable = \ [Variable variableWithName: @#name \ min: min_ \ max: max_ \ storage: &name \ function: NULL \ persisted: false]; \ Identifier.identifiers[@#name] = variable; \ }); \ } #define VARF(name, min_, cur, max_, body) \ static void var_##name(void); \ static int name = cur; \ \ OF_CONSTRUCTOR() \ { \ enqueueInit(^ { \ Variable *variable = \ [Variable variableWithName: @#name \ min: min_ \ max: max_ \ storage: &name \ function: var_##name \ persisted: false]; \ Identifier.identifiers[@#name] = variable; \ }); \ } \ \ static void \ var_##name(void) \ { \ body; \ } #define VARFP(name, min_, cur, max_, body) \ static void var_##name(void); \ static int name = cur; \ \ OF_CONSTRUCTOR() \ { \ enqueueInit(^ { \ Variable *variable = \ [Variable variableWithName: @#name \ min: min_ \ max: max_ \ storage: &name \ function: var_##name \ persisted: true]; \ Identifier.identifiers[@#name] = variable; \ }); \ } \ \ static void \ var_##name(void) \ { \ body; \ } @interface Variable: Identifier @property (direct, readonly, nonatomic) int min, max; @property (direct, readonly, nonatomic) int *storage; @property (direct, readonly, nullable, nonatomic) void (*function)(); @property (readonly, nonatomic) bool persisted; + (instancetype)variableWithName: (OFString *)name min: (int)min max: (int)max storage: (int *)storage function: (void (*_Nullable)())function persisted: (bool)persisted OF_DIRECT; - (instancetype)initWithName: (OFString *)name OF_UNAVAILABLE; - (instancetype)initWithName: (OFString *)name min: (int)min max: (int)max storage: (int *)storage function: (void (*_Nullable)())function persisted: (bool)persisted OF_DESIGNATED_INITIALIZER OF_DIRECT; - (void)printValue OF_DIRECT; - (void)setValue: (int)value OF_DIRECT; @end OF_ASSUME_NONNULL_END |