| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- namespace Invercargill.Expressions {
- /**
- * Visitor interface for expression traversal and translation.
- *
- * Implement this interface to traverse expression trees for purposes such as:
- * - SQL translation for ORM functionality
- * - Expression optimization
- * - Debugging/logging
- * - Validation
- *
- * All methods have empty default implementations, so visitors only need
- * to override the methods they care about.
- */
- public interface ExpressionVisitor : Object {
- /**
- * Visit a literal expression.
- */
- public virtual void visit_literal(LiteralExpression expr) {}
- /**
- * Visit a variable expression.
- */
- public virtual void visit_variable(VariableExpression expr) {}
- /**
- * Visit a binary expression.
- */
- public virtual void visit_binary(BinaryExpression expr) {}
- /**
- * Visit a unary expression.
- */
- public virtual void visit_unary(UnaryExpression expr) {}
- /**
- * Visit a ternary expression.
- */
- public virtual void visit_ternary(TernaryExpression expr) {}
- /**
- * Visit a property expression.
- */
- public virtual void visit_property(PropertyExpression expr) {}
- /**
- * Visit a function call expression.
- */
- public virtual void visit_function_call(FunctionCallExpression expr) {}
- /**
- * Visit a lambda expression.
- */
- public virtual void visit_lambda(LambdaExpression expr) {}
- /**
- * Visit a bracketed expression.
- */
- public virtual void visit_bracketed(BracketedExpression expr) {}
- }
- }
|