File size: 1,572 Bytes
463f868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# -*- coding: utf-8 -*-
import re

from .aliases import (
    CONDITION_SEMANTIC_SPECIAL_CASES,
    CONDITION_TRUE_ALIASES,
    EFFECT_GRAMMAR_CONVENIENCES,
    EFFECT_SEMANTIC_SPECIAL_CASES,
    EFFECT_TRUE_ALIASES,
    IGNORED_CONDITIONS,
    KEYWORD_CONDITIONS,
    MAX_SELECT_ALL,
    TRIGGER_ALIASES,
)

_RE_CONDITION_NAME = re.compile(r"(\w+)(?:\s*\{(.*)\})?")
_RE_CONDITION_PARENS = re.compile(r"\((.*?)\)")
_RE_CONDITION_EQUALS = re.compile(r"=\s*[\"']?(.*?)[\"']?$")

_RE_EFFECT_FULL = re.compile(r"^([\w_]+)(?:\((.*?)\))?\s*(?:(\{.*?\})\s*)?(?:->\s*([\w, _]+))?(.*)$")
_RE_EFFECT_COMPACT = re.compile(r"(\w+)\((.*?)\)\s*->\s*(\w+)(.*)")
_RE_GRANT_ABILITY = re.compile(r"GRANT_ABILITY\((.*?),\s*\"(.*?)\"\)")

_RE_COST_FORMAT = re.compile(r"(\w+)(?:\((.*?)\))?(.*)")

_RE_TRIGGER_KEYWORD = re.compile(r"TRIGGER:", re.I)
_RE_TRIGGER_PARENS = re.compile(r"\(.*?\)")

_RE_COST_GE = re.compile(r"COST_GE=(\d+)")
_RE_COST_COMPARISON = re.compile(r"COST_(GE|LE|GT|LT|EQ)=(\d+)")

__all__ = [
    "CONDITION_SEMANTIC_SPECIAL_CASES",
    "CONDITION_TRUE_ALIASES",
    "EFFECT_GRAMMAR_CONVENIENCES",
    "EFFECT_SEMANTIC_SPECIAL_CASES",
    "EFFECT_TRUE_ALIASES",
    "IGNORED_CONDITIONS",
    "KEYWORD_CONDITIONS",
    "MAX_SELECT_ALL",
    "TRIGGER_ALIASES",
    "_RE_CONDITION_EQUALS",
    "_RE_CONDITION_NAME",
    "_RE_CONDITION_PARENS",
    "_RE_COST_COMPARISON",
    "_RE_COST_FORMAT",
    "_RE_COST_GE",
    "_RE_EFFECT_COMPACT",
    "_RE_EFFECT_FULL",
    "_RE_GRANT_ABILITY",
    "_RE_TRIGGER_KEYWORD",
    "_RE_TRIGGER_PARENS",
]