Example #1
0
 public void TokenizeStringValueWithoutQuotes()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("test").ToArray();
     Assert.Equal(2, tokens.Length);
     Assert.Equal(4, tokens[0].Length);
     Assert.Equal(0, tokens[0].Position);
     Assert.Equal("test", tokens[0].Value);
     Assert.Equal(TokenType.StringValue, tokens[0].Type);
     Assert.Equal(TokenType.EndOfString, tokens[1].Type);
 }
Example #2
0
        public void TokenizeSingleParameterWithSimpleValue()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("-myparam test").ToArray();

            Assert.Equal(tokens.Select(t => t.Type),
                         new[]
                         {
                             TokenType.ParameterName,
                             TokenType.StringValue,
                             TokenType.EndOfString,
                         });
        }
Example #3
0
 public void TokenizeMultiplePositionalParameters()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("test $true @{} @()").ToArray();
     Assert.Equal(tokens.Select(t => t.Type),
                  new[]
                  {
                      TokenType.StringValue,
                      TokenType.BoolValue,
                      TokenType.DictionaryStart,
                      TokenType.DictionaryEnd,
                      TokenType.ListStart,
                      TokenType.ListEnd,
                      TokenType.EndOfString,
                  });
 }
Example #4
0
        public void TokenizeMultipleParameterWith()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("-myparam test -my2ndparam $true -dictp @{} -arrayp @()").ToArray();

            Assert.Equal(tokens.Select(t => t.Type),
                         new[]
                         {
                             TokenType.ParameterName,
                             TokenType.StringValue,
                             TokenType.ParameterName,
                             TokenType.BoolValue,
                             TokenType.ParameterName,
                             TokenType.DictionaryStart,
                             TokenType.DictionaryEnd,
                             TokenType.ParameterName,
                             TokenType.ListStart,
                             TokenType.ListEnd,
                             TokenType.EndOfString
                         });
        }
Example #5
0
        public void TokenizeNestedDictionary()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("@{abc=@{a=b};@{a=b} = c}").ToArray();

            Assert.Equal(tokens.Select(t => t.Type),
                         new[]
                         {
                             TokenType.DictionaryStart,
                             TokenType.StringValue,
                             TokenType.DictionaryStart,
                             TokenType.StringValue,
                             TokenType.StringValue,
                             TokenType.DictionaryEnd,
                             TokenType.DictionaryStart,
                             TokenType.StringValue,
                             TokenType.StringValue,
                             TokenType.DictionaryEnd,
                             TokenType.StringValue,
                             TokenType.DictionaryEnd,
                             TokenType.EndOfString,
                         });
        }
Example #6
0
        public void TokenizeEmptyDictionary()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("@{}").ToArray();
            Assert.Equal(3, tokens.Length);

            Assert.Equal(2, tokens[0].Length);
            Assert.Equal(0, tokens[0].Position);
            Assert.Equal("@{", tokens[0].Value);
            Assert.Equal(TokenType.DictionaryStart, tokens[0].Type);

            Assert.Equal(1, tokens[1].Length);
            Assert.Equal(2, tokens[1].Position);
            Assert.Equal("}", tokens[1].Value);
            Assert.Equal(TokenType.DictionaryEnd, tokens[1].Type);

            Assert.Equal(TokenType.EndOfString, tokens[2].Type);
        }
Example #7
0
        public void TokenizeNestedList()
        {
            Tokenizer tokenizer = new Tokenizer();

            Token[] tokens = tokenizer.Tokenize("@($null, @() ,  @('ab', @('cd')))").ToArray();

            Assert.Equal(tokens.Select(t => t.Type),
                         new[]
                         {
                             TokenType.ListStart,
                             TokenType.NullValue,
                             TokenType.ListStart,
                             TokenType.ListEnd,
                             TokenType.ListStart,
                             TokenType.StringValue,
                             TokenType.ListStart,
                             TokenType.StringValue,
                             TokenType.ListEnd,
                             TokenType.ListEnd,
                             TokenType.ListEnd,
                             TokenType.EndOfString,
                         });
        }
Example #8
0
 public void TokenizeNonEmptyList()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("@($null, $true ,  $false, '1234', 1234 )").ToArray();
     Assert.Equal(tokens.Select(t => t.Type),
                  new[]
                  {
                      TokenType.ListStart,
                      TokenType.NullValue,
                      TokenType.BoolValue,
                      TokenType.BoolValue,
                      TokenType.StringValue,
                      TokenType.NumericValue,
                      TokenType.ListEnd,
                      TokenType.EndOfString,
                  });
 }
Example #9
0
        public void TokenizeListWithSingleIntItem()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("@(1234)").ToArray();
            Assert.Equal(4, tokens.Length);

            Assert.Equal(2, tokens[0].Length);
            Assert.Equal(0, tokens[0].Position);
            Assert.Equal("@(", tokens[0].Value);
            Assert.Equal(TokenType.ListStart, tokens[0].Type);

            Assert.Equal(4, tokens[1].Length);
            Assert.Equal(2, tokens[1].Position);
            Assert.Equal("1234", tokens[1].Value);
            Assert.Equal(TokenType.NumericValue, tokens[1].Type);

            Assert.Equal(1, tokens[2].Length);
            Assert.Equal(6, tokens[2].Position);
            Assert.Equal(")", tokens[2].Value);
            Assert.Equal(TokenType.ListEnd, tokens[2].Type);

            Assert.Equal(TokenType.EndOfString, tokens[3].Type);
        }
Example #10
0
 public void TokenizeSwitchParameter()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("-Switch:$false").ToArray();
     Assert.Equal(3, tokens.Length);
     Assert.Equal("Switch", tokens[0].Value);
     Assert.Equal("$false", tokens[1].Value);
     Assert.Equal(TokenType.SwitchParameter, tokens[0].Type);
     Assert.Equal(TokenType.BoolValue, tokens[1].Type);
     Assert.Equal(TokenType.EndOfString, tokens[2].Type);
 }
 public virtual NodeSequence Parse(string args)
 {
     Tokenizer tokenizer = new Tokenizer();
     IEnumerable<Token> tokens = tokenizer.Tokenize(args);
     return new NodeSequence(args, this.Parse(tokens));
 }
Example #12
0
        public void TokenizeEmptyList()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("@()").ToArray();
            Assert.Equal(3, tokens.Length);

            Assert.Equal(2, tokens[0].Length);
            Assert.Equal(0, tokens[0].Position);
            Assert.Equal("@(", tokens[0].Value);
            Assert.Equal(TokenType.ListStart, tokens[0].Type);

            Assert.Equal(1, tokens[1].Length);
            Assert.Equal(2, tokens[1].Position);
            Assert.Equal(")", tokens[1].Value);
            Assert.Equal(TokenType.ListEnd, tokens[1].Type);

            Assert.Equal(TokenType.EndOfString, tokens[2].Type);
        }
Example #13
0
 public void TokenizeInvalidDoubleAsString()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("12.3.4").ToArray();
     Assert.Equal(2, tokens.Length);
     Assert.Equal(6, tokens[0].Length);
     Assert.Equal(0, tokens[0].Position);
     Assert.Equal("12.3.4", tokens[0].Value);
     Assert.Equal(TokenType.StringValue, tokens[0].Type);
     Assert.Equal(TokenType.EndOfString, tokens[1].Type);
 }
Example #14
0
 public void TokenizeDoubleValue()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("12.34").ToArray();
     Assert.Equal(2, tokens.Length);
     Assert.Equal(5, tokens[0].Length);
     Assert.Equal(0, tokens[0].Position);
     Assert.Equal("12.34", tokens[0].Value);
     Assert.Equal(TokenType.NumericValue, tokens[0].Type);
     Assert.Equal(TokenType.EndOfString, tokens[1].Type);
 }
Example #15
0
 public void TokenizeBooleanFalse()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("$false").ToArray();
     Assert.Equal(2, tokens.Length);
     Assert.Equal(6, tokens[0].Length);
     Assert.Equal(0, tokens[0].Position);
     Assert.Equal("$false", tokens[0].Value);
     Assert.Equal(TokenType.BoolValue, tokens[0].Type);
     Assert.Equal(TokenType.EndOfString, tokens[1].Type);
 }
Example #16
0
 public void TokenizeSwitchParameter_WithList()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("-Switch:@($true,$true)").ToArray();
     Assert.Equal(6, tokens.Length);
     Assert.Equal("Switch", tokens[0].Value);
     Assert.Equal(TokenType.SwitchParameter, tokens[0].Type);
 }
Example #17
0
        public void TokenizeListWithSingleUnqotedStringItem()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("@(true)").ToArray();
            Assert.Equal(4, tokens.Length);

            Assert.Equal(2, tokens[0].Length);
            Assert.Equal(0, tokens[0].Position);
            Assert.Equal("@(", tokens[0].Value);
            Assert.Equal(TokenType.ListStart, tokens[0].Type);

            Assert.Equal(4, tokens[1].Length);
            Assert.Equal(2, tokens[1].Position);
            Assert.Equal("true", tokens[1].Value);
            Assert.Equal(TokenType.StringValue, tokens[1].Type);

            Assert.Equal(1, tokens[2].Length);
            Assert.Equal(6, tokens[2].Position);
            Assert.Equal(")", tokens[2].Value);
            Assert.Equal(TokenType.ListEnd, tokens[2].Type);

            Assert.Equal(TokenType.EndOfString, tokens[3].Type);
        }
        public void TokenizeNonEmptyDictionary()
        {
            Tokenizer tokenizer = new Tokenizer();
            var tokens = tokenizer.Tokenize("@{abc='foo'}").ToArray();

            Assert.Equal(tokens.Select(t => t.Type),
                         new[]
                             {
                                 TokenType.DictionaryStart,
                                 TokenType.StringValue,
                                 //TokenType.DictionaryValueSeperator,
                                 TokenType.StringValue,
                                 TokenType.DictionaryEnd,
                                 TokenType.EndOfString, 
                             });

        }
Example #19
0
 public void TokenizeImplicitList()
 {
     Tokenizer tokenizer = new Tokenizer();
     var tokens = tokenizer.Tokenize("1,2,3,4,5").ToArray();
     Assert.Equal(10, tokens.Length);
     for (int i = 0; i < (tokens.Length - 1) / 2; i++)
     {
         Assert.Equal(TokenType.ListValueSeperator, tokens[i * 2 + 1].Type);
     }
     Assert.Equal(TokenType.EndOfString, tokens[tokens.Length - 1].Type);
 }