public void AddElementNode(Node n, string name) { ElementNodes.Add(n); if ("" != name) { AtNames.Add(name, n); BinaryExpressionNode o = n as BinaryExpressionNode; IdentifierNode t = o.LeftNode as IdentifierNode; BinaryExpressionNode e = new BinaryExpressionNode(); e.LeftNode = new IdentifierNode() { Value = name, Name = name, type = t.type, datatype = t.datatype }; e.RightNode = t; e.Optr = ProtoCore.DSASM.Operator.assign; ElementNodes.Add(e); } }
public void AddElementNode(Node n, string name) { ElementNodes.Add(n); if (!string.IsNullOrEmpty(name)) { if (!AtNames.ContainsKey(name)) { AtNames.Add(name, n); BinaryExpressionNode o = n as BinaryExpressionNode; IdentifierNode t = o.LeftNode as IdentifierNode; BinaryExpressionNode e = new BinaryExpressionNode(); e.LeftNode = new IdentifierNode() { Name = name }; e.RightNode = t; ElementNodes.Add(e); } } }
private void BuildViewModel(DisassembledAssembly disassembledAssembly) { ElementNodes.Clear(); SelectedElementNode = null; // Create a full document node. var assemblyNode = new ElementNodeViewModel(disassembledAssembly) { Name = Path, DisplayName = DocumentTitle, ElementNodeType = ElementNodeType.Assembly, Content = disassembledAssembly.RawIL }; // Add the child node. foreach (var className in disassembledAssembly.Classes.OrderBy(c => c.ShortName)) { assemblyNode.Nodes.Add(BuildElementNode(className)); } foreach (var className in disassembledAssembly.Structures.OrderBy(c => c.ShortName)) { assemblyNode.Nodes.Add(BuildElementNode(className)); } foreach (var className in disassembledAssembly.Interfaces.OrderBy(c => c.ShortName)) { assemblyNode.Nodes.Add(BuildElementNode(className)); } foreach (var className in disassembledAssembly.Enumerations.OrderBy(c => c.ShortName)) { assemblyNode.Nodes.Add(BuildElementNode(className)); } foreach (var className in disassembledAssembly.Delegates.OrderBy(c => c.ShortName)) { assemblyNode.Nodes.Add(BuildElementNode(className)); } ElementNodes.Add(assemblyNode); }