public override void Apply(CstDsl cstDsl) { foreach (var declaration in cstDsl.Declarations) { declaration.Visit(this); var arch = (SMOptions)_buffer.Pop(); _options.Add(arch.MachineId, arch); } // foreach (var assetCst in cstDsl.Assets) // { // assetCst.Visit(this); // // var asset = (Asset) _buffer.Pop(); // var identity = (string) _buffer.Pop(); // // _options[identity].Assets.Add(asset); // } }
public override void Apply(CstDsl cstDsl) { var node = new DotNode(cstDsl.IdShort); node.Attributes.Label = "DSL"; _graph.Nodes.Add(node); var declarationAreaNode = CreateAttributeNode(nameof(cstDsl.Declarations)); _graph.Nodes.Add(declarationAreaNode); foreach (var declaration in cstDsl.Declarations) { declaration.Visit(this); _graph.Edges.Add(declarationAreaNode.Id, declaration.IdShort); } _graph.Edges.Add(node.Id, declarationAreaNode.Id); if (!cstDsl.CodeEntities.Any()) { return; } var assetsAreaNode = CreateAttributeNode(nameof(cstDsl.CodeEntities)); _graph.Nodes.Add(assetsAreaNode); foreach (var asset in cstDsl.CodeEntities) { asset.Visit(this); _graph.Edges.Add(assetsAreaNode.Id, asset.IdShort); } _graph.Edges.Add(node.Id, assetsAreaNode.Id); }
public abstract void Apply(CstDsl cstDsl);