public ContextWrapperBase(ParserRuleContext context, IParseTreeVisitorResults inspValues, IUnreachableCaseInspectionFactoryProvider factoryFactory) { _context = context; _rangeFilterFactory = factoryFactory.CreateIRangeClauseFilterFactory(); _valueFactory = factoryFactory.CreateIParseTreeValueFactory(); _inspValues = inspValues; }
public RangeClauseFilter(string typeName, IParseTreeValueFactory valueFactory, IRangeClauseFilterFactory filterFactory, TryConvertParseTreeValue <T> tConverter) { _valueFactory = valueFactory; _filterFactory = filterFactory; _valueConverter = tConverter; _ranges = new List <Tuple <T, T> >(); _singleValues = new HashSet <T>(); _isClause = new Dictionary <string, List <T> >(); _relationalOps = new HashSet <string>(); _variableRanges = new HashSet <string>(); _variableSingles = new HashSet <string>(); _hasExtents = false; _falseValue = ConvertToContainedGeneric(false); _trueValue = ConvertToContainedGeneric(true); TypeName = typeName; _cachedDescriptor = string.Empty; _descriptorIsDirty = true; }
private void SetEvaluationTypeName(ParserRuleContext context, IParseTreeVisitorResults inspValues, IRangeClauseFilterFactory factory) { var selectStmt = (VBAParser.SelectCaseStmtContext)context; if (TryDetectTypeHint(selectStmt.selectExpression().GetText(), out string evalTypName)) { EvaluationTypeName = evalTypName; return; } var typeName = string.Empty; if (inspValues.TryGetValue(selectStmt.selectExpression(), out IParseTreeValue result)) { EvaluationTypeName = result.TypeName; } if (InspectionCanEvaluateTypeName(EvaluationTypeName)) { return; } EvaluationTypeName = DeriveTypeFromCaseClauses(inspValues, selectStmt); }