// => _examples.ToArray(); public CommandParser(Tokenizer <string> tokenizer) { Tokenizer = tokenizer; Tokenizer.AddToken("Number", "^[0-9]+"); Tokenizer.AddToken("String", "^\"(.*?)\""); Tokenizer.AddToken("Boolean", "^(true)|(false)"); }
private void Add(params string[] empty) { foreach (var s in empty) { _tokenizer.AddToken(new StringToken(s)); } }
public ScheduleParser() { _tokenizer = new Tokenizer(); Add("every", "day", "month", "week", "year", "hour", "at", "@", ":", "st", "nd", "rd", "th", "last", "s", "and"); Add(_days); _tokenizer.AddToken(new IntegerToken()); }
//Adding standard operators private void Operator_Click(object sender, EventArgs e) { Button ButtonClicked = (Button)sender; switch (ButtonClicked.Text) { case "+": _tokenizer.AddToken(new AdditionToken()); break; case "*": _tokenizer.AddToken(new MultiplicationToken()); break; case "/": _tokenizer.AddToken(new DivisionToken()); break; case "%": _tokenizer.AddToken(new ModuloToken()); break; case "-": _tokenizer.AddToken(new SubtractionToken()); break; } //check wether the last item is (now) an operator if (_tokenizer.TokenList != null && _tokenizer.TokenList[_tokenizer.TokenList.Count - 1] is OperatorToken) { clearvalue(); } updateDisplay(); }
public void ParseCaseInsensitiveTokensWithoutSeparators() { var tokenizer = new Tokenizer(); tokenizer.AddToken("Roger", false, false, TestTag); tokenizer.AddToken("Alsing", false, false, TestTag); const string text = @"Roger ROGER rogeR Alsing ALSING __Roger__ __Alsing__"; // "XXXXX XXXXX XXXXX XXXXXX XXXXXX XXXXX XXXXXX " // only two tokens should be found, the rest // are either wrong casing or do not have separators next to them tokenizer.Text = text; var tokens = tokenizer.Tokenize(); var testTokens = from token in tokens where token.HasTag(TestTag) select token; Assert.AreEqual(7, testTokens.ToList().Count); }
public void ParsePatternWithoutSeparators() { var tokenizer = new Tokenizer(); tokenizer.AddPattern(IntPatternMatcher.Default, true, false, TestTag); tokenizer.AddToken("Alsing", false, true, TestTag); const string text = @"The quick brown 1337 fox jumped 0v3r the little pig"; // XXXX X X tokenizer.Text = text; var tokens = tokenizer.Tokenize(); var testTokens = from token in tokens where token.HasTag(TestTag) select token; Assert.AreEqual(3, testTokens.ToList().Count); }
public void ParsePattern() { var tokenizer = new Tokenizer(); tokenizer.AddPattern(IntPatternMatcher.Default, true, true, TestTag); tokenizer.AddToken("Alsing", false, true, TestTag); const string text = @"The quick brown 1337 fox jumped 0v3r the little pig 1234"; // XXXX - - XXXX // only two tokens should be found, the rest // are either wrong casing or do not have separators next to them tokenizer.Text = text; var tokens = tokenizer.Tokenize(); var testTokens = from token in tokens where token.HasTag(TestTag) select token; Assert.AreEqual(2, testTokens.ToList().Count); }