Exemplo n.º 1
0
        public void WhileToString()
        {
            var exp = new While(new Number(5), new Equal(new Number(5), new Number(5)));

            Assert.Equal("while(5, 5 == 5)", exp.ToString(commoonFormatter));
        }
Exemplo n.º 2
0
        private void UpdateTreeView(ref TreeNode root, Queue <VCode> vCodes)
        {
            if (root == null)
            {
                root = new TreeNode()
                {
                    Text = @"Root",
                    Tag  = null
                };


                foreach (VCode vCode in vCodes)
                {
                    switch (vCode.VType)
                    {
                    case Enums.VType.Variable:
                        var child = new TreeNode()
                        {
                            Text               = vCode.ToString(),
                            ImageIndex         = 0,
                            SelectedImageIndex = 6
                        };


                        root.Nodes.Add(child);
                        break;

                    case Enums.VType.Function:
                        Function func = (Function)vCode;
                        child = new TreeNode()
                        {
                            Text               = func.ToString(),
                            ImageIndex         = 1,
                            SelectedImageIndex = 6
                        };

                        UpdateTreeView(ref child, func.Scope.Items);

                        root.Nodes.Add(child);

                        break;

                    case Enums.VType.If:
                        If vif = (If)vCode;
                        child = new TreeNode()
                        {
                            Text               = vif.ToString(),
                            ImageIndex         = 2,
                            SelectedImageIndex = 6
                        };

                        UpdateTreeView(ref child, vif.Scope.Items);
                        root.Nodes.Add(child);

                        break;

                    case Enums.VType.While:
                        While wWhile = (While)vCode;
                        child = new TreeNode()
                        {
                            Text               = wWhile.ToString(),
                            ImageIndex         = 3,
                            SelectedImageIndex = 6
                        };

                        UpdateTreeView(ref child, wWhile.Scope.Items);
                        root.Nodes.Add(child);
                        break;

                    case Enums.VType.Assignment:
                        Assignment assignment = (Assignment)vCode;
                        child = new TreeNode()
                        {
                            Text               = assignment.AssignmentString,
                            ImageIndex         = 4,
                            SelectedImageIndex = 6
                        };

                        root.Nodes.Add(child);


                        break;
                    }
                }
            }
            else
            {
                foreach (VCode vCode in vCodes)
                {
                    switch (vCode.VType)
                    {
                    case Enums.VType.Variable:
                        var child = new TreeNode()
                        {
                            Text               = vCode.ToString(),
                            ImageIndex         = 0,
                            SelectedImageIndex = 6
                        };


                        root.Nodes.Add(child);
                        break;

                    case Enums.VType.Function:
                        Function func = (Function)vCode;
                        child = new TreeNode()
                        {
                            Text               = func.ToString(),
                            ImageIndex         = 1,
                            SelectedImageIndex = 6
                        };

                        UpdateTreeView(ref child, func.Scope.Items);

                        root.Nodes.Add(child);

                        break;

                    case Enums.VType.If:
                        If vif = (If)vCode;
                        child = new TreeNode()
                        {
                            Text               = vif.ToString(),
                            ImageIndex         = 2,
                            SelectedImageIndex = 6
                        };

                        UpdateTreeView(ref child, vif.Scope.Items);
                        root.Nodes.Add(child);

                        break;

                    case Enums.VType.While:
                        While wWhile = (While)vCode;
                        child = new TreeNode()
                        {
                            Text               = wWhile.ToString(),
                            ImageIndex         = 3,
                            SelectedImageIndex = 6
                        };

                        UpdateTreeView(ref child, wWhile.Scope.Items);
                        root.Nodes.Add(child);
                        break;

                    case Enums.VType.Assignment:
                        Assignment assignment = (Assignment)vCode;
                        child = new TreeNode()
                        {
                            Text               = assignment.AssignmentString,
                            ImageIndex         = 4,
                            SelectedImageIndex = 6
                        };

                        root.Nodes.Add(child);


                        break;
                    }
                }
            }
        }