public static IEnumerable <string> GetReferencedVariables(Expr e) { var finder = new VariableReferenceFinder(); e.Accept(finder); return(finder._referencedVariables); }
public override void Visit(AssignmentExpr expr) { // If the expression does not reference itself, then we're cool. var refs = VariableReferenceFinder.GetReferencedVariables(expr.Value); if (refs.All(r => r != expr.Name)) { _definedVariables.Add(expr.Name); } }