Ejemplo n.º 1
0
 private void ClassifyIfDirective(IfDirectiveTriviaSyntax node)
 {
     AddClassification(node.HashToken, ClassificationTypeNames.PreprocessorKeyword);
     AddClassification(node.IfKeyword, ClassificationTypeNames.PreprocessorKeyword);
     ClassifyPreprocessorExpression(node.Condition);
     ClassifyDirectiveTrivia(node);
 }
Ejemplo n.º 2
0
        public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
        {
            if (!PreVisit(node))
            {
                return;
            }

            base.VisitIfDirectiveTrivia(node);

            PostVisit(node);
        }
Ejemplo n.º 3
0
        public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
        {
            // if (debug) Console.WriteLine(node.ToFullString());
            // Todo("IfDirectiveTrivia"); var nl = OurLine.NewLine(LineKind.Decl, "IfDirectiveTrivia");
            // nl.Source = node.ToFullString();
            // nl.ParentKind = node.Parent.RawKind;
            // nl.RawKind = node.RawKind;
            // LogCommand(nl);
            // Todo("IfDirectiveTrivia");

            base.VisitIfDirectiveTrivia(node);
        }
Ejemplo n.º 4
0
        private SyntaxTree getDebugCode(SyntaxTree tree)
        {
            SyntaxTree       newTree      = null;
            SyntaxTriviaList spaceTrivias = new SyntaxTriviaList();
            SyntaxTrivia     space        = SyntaxFactory.Space;

            spaceTrivias = spaceTrivias.Add(space);

            SyntaxTriviaList endLineTrivias = new SyntaxTriviaList();
            SyntaxTrivia     endline        = SyntaxFactory.CarriageReturnLineFeed;

            endLineTrivias = endLineTrivias.Add(endline);

            IdentifierNameSyntax debugIdentifier = SyntaxFactory.IdentifierName(SESCriptBuilderInstance.DebugName).WithLeadingTrivia(spaceTrivias);

            IfDirectiveTriviaSyntax ifOpen       = SyntaxFactory.IfDirectiveTrivia(debugIdentifier, false, false, false).WithTrailingTrivia(endLineTrivias);
            SyntaxTrivia            ifOpenTrivia = SyntaxFactory.Trivia(ifOpen);
            SyntaxTriviaList        ifOpenList   = new SyntaxTriviaList();

            ifOpenList = ifOpenList.Add(ifOpenTrivia);

            EndIfDirectiveTriviaSyntax ifClose = SyntaxFactory.EndIfDirectiveTrivia(false).WithTrailingTrivia(endLineTrivias).WithLeadingTrivia(endLineTrivias);
            SyntaxTrivia     ifCloseTrivia     = SyntaxFactory.Trivia(ifClose);
            SyntaxTriviaList ifCloseList       = new SyntaxTriviaList();

            ifCloseList = ifCloseList.Add(ifCloseTrivia);

            CompilationUnitSyntax root = tree.GetCompilationUnitRoot();

            // add begin and end ifs
            root = root.WithLeadingTrivia(ifOpenList);
            root = root.WithTrailingTrivia(ifCloseList);

            ClassDeclarationSyntax mainClass = this.getTopLevelClasses(root.SyntaxTree).First();

            SyntaxToken token    = mainClass.OpenBraceToken;
            SyntaxToken newToken = token.WithTrailingTrivia(ifCloseList);

            root = root.ReplaceToken(token, newToken);

            mainClass = this.getTopLevelClasses(root.SyntaxTree).First();

            token    = mainClass.CloseBraceToken;
            newToken = token.WithLeadingTrivia(ifOpenList);

            root = root.ReplaceToken(token, newToken);

            newTree = root.SyntaxTree;
            return(newTree);
        }
Ejemplo n.º 5
0
        public IfDirectiveBlock(IfDirectiveTriviaSyntax node, string conditionToken, bool isGeneratorToken) : base(node)
        {
            var childNodesCollectionChanged = (INotifyCollectionChanged)this.ChildNodes;

            this.ElifBlocks       = new List <ElifBlock>();
            this.Condition        = conditionToken;
            this.IsGeneratorToken = isGeneratorToken;

            childNodesCollectionChanged.CollectionChanged += (sender, e) =>
            {
                if (e.Action == NotifyCollectionChangedAction.Add)
                {
                    foreach (var item in e.NewItems.Cast <IfDirectiveNodeBase>())
                    {
                        switch (item.Node)
                        {
                        case IfDirectiveTriviaSyntax ifDirective:
                            this.IfBlock     = (IfBlock)item;
                            this.ActiveBlock = item;
                            break;

                        case ElifDirectiveTriviaSyntax elifDirective:
                            this.ElifBlocks.Add((ElifBlock)item);
                            this.ActiveBlock = item;
                            break;

                        case ElseDirectiveTriviaSyntax elseDirective:
                            this.ElseBlock   = (ElseBlock)item;
                            this.ActiveBlock = item;
                            break;

                        case EndIfDirectiveTriviaSyntax endIfDirective:
                            this.EndIfBlock = (EndIfBlock)item;
                            break;
                        }
                    }
                }
            };

            this.AddChild(new IfBlock(node));
        }
Ejemplo n.º 6
0
        public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
        {
            var conditionToken   = node.Condition.GetText().ToString();
            var isGeneratorToken = conditionToken.StartsWith("GENERATOR_TOKEN_");
            IfDirectiveBlock ifDirectiveBlock = new IfDirectiveBlock(node, conditionToken, isGeneratorToken);

            if (ifDirectiveBlockStack.Count == 0)
            {
                this.RootIfDirectiveBlocks.Add(ifDirectiveBlock);
            }
            else
            {
                var ifDirectiveBlockPeek = ifDirectiveBlockStack.Peek();
                var activeBlock          = ifDirectiveBlockPeek.ActiveBlock;

                activeBlock.AddChild(ifDirectiveBlock);
            }

            this.IfDirectiveBlocks.Add(ifDirectiveBlock);
            ifDirectiveBlockStack.Push(ifDirectiveBlock);

            base.VisitIfDirectiveTrivia(node);
        }
Ejemplo n.º 7
0
 public virtual void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     DefaultVisit(node);
 }
Ejemplo n.º 8
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 9
0
 public IfBlock(IfDirectiveTriviaSyntax node) : base(node)
 {
     this.Condition = node.Condition.ToFullString();
 }
Ejemplo n.º 10
0
 public override SyntaxNode VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     return(null);
 }
Ejemplo n.º 11
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     CreateBranchingDirectiveTag(node);
 }
 public TameIfDirectiveTriviaSyntax(IfDirectiveTriviaSyntax node)
 {
     Node = node;
     AddChildren();
 }
Ejemplo n.º 13
0
 private void ClassifyIfDirective(IfDirectiveTriviaSyntax node)
 {
     AddClassification(node.HashToken, ClassificationTypeNames.PreprocessorKeyword);
     AddClassification(node.IfKeyword, ClassificationTypeNames.PreprocessorKeyword);
     ClassifyPreprocessorExpression(node.Condition);
     ClassifyDirectiveTrivia(node);
 }
Ejemplo n.º 14
0
 public override Evaluation VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     return(base.VisitIfDirectiveTrivia(node));
 }
Ejemplo n.º 15
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitIfDirectiveTrivia(node);
 }
Ejemplo n.º 16
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node) => base.VisitIfDirectiveTrivia(node);
Ejemplo n.º 17
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     InsertLLOCMap(node.GetLocation());
     base.VisitIfDirectiveTrivia(node);
 }
Ejemplo n.º 18
0
        public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
        {
            var ifStart = new Entities.IfDirective(cx, node);

            ifStarts.Push(new IfDirectiveStackElement(ifStart));
        }
Ejemplo n.º 19
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     _activeSpanStart = node.SpanStart;
     base.VisitIfDirectiveTrivia(node);
 }
Ejemplo n.º 20
0
 public override SyntaxNode VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     node = (IfDirectiveTriviaSyntax)base.VisitIfDirectiveTrivia(node);
     Classes.Add(node);
     return(node);
 }
Ejemplo n.º 21
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitIfDirectiveTrivia(node);
 }
Ejemplo n.º 23
0
 public override void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     Debug.Fail(node.ToString());
     base.VisitIfDirectiveTrivia(node);
 }
Ejemplo n.º 24
0
 public virtual void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     DefaultVisit(node);
 }
Ejemplo n.º 25
0
 public override Ust VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node)
 {
     throw new InvalidOperationException();
 }
 //
 // Summary:
 //     Called when the visitor visits a IfDirectiveTriviaSyntax node.
 public virtual void VisitIfDirectiveTrivia(IfDirectiveTriviaSyntax node);