Beispiel #1
0
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
}
Beispiel #2
0
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
}