internal void ProcessRegion(IParseTO payload, IList <IDev2DataLanguageIntellisensePart> refParts, bool addCompleteParts, StringBuilder tmp, IList <IIntellisenseResult> result, IList <IDev2DataLanguageIntellisensePart> additionalParts = null)
            {
                const bool EmptyOk = false;

                if (payload != null)
                {
                    var tmpString = tmp.ToString();
                    var parts     = tmpString.Split('.');
                    var search    = parts[0].ToLower();
                    var rawSearch = search;
                    var isRs      = false;

                    search = _recordSetUtil.RemoveRecordSetBraces(search, ref isRs);

                    if (_parserHelper.AddFieldResult(payload, result, tmpString, parts, isRs))
                    {
                        return;
                    }

                    if (parts.Length == 1)
                    {
                        _match.MatchNonFieldVariables(payload, refParts, addCompleteParts, tmp, result, additionalParts, isRs, rawSearch, search, EmptyOk, parts);
                    }
                    else if (parts.Length == 2)
                    {
                        _match.MatchFieldVariables(payload, refParts, addCompleteParts, result, parts, isRs, rawSearch, search, EmptyOk);
                    }
                    else
                    {
                        var part = IntellisenseFactory.CreateDataListValidationRecordsetPart(parts[0], parts[1]);
                        result.Add(IntellisenseFactory.CreateErrorResult(payload.StartIndex, payload.EndIndex, part, "Invalid Notation - Extra dots detected", enIntellisenseErrorCode.SyntaxError, !payload.HangingOpen));
                    }
                }
            }
Exemplo n.º 2
0
 bool AddFieldResult(IParseTO payload, IList <IIntellisenseResult> result, string tmpString, string[] parts, bool isRs)
 => _parserHelper.AddFieldResult(payload, result, tmpString, parts, isRs);