Ejemplo n.º 1
0
        public override SyntaxToken VisitToken(SyntaxToken token)
        {
            if (token.Parent is not MemberAccessExpressionSyntax memberAccessExpression)
            {
                return(token);
            }

            var identifierName = memberAccessExpression.GetIdentifierName();

            if (identifierName == nameof(ITargetDefinition.Executes) ||
                identifierName == nameof(ITargetDefinition.DependsOn) ||
                identifierName == nameof(ITargetDefinition.DependentFor) ||
                identifierName == nameof(ITargetDefinition.OnlyWhenStatic) ||
                identifierName == nameof(ITargetDefinition.OnlyWhenDynamic) ||
                identifierName == nameof(ITargetDefinition.ProceedAfterFailure))
            {
                return(token.WithLeadingTrivia(LineFeed.Concat(Indent).Concat(Indent)));
            }

            if (identifierName.StartsWith("Set"))
            {
                return(token.WithLeadingTrivia(LineFeed.Concat(Indent).Concat(Indent).Concat(Indent)));
            }

            return(token);
        }
Ejemplo n.º 2
0
        public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node)
        {
            node = (PropertyDeclarationSyntax)base.VisitPropertyDeclaration(node).NotNull();

            return((node.Type as SimpleNameSyntax)?.Identifier.Text == nameof(Target)
                ? node.WithLeadingTrivia(LineFeed.Concat(Indent))
                : node);
        }
Ejemplo n.º 3
0
 .Replace(LineFeed, Environment.NewLine);
Ejemplo n.º 4
0
        public void TestSymbols()
        {
            var s1 = LineFeed.Negate().Maybe();

            Assert.AreEqual(s1.Expression, @"[^\n]?");

            var s2 = CarriageReturn.OnceOrMore();

            Assert.AreEqual(s2.Expression, @"\r+");

            s1 = Backspace.Negate().Maybe();
            Assert.AreEqual(s1.Expression, @"[^\x08]?");

            s2 = Backspace.OnceOrMore();
            Assert.AreEqual(s2.Expression, @"\x08+");

            s2 = CarriageReturnLineFeed.NoneOrMany();
            Assert.AreEqual(s2.Expression, @"(?:\r\n)*");

            var p = (LineFeed | CarriageReturnLineFeed).AtLeast(2);

            Assert.AreEqual(p.Expression, @"(?:\n|\r\n){2,}");

            p = ("abc" + LineFeed | CarriageReturnLineFeed).AtLeast(2);
            Assert.AreEqual(p.Expression, @"(?:abc\n|\r\n){2,}");

            p = ("abc" + (LineFeed | CarriageReturnLineFeed)).Repeat(5);
            Assert.AreEqual(p.Expression, @"(?:abc(?:\n|\r\n)){5}");

            p = "Hi." + AnyChar;
            Assert.AreEqual(p.Expression, @"Hi\..");


            s2 = AnyWordChars[3, 4];
            Assert.AreEqual(s2.Expression, @"(?:\w+){3,4}");

            s2 = (AnyWordChars | "; ") + EndOfLine;
            Assert.AreEqual(s2.Expression, @"(?:\w+|;\ )$");

            s2 = WhiteSpace + AnyWordChars + "; " + EndOfLine;
            Assert.AreEqual(s2.Expression, @"\s\w+;\ $");

            s2 = AnyWordChars | s2;
            Assert.AreEqual(s2.Expression, @"\w+|\s\w+;\ $");

            s2 = s2 + AnyWordChars;
            Assert.AreEqual(s2.Expression, @"(?:\w+|\s\w+;\ $)\w+");

            s2 = s2 | AnyWordChars;
            Assert.AreEqual(s2.Expression, @"(?:\w+|\s\w+;\ $)\w+|\w+");

            s2 = (
                (AnyWordChars
                 | (WhiteSpace + AnyWordChars + "; " + EndOfLine)
                )
                + AnyWordChars
                )
                 | AnyWordChars;
            Assert.AreEqual(s2.Expression, @"(?:\w+|\s\w+;\ $)\w+|\w+");

            var c = AsciiChar('\t')[2];

            Assert.AreEqual(c.Expression, @"\x09{2}");

            c = AsciiChar(222)[2, 0];
            Assert.AreEqual(c.Expression, @"\xde{2,}");

            c = AsciiChar(0xaf)[0, 0];
            Assert.AreEqual(c.Expression, @"\xaf*");
        }