public void AddComparablePredicateFilter(string variable, string variableTypeName) { if (variable is null || variable.Length == 0 || variableTypeName is null || variableTypeName.Length == 0) { return; } if (!ComparablePredicateFilters.ContainsKey(variable)) { ComparablePredicateFilters.Add(variable, ExpressionFilterFactory.Create(variableTypeName)); ComparablePredicateFiltersInverse.Add(variable, ExpressionFilterFactory.Create(variableTypeName)); } }
private IExpressionFilter BuildRangeClauseFilter(IEnumerable <VBAParser.CaseClauseContext> caseClauses) { var rangeClauseFilter = ExpressionFilterFactory.Create(SelectExpressionTypeName); if (!(GetVariableDeclarationTypeName is null)) { foreach (var caseClause in caseClauses) { foreach (var rangeClause in caseClause.rangeClause()) { var expression = GetRangeClauseExpression(rangeClause); if (!expression.LHS.ParsesToConstantValue) { var typeName = GetVariableDeclarationTypeName(expression.LHS.Token, rangeClause); rangeClauseFilter.AddComparablePredicateFilter(expression.LHS.Token, typeName); } } } } return(rangeClauseFilter); }