예제 #1
0
        public void ShouldParseTextLiteral()
        {
            Parser parser = new Parser("\"literal\"");

            TextLiteral literal = parser.ParseTextLiteral();

            Assert.IsNotNull(literal);
            Assert.AreEqual("literal", literal.Value);
        }
예제 #2
0
        public void ShouldParseSyntaxWithOneTextLiteral()
        {
            Parser parser = new Parser("syntax Main = \"Hello\";");

            SyntaxElement syntax = parser.ParseSyntax();

            Assert.IsNotNull(syntax);
            Assert.AreEqual("Main", syntax.Name);
            Assert.AreEqual(1, syntax.Expressions.Count);

            Assert.IsInstanceOfType(syntax.Expressions.First(), typeof(TextLiteral));

            TextLiteral literal = (TextLiteral)syntax.Expressions.First();

            Assert.AreEqual("Hello", literal.Value);
        }
예제 #3
0
        public void ShouldParseTokenWithOneTextLiteral()
        {
            Parser parser = new Parser("token Main = \"Hello\";");

            TokenElement token = parser.ParseToken();

            Assert.IsNotNull(token);
            Assert.AreEqual("Main", token.Name);
            Assert.AreEqual(1, token.Expressions.Count);

            Assert.IsInstanceOfType(token.Expressions.First(), typeof(TextLiteral));

            TextLiteral literal = (TextLiteral)token.Expressions.First();

            Assert.AreEqual("Hello", literal.Value);
        }
예제 #4
0
 public override Comparer <IValue> getComparer(Context context, IExpression key, bool descending)
 {
     if (key == null)
     {
         key = new TextLiteral("\"key\"");
     }
     if (globalMethodExists(context, key.ToString()))
     {
         return(new GlobalMethodComparer(context, key.ToString(), descending));
     }
     else if (key is TextLiteral)
     {
         return(new EntryComparer(context, (TextLiteral)key, descending));
     }
     else
     {
         return(new ExpressionComparer(context, key, descending));
     }
 }
예제 #5
0
 public EntryComparer(Context context, TextLiteral entry, bool descending)
     : base(context, descending)
 {
     this.name = entry.getValue().Value;
 }
예제 #6
0
 public virtual object Visit(TextLiteral that, object value)
 {
     throw new System.NotImplementedException();
 }