Example #1
0
 // DictionaryExpression
 public override bool Walk(DictionaryExpression node)
 {
     return(ShouldWalkWorker(node));
 }
Example #2
0
 public override void PostWalk(DictionaryExpression node)
 {
     PostWalkWorker(node);
 }
 // DictionaryExpression
 public virtual bool Walk(DictionaryExpression node) { return true; }
Example #4
0
        public IExpression CompileDictionary()
        {
            DictionaryExpression dictionaryExpression = new DictionaryExpression();

            Token token = this.lexer.NextToken();

            while (token != null && token.Value != "}")
            {
                if (dictionaryExpression.KeyExpressions.Count != 0)
                {
                    if (token.Value != ",")
                        throw new ExpectedTokenException(",");
                }
                else
                    this.lexer.PushToken(token);

                IExpression keyExpression = this.CompileExpression();
                this.CompileToken(TokenType.Separator, ":");
                IExpression valueExpression = this.CompileExpression();
                dictionaryExpression.Add(keyExpression, valueExpression);

                token = this.lexer.NextToken();
            }

            if (token != null)
                this.lexer.PushToken(token);

            return dictionaryExpression;
        }
Example #5
0
 // DictionaryExpression
 public override bool Walk(DictionaryExpression node)
 {
     return(false);
 }
 // DictionaryExpression
 public override bool Walk(DictionaryExpression node) { return false; }
Example #7
0
 // DictionaryExpression
 public override bool Walk(DictionaryExpression node) { return Location >= node.StartIndex && Location <= node.EndIndex; }
Example #8
0
 public virtual void PostWalk(DictionaryExpression node)
 {
 }
Example #9
0
 public override bool Walk(DictionaryExpression node)
 {
     AddTagIfNecessary(node);
     return(base.Walk(node));
 }
Example #10
0
 public override bool Walk(DictionaryExpression node)
 {
     writer.WriteLine("Dict");
     return(base.Walk(node));
 }
 private List <Inferred> InferDictionaryExpression(DictionaryExpression node, Scope scope)
 {
     return(MakeList(module.InferType(typeof(IronPython.Runtime.Dict))));
 }
Example #12
0
 public override bool Walk(DictionaryExpression node)
 {
     return(WalkCollection(node, node.Items));
 }
Example #13
0
 public override bool Walk(DictionaryExpression node)
 {
     AddTagIfNecessary(node.Items?.FirstOrDefault()?.StartIndex, node.Items?.LastOrDefault()?.EndIndex);
     return(base.Walk(node));
 }
Example #14
0
 internal static string GetDefaultValue(PythonAnalyzer state, Parameter curParam, PythonAst tree)
 {
     if (curParam.DefaultValue != null)
     {
         // TODO: Support all possible expressions for default values, we should
         // probably have a PythonAst walker for expressions or we should add ToCodeString()
         // onto Python ASTs so they can round trip
         ConstantExpression defaultValue = curParam.DefaultValue as ConstantExpression;
         if (defaultValue != null)
         {
             return(defaultValue.GetConstantRepr(state.LanguageVersion));
         }
         else
         {
             NameExpression nameExpr = curParam.DefaultValue as NameExpression;
             if (nameExpr != null)
             {
                 return(nameExpr.Name);
             }
             else
             {
                 DictionaryExpression dict = curParam.DefaultValue as DictionaryExpression;
                 if (dict != null)
                 {
                     if (dict.Items.Count == 0)
                     {
                         return("{}");
                     }
                     else
                     {
                         return("{...}");
                     }
                 }
                 else
                 {
                     ListExpression list = curParam.DefaultValue as ListExpression;
                     if (list != null)
                     {
                         if (list.Items.Count == 0)
                         {
                             return("[]");
                         }
                         else
                         {
                             return("[...]");
                         }
                     }
                     else
                     {
                         TupleExpression tuple = curParam.DefaultValue as TupleExpression;
                         if (tuple != null)
                         {
                             if (tuple.Items.Count == 0)
                             {
                                 return("()");
                             }
                             else
                             {
                                 return("(...)");
                             }
                         }
                         else
                         {
                             return(curParam.DefaultValue.ToCodeString(tree));
                         }
                     }
                 }
             }
         }
     }
     return(null);
 }
Example #15
0
 public override bool Walk(DictionaryExpression node)
 {
     CanComplete = true;
     return(base.Walk(node));
 }
Example #16
0
 // DictionaryExpression
 public virtual bool Walk(DictionaryExpression node)
 {
     return(true);
 }
Example #17
0
 public override bool Walk(DictionaryExpression node)
 {
     return(UpdateLineInfo(node, true));
 }
Example #18
0
 // DictionaryExpression
 public override bool Walk(DictionaryExpression node)
 {
     return(Location >= node.StartIndex && Location <= node.EndIndex);
 }
Example #19
0
 // DictionaryExpression
 public bool Walk(DictionaryExpression node)
 {
     return(Process(node));
 }
Example #20
0
 public override void PostWalk(DictionaryExpression node)
 {
 }
Example #21
0
 public void PostWalk(DictionaryExpression node)
 {
     PostProcess(node);
 }
 public override void PostWalk(DictionaryExpression node) { }
Example #23
0
        internal static ParameterResult MakeParameterResult(PythonAnalyzer state, Parameter curParam)
        {
            string name = curParam.Name;

            if (curParam.IsDictionary)
            {
                name = "**" + name;
            }
            else if (curParam.IsList)
            {
                name = "*" + curParam.Name;
            }

            if (curParam.DefaultValue != null)
            {
                // TODO: Support all possible expressions for default values, we should
                // probably have a PythonAst walker for expressions or we should add ToCodeString()
                // onto Python ASTs so they can round trip
                ConstantExpression defaultValue = curParam.DefaultValue as ConstantExpression;
                if (defaultValue != null)
                {
                    // FIXME: Use Python Repr
                    name = name + " = " + (defaultValue.Value == null ? "None" : defaultValue.Value.ToString()); //PythonOps.Repr(state.CodeContext, defaultValue.Value);
                }

                NameExpression nameExpr = curParam.DefaultValue as NameExpression;
                if (nameExpr != null)
                {
                    name = name + " = " + nameExpr.Name;
                }

                DictionaryExpression dict = curParam.DefaultValue as DictionaryExpression;
                if (dict != null)
                {
                    if (dict.Items.Count == 0)
                    {
                        name = name + " = {}";
                    }
                    else
                    {
                        name = name + " = {...}";
                    }
                }

                ListExpression list = curParam.DefaultValue as ListExpression;
                if (list != null)
                {
                    if (list.Items.Count == 0)
                    {
                        name = name + " = []";
                    }
                    else
                    {
                        name = name + " = [...]";
                    }
                }

                TupleExpression tuple = curParam.DefaultValue as TupleExpression;
                if (tuple != null)
                {
                    if (tuple.Items.Count == 0)
                    {
                        name = name + " = ()";
                    }
                    else
                    {
                        name = name + " = (...)";
                    }
                }
            }

            var newParam = new ParameterResult(name);

            return(newParam);
        }
 public virtual void PostWalk(DictionaryExpression node) { }
 protected virtual Expression VisitDictionary(DictionaryExpression node) => base.VisitExtension(node);