More racial template entries
This commit is contained in:
@@ -855,9 +855,14 @@ func (p *wikiExprParser) parsePrimary() (any, error) {
|
||||
p.pos++
|
||||
args := []any{}
|
||||
if p.peek().kind != wikiExprRParen {
|
||||
previousAllowMissing := p.allowMissingFields
|
||||
if wikiExprHelperAllowsMissingArgs(token.text) {
|
||||
p.allowMissingFields = true
|
||||
}
|
||||
for {
|
||||
arg, err := p.parseComparison()
|
||||
if err != nil {
|
||||
p.allowMissingFields = previousAllowMissing
|
||||
return nil, err
|
||||
}
|
||||
args = append(args, arg)
|
||||
@@ -865,6 +870,7 @@ func (p *wikiExprParser) parsePrimary() (any, error) {
|
||||
break
|
||||
}
|
||||
}
|
||||
p.allowMissingFields = previousAllowMissing
|
||||
}
|
||||
if _, ok := p.take(wikiExprRParen); !ok {
|
||||
return nil, fmt.Errorf("missing closing parenthesis for %s", token.text)
|
||||
@@ -887,6 +893,15 @@ func (p *wikiExprParser) parsePrimary() (any, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func wikiExprHelperAllowsMissingArgs(name string) bool {
|
||||
switch name {
|
||||
case "present", "all_present", "any_present":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func (p *wikiExprParser) resolveField(name string) (any, error) {
|
||||
name = strings.TrimPrefix(name, "row.")
|
||||
if name == "HasSpellProgression" {
|
||||
|
||||
Reference in New Issue
Block a user