Ejemplo n.º 1
0
        // => _examples.ToArray();

        public CommandParser(Tokenizer <string> tokenizer)
        {
            Tokenizer = tokenizer;

            Tokenizer.AddToken("Number", "^[0-9]+");
            Tokenizer.AddToken("String", "^\"(.*?)\"");
            Tokenizer.AddToken("Boolean", "^(true)|(false)");
        }
Ejemplo n.º 2
0
 private void Add(params string[] empty)
 {
     foreach (var s in empty)
     {
         _tokenizer.AddToken(new StringToken(s));
     }
 }
Ejemplo n.º 3
0
 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());
 }
Ejemplo n.º 4
0
        //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();
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }