private void ParseSearchFilter() { m_schemaClassName = String.Empty; m_userNames.Clear(); StringTokenizer filterTokenizer = new StringTokenizer( new char[] { ';', '=', ')', '(', '&', '|', '!' }, new char[] { }, Filter); while (filterTokenizer.HasMoreTokens()) { string filterToken = filterTokenizer.GetNextToken(); if (StringUtil.CompareIgnoreCase(filterToken, "objectclass")) { m_schemaClassName = filterTokenizer.GetNextToken(); } if (StringUtil.CompareIgnoreCase(filterToken, DirectoryServicesUtils.DOMAIN_ACCOUNT_NAME_PROPERTY)) { m_userNames.Add(filterTokenizer.GetNextToken()); } } }
public void basic_test() { var tokenizer = new StringTokenizer("42 + 3712"); tokenizer.GetNextToken().Should().Be(TokenType.Integer); tokenizer.MatchInteger(out var i).Should().BeTrue(); i.Should().Be(42); tokenizer.CurrentToken.Should().Be(TokenType.Plus); tokenizer.GetNextToken().Should().Be(TokenType.Integer); tokenizer.MatchInteger(out i).Should().BeTrue(); i.Should().Be(3712); }
public void floating() { var tokenizer = new StringTokenizer("37.12e3 + 4.E2"); tokenizer.GetNextToken().Should().Be(TokenType.Double); tokenizer.MatchInteger(out _).Should().BeFalse(); tokenizer.MatchDouble(out var d).Should().BeTrue(); d.Should().BeApproximately(37.12e3, double.Epsilon); tokenizer.CurrentToken.Should().Be(TokenType.Plus); tokenizer.GetNextToken().Should().Be(TokenType.Double); tokenizer.MatchDouble(out d).Should().BeTrue(); d.Should().BeApproximately(4E2, double.Epsilon); }
public void strings() { var tokenizer = new StringTokenizer("\"C\" + 3 + \"PO\""); tokenizer.GetNextToken().Should().Be(TokenType.String); tokenizer.MatchString(out var s).Should().BeTrue(); s.Should().Be("C"); tokenizer.CurrentToken.Should().Be(TokenType.Plus); tokenizer.GetNextToken().Should().Be(TokenType.Integer); tokenizer.MatchInteger(out var i).Should().BeTrue(); i.Should().Be(3); tokenizer.CurrentToken.Should().Be(TokenType.Plus); tokenizer.GetNextToken().Should().Be(TokenType.String); tokenizer.MatchString(out s).Should().BeTrue(); s.Should().Be("PO"); }
public Node Parse(string expression) { var t = new StringTokenizer(expression); // With this tokenizer, head must be forwarded at first. return(t.GetNextToken() == TokenType.EndOfInput ? null : Parse(t)); }
public void identifiers() { var tokenizer = new StringTokenizer("Count * ( _frequency - 1 )"); tokenizer.GetNextToken().Should().Be(TokenType.Identifier); tokenizer.MatchIdentifier(out var id).Should().BeTrue(); id.Should().Be("Count"); tokenizer.CurrentToken.Should().Be(TokenType.Multiplicative); tokenizer.GetNextToken().Should().Be(TokenType.OpenParenthesis); tokenizer.GetNextToken().Should().Be(TokenType.Identifier); tokenizer.MatchIdentifier(out id).Should().BeTrue( ); id.Should().Be("_frequency"); tokenizer.CurrentToken.Should().Be(TokenType.Minus); tokenizer.GetNextToken().Should().Be(TokenType.Integer); tokenizer.MatchInteger(out var i).Should().BeTrue(); i.Should().Be(1); tokenizer.CurrentToken.Should().Be(TokenType.CloseParenthesis); }
public void parsing_identifiers(string toParse, string commaSeparatedIdentifiers) { var identifiers = commaSeparatedIdentifiers.Split(','); int i = 0; StringTokenizer t = new StringTokenizer(toParse); while (t.GetNextToken() != TokenType.EndOfInput) { if (t.CurrentToken == TokenType.Identifier) { identifiers[i++].Should().Be(t.CurrentBuffer); } } }
public void list_of_numbers(string toParse) { var t = new StringTokenizer(toParse); List <double> values = new List <double>(); t.GetNextToken(); while (t.CurrentToken != TokenType.EndOfInput) { Assert.That(t.CurrentToken == TokenType.Number); double v; Assert.That(t.MatchDouble(out v)); values.Add(v); } CollectionAssert.AreEqual(toParse.Split(' ').Select(s => Double.Parse(s)).ToList(), values); }
public void list_of_variable(string toParse) { var t = new StringTokenizer(toParse); List <string> values = new List <string>(); t.GetNextToken(); while (t.CurrentToken != TokenType.EndOfInput) { Assert.That(t.CurrentToken == TokenType.Variable); string v; Assert.That(t.MatchString(out v)); values.Add(v); } CollectionAssert.AreEqual(toParse.Split(' ').ToList(), values); }