Schema: Move list types into a separate config file

This commit is contained in:
Celtic Minstrel 2018-11-04 18:37:51 -05:00
parent 8ef0c1734d
commit df4413ae66
2 changed files with 56 additions and 67 deletions

View file

@ -12,6 +12,7 @@
[wml_schema]
# TODO: Or should we just include {./types}?
{./types/basic.cfg}
{./types/lists.cfg}
{./types/formula.cfg}
{./types/subst.cfg}
{./types/pango.cfg}
@ -19,10 +20,6 @@
name=int_percent
value="-?\d+%?"
[/type]
[type]
name=prog_int
value=".*"
[/type]
[type]
name="version"
value="\d+(\.\d+(\.\d+)?)"
@ -75,37 +72,18 @@
[/type]
[/union]
[/type]
[type]
name=range_list
[list]
[element]
[list]
split="-"
min=1
max=2
[element]
link=unsigned
[/element]
[/list]
[/element]
[/list]
[/type]
[type]
name=int_list
[list]
[element]
link=unsigned
[/element]
[/list]
[/type]
[type]
name=prog_string
value=".*"
[/type]
[type]
name=string_list
value=".*"
[/type]
{LIST_TYPE_COMPLEX range (
[element]
[list]
split="-"
min=1
max=2
[element]
link=unsigned
[/element]
[/list]
[/element]
)}
[type]
name=alignment
value="lawful|neutral|chaotic|liminal"
@ -161,30 +139,22 @@
value="\d+ [A-Z][A-Z]"
[/type]
[type]
name=prog_real
name=prog_string
value=".*"
[/type]
[type]
name="real_list"
[list]
[element]
link="real"
[/element]
[/list]
name=prog_int
value=".*"
[/type]
[type]
name=prog_real
value=".*"
[/type]
[type]
name="dir"
value="-?([ns][ew]?)(:cc?w)?"
[/type]
[type]
name="dir_list"
# value="-?([ns][ew]?)(:cc?w)?(,-?([ns][ew]?)(:cc?w)?)*"
[list]
[element]
link="dir"
[/element]
[/list]
[/type]
{LIST_TYPE dir}
[type]
name="anim_hits"
[union]
@ -196,22 +166,7 @@
[/type]
[/union]
[/type]
[type]
name="anim_hits_list"
[list]
[element]
link="anim_hits"
[/element]
[/list]
[/type]
[type]
name="anim_hits"
[list]
[element]
value="hit|no|miss|kill|yes"
[/element]
[/list]
[/type]
{LIST_TYPE anim_hits}
[type]
name="color"
value="\d+,\d+,\d+"

View file

@ -0,0 +1,34 @@
# Note that basic.cfg must also be included for these to work!
#define LIST_TYPE_OF TYPE ELEM
[type]
name={TYPE}_list
[list]
[element]
link="{ELEM}"
[/element]
[/list]
[/type]
#enddef
#define LIST_TYPE_COMPLEX TYPE ELEM
[type]
name={TYPE}_list
[list]
{ELEM}
[/list]
[/type]
#enddef
#define LIST_TYPE TYPE
{LIST_TYPE_OF {TYPE} {TYPE}}
#enddef
{LIST_TYPE_OF int unsigned}
{LIST_TYPE real}
[type]
name=string_list
value=".*"
[/type]