package org.simantics.scl.compiler.elaboration.expressions.visitors; import org.simantics.scl.compiler.elaboration.expressions.EAsPattern; import org.simantics.scl.compiler.elaboration.expressions.EVariable; import org.simantics.scl.compiler.elaboration.expressions.StandardExpressionVisitor; import org.simantics.scl.compiler.elaboration.expressions.VariableProcedure; public class ForVariablesUsesVisitor extends StandardExpressionVisitor { VariableProcedure procedure; public ForVariablesUsesVisitor(VariableProcedure procedure) { this.procedure = procedure; } @Override public void visit(EVariable expression) { if(expression.variable != null) procedure.execute(expression.location, expression.variable); } @Override public void visit(EAsPattern expression) { expression.pattern.accept(this); procedure.execute(expression.eVar.location, expression.var); } }