public dynamic Visit(GetVariableExpr expr)
        {
            var symbol = expr.Namespace.Symbols.SingleOrDefault(x => x.Name == expr.Name);

            //var local = _codeGen.Local(symbol.CodeGenField);
            return(symbol.CodeGenField as Operand);
        }
示例#2
0
        public dynamic Visit(GetVariableExpr expr)
        {
            var node = new TreeNode("Get variable value")
            {
                Tag = expr.Node
            };

            node.Nodes.Add(new TreeNode($"Name: {expr.Name}"));
            node.Nodes.Add(new TreeNode($"Type: {expr.Type}"));
            return(node);
        }
 public dynamic Visit(GetVariableExpr expr)
 {
     if (OptimizeMode.Variables && LoopsCount <= 0)
     {
         var symbol = expr.Namespace.Symbols.FirstOrDefault(x => x.Name == expr.Name);
         if (symbol?.Value != null)
         {
             var literal = new LiteralExpr
             {
                 Namespace  = expr.Namespace,
                 Value      = symbol.Value,
                 SymbolType = expr.Type,
                 Node       = expr.Node
             };
             return(literal);
         }
     }
     return(expr);
 }
 public dynamic Visit(GetVariableExpr expr)
 {
     Visit((ExpressionBase)expr);
     return(null);
 }
 public dynamic Visit(GetVariableExpr expr)
 {
     return(expr.Type);
 }