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);
            // }
        }
Example #2
0
        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);
        }
Example #3
0
 public abstract void Apply(CstDsl cstDsl);