package org.simantics.scl.compiler.elaboration.expressions; public interface ExpressionTransformer { Expression transform(EAmbiguous expression); Expression transform(EApply expression); Expression transform(EApplyType expression); Expression transform(EAsPattern expression); Expression transform(EBinary expression); Expression transform(EBind expression); Expression transform(EBlock expression); Expression transform(ECHRRuleset expression); Expression transform(EConstant expression); Expression transform(ECoveringBranchPoint expression); Expression transform(EEnforce expression); Expression transform(EEquations expression); Expression transform(EError expression); Expression transform(EExternalConstant expression); Expression transform(EFieldAccess expression); Expression transform(EGetConstraint expression); Expression transform(EIf expression); Expression transform(EIntegerLiteral expression); Expression transform(ELambda expression); Expression transform(ELambdaType expression); Expression transform(ELet expression); Expression transform(EListComprehension expression); Expression transform(EListLiteral expression); Expression transform(ELiteral expression); Expression transform(EMatch expression); Expression transform(EPlaceholder expression); Expression transform(EPreLet expression); Expression transform(EPreRuleset expression); Expression transform(ERange expression); Expression transform(ERealLiteral expression); Expression transform(ERecord expression); Expression transform(ERuleset expression); Expression transform(ESelect expression); Expression transform(ESimpleLambda expression); Expression transform(ESimpleLet expression); Expression transform(EStringLiteral expression); Expression transform(ETransformation expression); Expression transform(ETypeAnnotation expression); Expression transform(EVar expression); Expression transform(EVariable expression); Expression transform(EViewPattern expression); Expression transform(EWhen expression); Expression transform(GuardedExpressionGroup expression); }