1use std::sync::LazyLock;
2
3use crate::helpers::TigerHashSet;
4
5pub(crate) static BUILTIN_MACROS_IMPERATOR: LazyLock<TigerHashSet<&'static str>> =
6 LazyLock::new(|| BUILTIN_MACROS.iter().copied().collect());
7
8const BUILTIN_MACROS: &[&str] = &[
11 "ABILITY",
12 "A_BLOCK",
13 "ACCEPT",
14 "ACTION",
15 "ACTIVATE_EFFECT",
16 "ACTIVATEEFFECT",
17 "ACTIVITY",
18 "ACTOR",
19 "ADDREMOVE",
20 "ADJ",
21 "ADJECTIVE",
22 "AE",
23 "AGE",
24 "AGENDA",
25 "AGENDA_DESC",
26 "AGENDA_TITLE",
27 "AGRESSOR",
28 "AI_MODIFIERS",
29 "AIREASON",
30 "ALMOST",
31 "ALPHA",
32 "AMBITION",
33 "AMOUNT",
34 "APPROVAL",
35 "AREA",
36 "ASCORE",
37 "ASSASSIN",
38 "ASSIMILATE",
39 "ATTACKER",
40 "ATTRITION",
41 "BACKEND",
42 "BASE_NODE_ID",
43 "BASEVAL",
44 "BEFORE",
45 "BENEFIT",
46 "BLUE",
47 "BONUS",
48 "BONUSEFFECT",
49 "BREACHBONUS",
50 "BREAKDOWN",
51 "BUILDING",
52 "BUILDING_NAME",
53 "CAN_SUPPORT_UP_TO",
54 "CAPACITY",
55 "CAPITAL",
56 "CAPTURE",
57 "CAPVALUE",
58 "CASH",
59 "CASUS_BELLI",
60 "CATEGORY_NAME",
61 "CATEGORY_SLOT",
62 "CENTER_X",
63 "CENTRE",
64 "CHANCE",
65 "CHANGE",
66 "CHANGES",
67 "CHAR",
68 "CHAR01",
69 "CHAR02",
70 "CHAR2",
71 "CHARACTER",
72 "CHARACTERNAME",
73 "CHARISMA",
74 "CHARNAME",
75 "CHILD",
76 "CITIES",
77 "CITYNAME",
78 "CLAIM",
79 "CLAN",
80 "COHORTS",
81 "COMBAT",
82 "COMMANDERS",
83 "COMMENT",
84 "COMPARATOR",
85 "COMPARISON",
86 "COMPLETION",
87 "COMPOSITION",
88 "CONSTRUCTION_LEADERS",
89 "CONTROLLER",
90 "CONTROLLER_TAG",
91 "CONVERT",
92 "COST",
93 "COST_BREAKDOWN",
94 "COSTO",
95 "COST_WHY",
96 "COUNT",
97 "COUNTRYMODIFIER",
98 "COUNTRYSIDE",
99 "CRITERIA",
100 "CULTUERE",
101 "CULTURENAME",
102 "CUR",
103 "CURR",
104 "CURRENT",
105 "CURRENT_VALUE",
106 "DAMAGE",
107 "DATA",
108 "DATE_MAX",
109 "DATE_MIN",
110 "D_BLOCK",
111 "DECAY",
112 "DECISIONNAME",
113 "DEFECT",
114 "DEFENDER",
115 "DELAY",
116 "DEMOTE",
117 "DEPENDENCIES",
118 "DESC",
119 "DESC_KEY",
120 "DETAILS",
121 "DICE",
122 "DIR",
123 "DIRECTION",
124 "DIR_LONG",
125 "DISTANCE",
126 "DISTINCTION",
127 "DIV",
128 "DLC",
129 "DSCORE",
130 "DURATION",
131 "EACH",
132 "EFECT",
133 "EFF",
134 "EFFECTIVENESS",
135 "EFFECTIVE_VAL",
136 "EFFECT_NAME",
137 "EFFECT_PRESTIGE",
138 "EFFECTS",
139 "EFFICIENCY",
140 "ELIGIBLE",
141 "EMPLOYER",
142 "ENEMY",
143 "ENEMY_COUNTRY",
144 "ENEMY_NAME",
145 "ENEMY_STRENGTH",
146 "ENEMY_UNITS",
147 "ERROR",
148 "ERRORS",
149 "EVENT",
150 "EXAMPLE",
151 "EXHAUSTION",
152 "EXPIRE",
153 "EXPLANATION",
154 "EXPORT",
155 "EXP_VAL",
156 "EXTRA",
157 "FACTOR",
158 "FAILED",
159 "FAMILY_FEMALE",
160 "FAMILY_MALE",
161 "FEMALE_ORDER",
162 "FINESSE",
163 "FIRST",
164 "FIRST_DETAILS",
165 "FIRST_FAMILY",
166 "FLAG",
167 "FLANK",
168 "FLAVOR",
169 "FLIPPER",
170 "FOG",
171 "FOLDER",
172 "FOR",
173 "FORT",
174 "FRIENDLY_UNITS",
175 "FROMGOODS",
176 "FROM_MODIFIERS",
177 "FROMPROV",
178 "GAIN",
179 "GENERAL",
180 "GOLD_VALUE",
181 "GOOD",
182 "GOOD_NAME",
183 "GOODS",
184 "GOVERNOR",
185 "GOVERNORS",
186 "GOVERNORSHIP",
187 "GOVFORM",
188 "GRAND",
189 "GREATWORK",
190 "GREEN",
191 "GROUP",
192 "GW_NAME",
193 "HAPPINESS",
194 "HEALTH",
195 "HEIR",
196 "HELPERS",
197 "HERITAGE",
198 "HIT",
199 "HOLY_SITE_FALLEN",
200 "HOME_PORT",
201 "HOW",
202 "ICON",
203 "ID",
204 "IDEA",
205 "IMPACT",
206 "INCDEC",
207 "INCOMING",
208 "INFLUENCE",
209 "INFO",
210 "INSULT1",
211 "INSULT2",
212 "INTERACTION",
213 "INVENTION",
214 "INVERSIÓN",
215 "INVESTMENT",
216 "INVVAL",
217 "KEY",
218 "KEY_LOC",
219 "LAST_REASON",
220 "LAW",
221 "LAYER",
222 "LAYOUT_NODE_ID",
223 "LEFT",
224 "LIEGE",
225 "LIMIT",
226 "LIST",
227 "LOCATION",
228 "LOCNAME",
229 "LONGNAME",
230 "LOSER",
231 "LOSS",
232 "MAN",
233 "MARTIAL",
234 "MATERIAL",
235 "MAX",
236 "MAXINFO",
237 "MAXVALUE",
238 "MEN",
239 "MESSAGE",
240 "MESSENGER",
241 "MINUMUM",
242 "MINUTES",
243 "MINVALUE",
244 "MISSION",
245 "MOD",
246 "MODEL_NAME",
247 "MODIFIER",
248 "MODIFIER_DESC",
249 "MODIFIER_SUMMARY",
250 "MODS",
251 "MODULE",
252 "MONARCHNAME",
253 "MONARCHTITLE",
254 "MONTHLY_COST",
255 "MONTHLY_INCOME",
256 "MONTHS",
257 "MOR",
258 "MOURN",
259 "MUL",
260 "MULT",
261 "NAME",
262 "NAME_FEMALE",
263 "NAME_MALE",
264 "NAMES",
265 "NEED",
266 "NEW_EFFECT",
267 "NEW_NAME",
268 "NEW_RANK",
269 "NEXT",
270 "NICKNAME",
271 "NOT",
272 "NUMBER",
273 "OBJ",
274 "OBJECT",
275 "OF",
276 "OFFICE",
277 "OLD",
278 "OLD_EFFECT",
279 "OLD_NAME",
280 "OLD_RANK",
281 "OPERATOR",
282 "OPINION",
283 "OPRESSOR",
284 "OPTION",
285 "ORDER",
286 "ORIG",
287 "ORIG_IDEA",
288 "OTHER",
289 "OTHERRESULT",
290 "OTHER_WORK",
291 "OUREFFECT",
292 "OUR_LOSSES",
293 "OUTGOING",
294 "OVERLORD",
295 "OWNED",
296 "OWNER",
297 "OWNERSHIP",
298 "OWNER_TAG",
299 "PARTY",
300 "PARTYADJ",
301 "PARTY_INFO",
302 "PARTYNAME",
303 "PENALTY",
304 "PERC",
305 "PERCENT",
306 "PERCENTAGE",
307 "PERCENTAGE_LOSS",
308 "PHASE",
309 "PING",
310 "PI_VALUE",
311 "PLAYER",
312 "PLAYER_MODIFIERS",
313 "PLAYER_TYPE",
314 "POLICY",
315 "POP",
316 "POP_BREAKDOWN",
317 "POPS",
318 "POPTYPE",
319 "POPTYPENAME",
320 "POPULARITY",
321 "PORT_LEVEL",
322 "POSITION",
323 "POTENTIAL_AMOUNT",
324 "POTENTIAL_VAL",
325 "POWER",
326 "PRESTIGE",
327 "PREVENTERS",
328 "PRICE",
329 "PRIMARY",
330 "PRIORITY",
331 "PROGRESS",
332 "PROMOTE",
333 "PRONOUN",
334 "PROV",
335 "PROV_ID",
336 "PROVINCENAME",
337 "PROV_NAME",
338 "QUEUED",
339 "RAISED_AMOUNT",
340 "RANGE",
341 "RANK",
342 "RANKTHEM",
343 "RANKUS",
344 "RATIO",
345 "REASON",
346 "REASONS",
347 "REBEL",
348 "RECIPIENT",
349 "RECIPIENT_TITLE",
350 "RED",
351 "REGIMENTS",
352 "REGION",
353 "REGNALNUMBER",
354 "REINFORCEMENTS",
355 "REJECTION",
356 "RELATION01",
357 "RELATION02",
358 "REQUIRED",
359 "REQUIREMENTS",
360 "RESDESC",
361 "RESEARCHERS",
362 "RESERVE_CENTRE",
363 "RESERVE_FLANK",
364 "RESPONSE",
365 "RESULT",
366 "REWARD",
367 "RIGHT",
368 "RISE",
369 "ROMAN",
370 "RP",
371 "RULE",
372 "RULER",
373 "RULERTITLE",
374 "SAVE_NAME",
375 "SCORE",
376 "SEATS",
377 "SECOND",
378 "SECOND_DETAILS",
379 "SECOND_FAMILY",
380 "SECT",
381 "SEX",
382 "SHIPS",
383 "SHORTCUT",
384 "SHORTDESC",
385 "SHORT_IMPACT",
386 "SHORT_TITLE",
387 "SIZE",
388 "SKILL",
389 "SKILL_VAL",
390 "SLAVE_INFO",
391 "SPECIAL",
392 "SPECIFIC",
393 "SPEED",
394 "STANCE",
395 "STATE_MODIFIERS",
396 "STATUS",
397 "STATUS_OTHER",
398 "STATUS_SHORT",
399 "STAY",
400 "STRENGTH",
401 "STRENGTH_LOSS",
402 "STRING",
403 "SUBJECT_TYPE",
404 "SUBUNIT_ID",
405 "SUBUNIT_NAME",
406 "SUPPORT",
407 "TACTIC",
408 "TAG",
409 "TARGET",
410 "TARGET_COUNTRY",
411 "TARGET_DESC",
412 "TARGETLIST",
413 "TARGET_NAME",
414 "TARGET_NUM",
415 "TASK",
416 "TASKS",
417 "TECH",
418 "TEMP",
419 "TEMPLATE_ID",
420 "TERMS",
421 "TERRAIN",
422 "TEXT",
423 "THEIRLOST",
424 "THEIRNUM",
425 "THEIRSHIP",
426 "THEM",
427 "THRESHOLD",
428 "TIER",
429 "TIME",
430 "TITLE",
431 "TOFROM",
432 "TOGOODS",
433 "TOPROV",
434 "TOTAL_POP_CONSUMPTION",
435 "TRADEGOOD_KEY",
436 "TRADEGOOD_NAME",
437 "TRADEGOODNAME",
438 "TRADITION",
439 "TRAIT",
440 "TREASURE",
441 "TRIGGER",
442 "TRUCE_COUNTRY",
443 "TRUTH",
444 "TYPE_DESC",
445 "UNIT",
446 "UNITS",
447 "UNITS_TYPE",
448 "UNREST",
449 "UNTIL",
450 "US",
451 "USED",
452 "USER",
453 "USLOSS",
454 "USNUM",
455 "VAL",
456 "VALUE",
457 "VASSAL",
458 "VASSAL_ACTION",
459 "VASSALACTION",
460 "VERSUS",
461 "VISUAL_STRENGTH",
462 "WARGOAL",
463 "WARSCORE",
464 "WEIGHT",
465 "WG",
466 "WHAT",
467 "WHEN",
468 "WHERE",
469 "WHICH",
470 "WHO",
471 "WHY",
472 "WIDTH",
473 "WIDTH_FROM_TERRAIN",
474 "WINNER",
475 "WOMAN",
476 "WONDER",
477 "WORK",
478 "X",
479 "Y",
480 "YEAR",
481 "YEARS",
482 "YOU_HAVE",
483 "ZEAL",
484];