12345678910111213141516171819202122232425262728293031323334353637383940 |
- package xsql
- type ExpressionVisitor interface {
- Visit(Node) Visitor
- VisitBinaryExpr(*BinaryExpr)
- VisitFieldRef(*FieldRef)
- VisitIntegerLiteral(*IntegerLiteral)
- }
- type ExpressionVisitorAdaptor struct {
- }
- func (eva *ExpressionVisitorAdaptor) DoVisit(v ExpressionVisitor, expr Node) {
- switch n := expr.(type) {
- case *BinaryExpr:
- v.VisitBinaryExpr(n)
- case *FieldRef:
- v.VisitFieldRef(n)
- case *IntegerLiteral:
- v.VisitIntegerLiteral(n)
- }
- }
- func (eva *ExpressionVisitorAdaptor) Visit(expr Node) Visitor {
- return nil
- }
- func (eva *ExpressionVisitorAdaptor) VisitBinaryExpr(expr *BinaryExpr) {
- Walk(eva, expr.LHS)
- Walk(eva, expr.RHS)
- }
- func (eva *ExpressionVisitorAdaptor) VisitFieldRef(expr *FieldRef) {
- Walk(eva, expr)
- }
- func (eva *ExpressionVisitorAdaptor) visitIntegerLiteral(expr *FieldRef) {
- }
|