public SyntaxToken Lex() { _leadingTrivia.Clear(); _diagnostics.Clear(); _start = _charReader.Position; ReadTrivia(_leadingTrivia, isTrailing: false); var leadingTrivia = _leadingTrivia.ToImmutableArray(); _kind = SyntaxKind.BadToken; _contextualKind = SyntaxKind.BadToken; _value = null; _diagnostics.Clear(); _start = _charReader.Position; ReadToken(); var end = _charReader.Position; var kind = _kind; var span = TextSpan.FromBounds(_start, end); var text = _text.GetText(span); var diagnostics = _diagnostics.ToImmutableArray(); _trailingTrivia.Clear(); _diagnostics.Clear(); _start = _charReader.Position; ReadTrivia(_trailingTrivia, isTrailing: true); var trailingTrivia = _trailingTrivia.ToImmutableArray(); return(new SyntaxToken(_syntaxTree, kind, _contextualKind, false, span, text, _value, leadingTrivia, trailingTrivia, diagnostics)); }
public override string GetText(TextSpan textSpan) { return(_sourceText.GetText(textSpan)); }
public override bool IsMatch(EventInfo eventInfo) { bool isMatch = false; string sourceText = null; if (UseMessageValue) { sourceText = _messageValueRetriever.GetValue(eventInfo, MessageValue, MessageValueType, Identifier); } else { if (MessageValueType != MessageValueType.Text && Identifier != null) { switch (MessageValueType) { case MessageValueType.Json: sourceText = SourceText.GetText(eventInfo.Variables).GetJsonValue(Identifier.GetText(eventInfo.Variables)) ?? string.Empty; break; case MessageValueType.Xml: sourceText = SourceText.GetText(eventInfo.Variables).GetXmlValue(Identifier.GetText(eventInfo.Variables)) ?? string.Empty; break; } } else { sourceText = SourceText.GetText(eventInfo.Variables); } } string matchText = MatchText.GetText(eventInfo.Variables); switch (MatchType) { case MatchType.BeginsWith: isMatch = sourceText.StartsWith(matchText); break; case MatchType.EndsWith: isMatch = sourceText.EndsWith(matchText); break; case MatchType.Contains: isMatch = sourceText.Contains(matchText); break; case MatchType.Equals: isMatch = sourceText == matchText; break; case MatchType.Regex: try { isMatch = Regex.IsMatch(sourceText, matchText); } catch (Exception) { } break; } return(isMatch); }