chore: 调整解析逻辑

This commit is contained in:
adlyq
2022-06-02 17:03:08 +08:00
parent 3b038310ab
commit fa3e0c726e
3 changed files with 28 additions and 51 deletions

View File

@@ -9,24 +9,21 @@ import (
)
func ParseRule(tp, payload, target string, params []string) (parsed C.Rule, parseErr error) {
parsed, parseErr = ruleparser.ParseSameRule(tp, payload, target, params)
if ruleparser.IsUnsupported(parseErr) {
switch tp {
case "AND":
parsed, parseErr = logic.NewAND(payload, target)
case "OR":
parsed, parseErr = logic.NewOR(payload, target)
case "NOT":
parsed, parseErr = logic.NewNOT(payload, target)
case "RULE-SET":
noResolve := RC.HasNoResolve(params)
parsed, parseErr = RP.NewRuleSet(payload, target, noResolve)
case "MATCH":
parsed = RC.NewMatch(target)
parseErr = nil
default:
parseErr = ruleparser.NewUnsupportedError(tp)
}
switch tp {
case "AND":
parsed, parseErr = logic.NewAND(payload, target)
case "OR":
parsed, parseErr = logic.NewOR(payload, target)
case "NOT":
parsed, parseErr = logic.NewNOT(payload, target)
case "RULE-SET":
noResolve := RC.HasNoResolve(params)
parsed, parseErr = RP.NewRuleSet(payload, target, noResolve)
case "MATCH":
parsed = RC.NewMatch(target)
parseErr = nil
default:
parsed, parseErr = ruleparser.ParseSameRule(tp, payload, target, params)
}
if parseErr != nil {