Example #1
0
 public virtual object Walk(ExecExpression node)
 {
     if (Enter(node))
     {
         node.CodeString.Accept(this);
     }
     Exit(node);
     return(null);
 }
Example #2
0
        public override object Walk(ExecExpression node)
        {
            var code = node.CodeString.Accept(this);

            if (!(code is BikeString))
            {
                throw ErrorFactory.CreateTypeError("'exec' works only with string type");
            }

            var str = ((BikeString)code).Value;

            return(string.IsNullOrWhiteSpace(str) ? null : Execute(str));
        }
Example #3
0
        public ExprNode ParseAssignmentExpression()
        {
            if (Next().Is(TokenType.Exec))
            {
                var evalExp = new ExecExpression {
                    Token = Next()
                };
                Match(TokenType.Exec);
                evalExp.CodeString = ParseAssignmentExpression();
                return(evalExp);
            }
            ExprNode node;

            return(Speculate(ParseLeftAssignmentExpression, out node)
                ? node
                : ParseConditionalExpression());
        }
Example #4
0
 public override bool Enter(ExecExpression node)
 {
     Print("EvalExpression");
     level++;
     return true;
 }
Example #5
0
 public override void Exit(ExecExpression node)
 {
     level--;
 }
 public virtual bool Enter(ExecExpression node)
 {
     return true;
 }
 public virtual void Exit(ExecExpression node)
 {
 }
 public virtual void Exit(ExecExpression node)
 {
 }
 public virtual bool Enter(ExecExpression node)
 {
     return(true);
 }
 public override void Exit(ExecExpression node)
 {
     level--;
 }
 public override bool Enter(ExecExpression node)
 {
     Print("EvalExpression");
     level++;
     return(true);
 }
Example #12
0
        public override object Walk(ExecExpression node)
        {
            var code = node.CodeString.Accept(this);
            if (!(code is BikeString))
                throw ErrorFactory.CreateTypeError("'exec' works only with string type");

            var str = ((BikeString)code).Value;
            return string.IsNullOrWhiteSpace(str) ? null : Execute(str);
        }
Example #13
0
 public ExprNode ParseAssignmentExpression()
 {
     if (Next().Is(TokenType.Exec))
     {
         var evalExp = new ExecExpression { Token = Next() };
         Match(TokenType.Exec);
         evalExp.CodeString = ParseAssignmentExpression();
         return evalExp;
     }
     ExprNode node;
     return Speculate(ParseLeftAssignmentExpression, out node)
         ? node
         : ParseConditionalExpression();
 }
Example #14
0
 public virtual object Walk(ExecExpression node)
 {
     if (Enter(node))
     {
         node.CodeString.Accept(this);
     }
     Exit(node);
     return null;
 }