func shouldBeNumericOrDate(val parser.NodeExpr) bool { // if reflect.TypeOf(val) == reflect.TypeOf(new(parser.NodeNumber)) { if val.Operator() == lexical.T_NUMERIC { return true } if val.Operator() == lexical.T_LITERAL { date := parser.ExtractDate(val.(*parser.NodeLiteral).Value()) if date != nil { return true } } return false }
func (v *SemanticalVisitor) VisitExpr(n parser.NodeExpr) error { if n == nil { return nil } switch n.Operator() { case lexical.T_GREATER: g := n.(*parser.NodeGreater) return v.VisitGreater(g) case lexical.T_SMALLER: g := n.(*parser.NodeSmaller) return v.VisitSmaller(g) case lexical.T_IN: g := n.(*parser.NodeIn) return v.VisitIn(g) } return nil }