private void DiscardToken() { _lookaheadFirst = _lookaheadSecond.Clone(); if (_tokenSequence.Any()) _lookaheadSecond = _tokenSequence.Pop(); else _lookaheadSecond = new LqlToken(TokenType.SequenceTerminator, string.Empty); }
public SearchRequest Parse(IList<LqlToken> tokens) { LoadSequenceStack(tokens); _lookaheadFirst = _tokenSequence.Pop(); _lookaheadSecond = _tokenSequence.Pop(); _searchRequest = new SearchRequest(); Match(); DiscardToken(TokenType.SequenceTerminator); return _searchRequest; }
private bool IsOperator(LqlToken token) { return token.TokenType == TokenType.Equals || token.TokenType == TokenType.NotEquals || token.TokenType == TokenType.Like || token.TokenType == TokenType.NotLike; }
private bool IsObject(LqlToken token) { return token.TokenType == TokenType.Application || token.TokenType == TokenType.ExceptionType || token.TokenType == TokenType.Fingerprint || token.TokenType == TokenType.Message || token.TokenType == TokenType.StackFrame; }
private LqlOperator GetOperator(LqlToken token) { switch (token.TokenType) { case TokenType.Equals: return LqlOperator.Equals; case TokenType.NotEquals: return LqlOperator.NotEquals; case TokenType.Like: return LqlOperator.Like; case TokenType.NotLike: return LqlOperator.NotLike; case TokenType.In: return LqlOperator.In; case TokenType.NotIn: return LqlOperator.NotIn; default: throw new LqlParserException("Expected =, !=, LIKE, NOT LIKE, IN, NOT IN but found: " + token.Value); } }
private LqlObject GetObject(LqlToken token) { switch (token.TokenType) { case TokenType.Application: return LqlObject.Application; case TokenType.ExceptionType: return LqlObject.ExceptionType; case TokenType.Fingerprint: return LqlObject.Fingerprint; case TokenType.Message: return LqlObject.Message; case TokenType.StackFrame: return LqlObject.StackFrame; default: throw new LqlParserException("Expected app, ex, msg, sf or fingerprint but found: " + token.Value); } }