use crate::ast::Const;
use super::prelude::*;
use super::VisitRes;
use super::VisitRes::Walk;
pub trait Visitor<'script> {
fn visit_record(&mut self, _record: &mut Record<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_record(&mut self, _record: &mut Record<'script>) -> Result<()> {
Ok(())
}
fn visit_list(&mut self, _list: &mut List<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_list(&mut self, _list: &mut List<'script>) -> Result<()> {
Ok(())
}
fn visit_binary(&mut self, _binary: &mut BinExpr<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_binary(&mut self, _binary: &mut BinExpr<'script>) -> Result<()> {
Ok(())
}
fn visit_unary(&mut self, _unary: &mut UnaryExpr<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_unary(&mut self, _unary: &mut UnaryExpr<'script>) -> Result<()> {
Ok(())
}
fn visit_patch(&mut self, _patch: &mut Patch<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_patch(&mut self, _patch: &mut Patch<'script>) -> Result<()> {
Ok(())
}
fn visit_patch_operation(&mut self, _patch: &mut PatchOperation<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_patch_operation(&mut self, _patch: &mut PatchOperation<'script>) -> Result<()> {
Ok(())
}
fn visit_precondition(
&mut self,
_precondition: &mut ClausePreCondition<'script>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_precondition(
&mut self,
_precondition: &mut ClausePreCondition<'script>,
) -> Result<()> {
Ok(())
}
fn visit_default_case(
&mut self,
_mdefault: &mut DefaultCase<ImutExpr<'script>>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_default_case(&mut self, _mdefault: &mut DefaultCase<ImutExpr<'script>>) -> Result<()> {
Ok(())
}
fn visit_mmatch(&mut self, _mmatch: &mut Match<'script, ImutExpr>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_mmatch(&mut self, _mmatch: &mut Match<'script, ImutExpr>) -> Result<()> {
Ok(())
}
fn visit_predicate_clause(
&mut self,
_predicate: &mut PredicateClause<'script, ImutExpr<'script>>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_predicate_clause(
&mut self,
_predicate: &mut PredicateClause<'script, ImutExpr<'script>>,
) -> Result<()> {
Ok(())
}
fn visit_clause_group(
&mut self,
_group: &mut ClauseGroup<'script, ImutExpr<'script>>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_clause_group(
&mut self,
_group: &mut ClauseGroup<'script, ImutExpr<'script>>,
) -> Result<()> {
Ok(())
}
fn visit_match_pattern(&mut self, _pattern: &mut Pattern<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_match_pattern(&mut self, _pattern: &mut Pattern<'script>) -> Result<()> {
Ok(())
}
fn visit_record_pattern(
&mut self,
_record_pattern: &mut RecordPattern<'script>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_record_pattern(&mut self, _record_pattern: &mut RecordPattern<'script>) -> Result<()> {
Ok(())
}
fn visit_predicate_pattern(
&mut self,
_record_pattern: &mut PredicatePattern<'script>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_predicate_pattern(
&mut self,
_record_pattern: &mut PredicatePattern<'script>,
) -> Result<()> {
Ok(())
}
fn visit_array_pattern(
&mut self,
_array_pattern: &mut ArrayPattern<'script>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_array_pattern(&mut self, _array_pattern: &mut ArrayPattern<'script>) -> Result<()> {
Ok(())
}
fn visit_tuple_pattern(&mut self, _pattern: &mut TuplePattern<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_tuple_pattern(&mut self, _pattern: &mut TuplePattern<'script>) -> Result<()> {
Ok(())
}
fn visit_array_predicate_pattern(
&mut self,
_pattern: &mut ArrayPredicatePattern<'script>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_array_predicate_pattern(
&mut self,
_pattern: &mut ArrayPredicatePattern<'script>,
) -> Result<()> {
Ok(())
}
fn visit_test_expr(&mut self, _expr: &mut TestExpr) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_test_expr(&mut self, _expr: &mut TestExpr) -> Result<()> {
Ok(())
}
fn visit_comprehension(
&mut self,
_comp: &mut Comprehension<'script, ImutExpr<'script>>,
) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_comprehension(
&mut self,
_comp: &mut Comprehension<'script, ImutExpr<'script>>,
) -> Result<()> {
Ok(())
}
fn visit_merge(&mut self, _merge: &mut Merge<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_merge(&mut self, _merge: &mut Merge<'script>) -> Result<()> {
Ok(())
}
fn visit_segment(&mut self, _segment: &mut Segment<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_segment(&mut self, _segment: &mut Segment<'script>) -> Result<()> {
Ok(())
}
fn visit_path(&mut self, _path: &mut Path<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_path(&mut self, _path: &mut Path<'script>) -> Result<()> {
Ok(())
}
fn visit_string_lit(&mut self, _cow: &mut beef::Cow<'script, str>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_string_lit(&mut self, _cow: &mut beef::Cow<'script, str>) -> Result<()> {
Ok(())
}
fn visit_ident(&mut self, _cow: &mut Ident<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_ident(&mut self, _cow: &mut Ident<'script>) -> Result<()> {
Ok(())
}
fn visit_string(&mut self, _string: &mut StringLit<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_string(&mut self, _string: &mut StringLit<'script>) -> Result<()> {
Ok(())
}
fn visit_string_element(&mut self, _string: &mut StrLitElement<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_string_element(&mut self, _string: &mut StrLitElement<'script>) -> Result<()> {
Ok(())
}
fn visit_local(&mut self, _local_idx: &mut usize) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_local(&mut self, _local_idx: &mut usize) -> Result<()> {
Ok(())
}
fn visit_present(&mut self, _path: &mut Path<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_present(&mut self, _path: &mut Path<'script>) -> Result<()> {
Ok(())
}
fn visit_invoke(&mut self, _invoke: &mut Invoke<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_invoke(&mut self, _invoke: &mut Invoke<'script>) -> Result<()> {
Ok(())
}
fn visit_invoke_aggr(&mut self, _invoke_aggr: &mut InvokeAggr) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_invoke_aggr(&mut self, _invoke_aggr: &mut InvokeAggr) -> Result<()> {
Ok(())
}
fn visit_recur(&mut self, _recur: &mut Recur<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_recur(&mut self, _recur: &mut Recur<'script>) -> Result<()> {
Ok(())
}
fn visit_bytes(&mut self, _bytes: &mut Bytes<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_bytes(&mut self, _bytes: &mut Bytes<'script>) -> Result<()> {
Ok(())
}
fn visit_literal(&mut self, _literal: &mut Literal<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_literal(&mut self, _literal: &mut Literal<'script>) -> Result<()> {
Ok(())
}
fn visit_expr(&mut self, _e: &mut ImutExpr<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_expr(&mut self, _e: &mut ImutExpr<'script>) -> Result<()> {
Ok(())
}
fn visit_segments(&mut self, _e: &mut Vec<Segment<'script>>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_segments(&mut self, _e: &mut Vec<Segment<'script>>) -> Result<()> {
Ok(())
}
fn visit_expr_path(&mut self, _e: &mut ExprPath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_expr_path(&mut self, _e: &mut ExprPath<'script>) -> Result<()> {
Ok(())
}
fn visit_const_path(&mut self, _e: &mut LocalPath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_const_path(&mut self, _e: &mut LocalPath<'script>) -> Result<()> {
Ok(())
}
fn visit_local_path(&mut self, _e: &mut LocalPath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_local_path(&mut self, _e: &mut LocalPath<'script>) -> Result<()> {
Ok(())
}
fn visit_event_path(&mut self, _e: &mut EventPath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_event_path(&mut self, _e: &mut EventPath<'script>) -> Result<()> {
Ok(())
}
fn visit_state_path(&mut self, _e: &mut StatePath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_state_path(&mut self, _e: &mut StatePath<'script>) -> Result<()> {
Ok(())
}
fn visit_meta_path(&mut self, _e: &mut MetadataPath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_meta_path(&mut self, _e: &mut MetadataPath<'script>) -> Result<()> {
Ok(())
}
fn visit_reserved_path(&mut self, _e: &mut ReservedPath<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_reserved_path(&mut self, _e: &mut ReservedPath<'script>) -> Result<()> {
Ok(())
}
fn visit_const(&mut self, _e: &mut Const<'script>) -> Result<VisitRes> {
Ok(Walk)
}
fn leave_const(&mut self, _e: &mut Const<'script>) -> Result<()> {
Ok(())
}
}