Beispiel #1
0
 public virtual object Walk(PrimitiveLiteral node)
 {
     if (Enter(node))
     {
         // Insert code here
     }
     Exit(node);
     return(null);
 }
Beispiel #2
0
        public PrimitiveLiteral ParsePrimitiveLiteral()
        {
            var token = Next();

            if (!token.Is(TokenType.Null) &&
                !token.Is(TokenType.True) &&
                !token.Is(TokenType.False) &&
                !token.Is(TokenType.String) &&
                !token.Is(TokenType.Number))
            {
                throw Error("Primitive literal expected, received " + token.Type, token);
            }
            var literal = new PrimitiveLiteral
            {
                Token = Next(),
                Value = Next().Text,
                Type  = Next().Type
            };

            Consume();
            return(literal);
        }
Beispiel #3
0
        public override object Walk(PrimitiveLiteral node)
        {
            switch (node.Type)
            {
            case TokenType.String:
                return(new BikeString(node.Value));

            case TokenType.Number:
                return(new BikeNumber(decimal.Parse(node.Value)));

            case TokenType.True:
                return(new BikeBoolean(true));

            case TokenType.False:
                return(new BikeBoolean(false));

            case TokenType.Null:
                return(null);

            default:
                throw ErrorFactory.CreateInvalidProgramError("Invalid primitive literal");
            }
        }
Beispiel #4
0
 public override void Exit(PrimitiveLiteral node)
 {
     level--;
 }
Beispiel #5
0
 public override bool Enter(PrimitiveLiteral node)
 {
     Print("PrimitiveLiteral '{0}': '{1}'", node.Type, node.Value);
     level++;
     return true;
 }
 public virtual void Exit(PrimitiveLiteral node)
 {
 }
 public virtual bool Enter(PrimitiveLiteral node)
 {
     return true;
 }
 public virtual void Exit(PrimitiveLiteral node)
 {
 }
 public virtual bool Enter(PrimitiveLiteral node)
 {
     return(true);
 }
 public override void Exit(PrimitiveLiteral node)
 {
     level--;
 }
 public override bool Enter(PrimitiveLiteral node)
 {
     Print("PrimitiveLiteral '{0}': '{1}'", node.Type, node.Value);
     level++;
     return(true);
 }
Beispiel #12
0
 public override object Walk(PrimitiveLiteral node)
 {
     switch (node.Type)
     {
         case TokenType.String:
             return new BikeString(node.Value);
         case TokenType.Number:
             return new BikeNumber(decimal.Parse(node.Value));
         case TokenType.True:
             return new BikeBoolean(true);
         case TokenType.False:
             return new BikeBoolean(false);
         case TokenType.Null:
             return null;
         default:
             throw ErrorFactory.CreateInvalidProgramError("Invalid primitive literal");
     }
 }
Beispiel #13
0
 public PrimitiveLiteral ParsePrimitiveLiteral()
 {
     var token = Next();
     if (!token.Is(TokenType.Null) &&
         !token.Is(TokenType.True) &&
         !token.Is(TokenType.False) &&
         !token.Is(TokenType.String) &&
         !token.Is(TokenType.Number))
         throw Error("Primitive literal expected, received " + token.Type, token);
     var literal = new PrimitiveLiteral
                       {
                           Token = Next(),
                           Value = Next().Text,
                           Type = Next().Type
                       };
     Consume();
     return literal;
 }
Beispiel #14
0
 public virtual object Walk(PrimitiveLiteral node)
 {
     if (Enter(node))
     {
         // Insert code here
     }
     Exit(node);
     return null;
 }