Пример #1
0
        public ForSyntax(
            Token openSquare,
            Token forKeyword,
            LocalVariableSyntax itemVariable,
            SyntaxBase inKeyword,
            SyntaxBase expression,
            SyntaxBase colon,
            SyntaxBase body,
            SyntaxBase closeSquare)
        {
            AssertTokenType(openSquare, nameof(openSquare), TokenType.LeftSquare);
            AssertKeyword(forKeyword, nameof(forKeyword), LanguageConstants.ForKeyword);
            AssertSyntaxType(inKeyword, nameof(inKeyword), typeof(Token), typeof(SkippedTriviaSyntax));
            AssertKeyword(inKeyword as Token, nameof(inKeyword), LanguageConstants.InKeyword);
            AssertSyntaxType(colon, nameof(colon), typeof(Token), typeof(SkippedTriviaSyntax));
            AssertTokenType(colon as Token, nameof(colon), TokenType.Colon);
            AssertSyntaxType(closeSquare, nameof(closeSquare), typeof(Token), typeof(SkippedTriviaSyntax));
            AssertTokenType(closeSquare as Token, nameof(closeSquare), TokenType.RightSquare);

            this.OpenSquare   = openSquare;
            this.ForKeyword   = forKeyword;
            this.ItemVariable = itemVariable;
            this.InKeyword    = inKeyword;
            this.Expression   = expression;
            this.Colon        = colon;
            this.Body         = body;
            this.CloseSquare  = closeSquare;
        }
Пример #2
0
        protected virtual SyntaxBase ReplaceLocalVariableSyntax(LocalVariableSyntax syntax)
        {
            var hasChanges = TryRewriteStrict(syntax.Name, out var name);

            if (!hasChanges)
            {
                return(syntax);
            }

            return(new LocalVariableSyntax(name));
        }
Пример #3
0
        protected virtual LocalVariableSyntax ReplaceLocalVariableSyntax(LocalVariableSyntax syntax)
        {
            var hasChanges = Rewrite(syntax.Name, out var name);

            if (!hasChanges)
            {
                return(syntax);
            }

            return(new LocalVariableSyntax(name));
        }
Пример #4
0
        public ForVariableBlockSyntax(Token openParen, LocalVariableSyntax itemVariable, SyntaxBase comma, LocalVariableSyntax indexVariable, SyntaxBase closeParen)
        {
            AssertTokenType(openParen, nameof(openParen), TokenType.LeftParen);
            AssertSyntaxType(comma, nameof(comma), typeof(Token), typeof(SkippedTriviaSyntax));
            AssertTokenType(comma as Token, nameof(comma), TokenType.Comma);
            AssertSyntaxType(closeParen, nameof(closeParen), typeof(Token), typeof(SkippedTriviaSyntax));
            AssertTokenType(closeParen as Token, nameof(closeParen), TokenType.RightParen);

            this.OpenParen     = openParen;
            this.ItemVariable  = itemVariable;
            this.Comma         = comma;
            this.IndexVariable = indexVariable;
            this.CloseParen    = closeParen;
        }
Пример #5
0
 void ISyntaxVisitor.VisitLocalVariableSyntax(LocalVariableSyntax syntax) => ReplaceCurrent(syntax, ReplaceLocalVariableSyntax);
Пример #6
0
 public virtual void VisitLocalVariableSyntax(LocalVariableSyntax syntax)
 {
     this.Visit(syntax.Name);
 }