...
1 package filtering
2
3
4 type Request interface {
5 GetFilter() string
6 }
7
8
9 func ParseFilter(request Request, declarations *Declarations) (Filter, error) {
10 if request.GetFilter() == "" {
11 return Filter{}, nil
12 }
13 var parser Parser
14 parser.Init(request.GetFilter())
15 parsedExpr, err := parser.Parse()
16 if err != nil {
17 return Filter{}, err
18 }
19 var checker Checker
20 checker.Init(parsedExpr.GetExpr(), parsedExpr.GetSourceInfo(), declarations)
21 checkedExpr, err := checker.Check()
22 if err != nil {
23 return Filter{}, err
24 }
25 return Filter{
26 CheckedExpr: checkedExpr,
27 }, nil
28 }
29
View as plain text