| 1516 | return nil |
| 1517 | } |
| 1518 | func (m *BooleanNode) Equal(n Node) bool { |
| 1519 | if m == nil && n == nil { |
| 1520 | return true |
| 1521 | } |
| 1522 | if m == nil && n != nil { |
| 1523 | return false |
| 1524 | } |
| 1525 | if m != nil && n == nil { |
| 1526 | return false |
| 1527 | } |
| 1528 | if nt, ok := n.(*BooleanNode); ok { |
| 1529 | if nt.Operator.T != m.Operator.T { |
| 1530 | return false |
| 1531 | } |
| 1532 | if nt.Operator.V != m.Operator.V { |
| 1533 | if strings.ToLower(nt.Operator.V) != strings.ToLower(m.Operator.V) { |
| 1534 | return false |
| 1535 | } |
| 1536 | } |
| 1537 | if len(m.Args) != len(nt.Args) { |
| 1538 | return false |
| 1539 | } |
| 1540 | for i, arg := range nt.Args { |
| 1541 | if !arg.Equal(m.Args[i]) { |
| 1542 | return false |
| 1543 | } |
| 1544 | } |
| 1545 | return true |
| 1546 | } |
| 1547 | return false |
| 1548 | } |
| 1549 | |
| 1550 | // Create a Tri node |
| 1551 | // |