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)); }
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; } } } }