当前位置: 首页>>代码示例>>C#>>正文


C# CSharpSyntaxNode.GetFirstToken方法代码示例

本文整理汇总了C#中CSharpSyntaxNode.GetFirstToken方法的典型用法代码示例。如果您正苦于以下问题:C# CSharpSyntaxNode.GetFirstToken方法的具体用法?C# CSharpSyntaxNode.GetFirstToken怎么用?C# CSharpSyntaxNode.GetFirstToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CSharpSyntaxNode的用法示例。


在下文中一共展示了CSharpSyntaxNode.GetFirstToken方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ReportQueryInferenceFailed

        internal static void ReportQueryInferenceFailed(CSharpSyntaxNode queryClause, string methodName, BoundExpression receiver, AnalyzedArguments arguments, ImmutableArray<Symbol> symbols, DiagnosticBag diagnostics)
        {
            string clauseKind = null;
            bool multiple = false;
            switch (queryClause.Kind())
            {
                case SyntaxKind.JoinClause:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.JoinKeyword);
                    multiple = true;
                    break;
                case SyntaxKind.LetClause:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.LetKeyword);
                    break;
                case SyntaxKind.SelectClause:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.SelectKeyword);
                    break;
                case SyntaxKind.WhereClause:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.WhereKeyword);
                    break;
                case SyntaxKind.OrderByClause:
                case SyntaxKind.AscendingOrdering:
                case SyntaxKind.DescendingOrdering:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.OrderByKeyword);
                    multiple = true;
                    break;
                case SyntaxKind.QueryContinuation:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.IntoKeyword);
                    break;
                case SyntaxKind.GroupClause:
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.GroupKeyword) + " " + SyntaxFacts.GetText(SyntaxKind.ByKeyword);
                    multiple = true;
                    break;
                case SyntaxKind.FromClause:
                    if (ReportQueryInferenceFailedSelectMany((FromClauseSyntax)queryClause, methodName, receiver, arguments, symbols, diagnostics))
                    {
                        return;
                    }
                    clauseKind = SyntaxFacts.GetText(SyntaxKind.FromKeyword);
                    break;
                default:
                    clauseKind = "unknown";
                    Debug.Assert(false, "invalid query clause kind " + queryClause.Kind());
                    break;
            }

            diagnostics.Add(new DiagnosticInfoWithSymbols(
                multiple ? ErrorCode.ERR_QueryTypeInferenceFailedMulti : ErrorCode.ERR_QueryTypeInferenceFailed,
                new object[] { clauseKind, methodName },
                symbols), queryClause.GetFirstToken().GetLocation());
        }
开发者ID:ehsansajjad465,项目名称:roslyn,代码行数:50,代码来源:Binder_QueryErrors.cs

示例2: IsInAnonymousFunctionOrQuery

        internal static bool IsInAnonymousFunctionOrQuery(int position, CSharpSyntaxNode anonymousFunction)
        {
            SyntaxToken firstIncluded;
            CSharpSyntaxNode body;

            switch (anonymousFunction.Kind)
            {
                case SyntaxKind.SimpleLambdaExpression:
                    SimpleLambdaExpressionSyntax simple = (SimpleLambdaExpressionSyntax)anonymousFunction;
                    firstIncluded = simple.Parameter.Identifier;
                    body = simple.Body;
                    break;
                case SyntaxKind.ParenthesizedLambdaExpression:
                    ParenthesizedLambdaExpressionSyntax parenthesized = (ParenthesizedLambdaExpressionSyntax)anonymousFunction;
                    firstIncluded = parenthesized.ParameterList.OpenParenToken;
                    body = parenthesized.Body;
                    break;
                case SyntaxKind.AnonymousMethodExpression:
                    AnonymousMethodExpressionSyntax anon = (AnonymousMethodExpressionSyntax)anonymousFunction;
                    firstIncluded = anon.DelegateKeyword;
                    body = anon.Block;
                    break;
                default:
                    // OK, so we have some kind of query clause.  They all start with a keyword token, so we'll skip that.
                    firstIncluded = anonymousFunction.GetFirstToken().GetNextToken();
                    return IsBetweenTokens(position, firstIncluded, anonymousFunction.GetLastToken().GetNextToken());
            }

            var bodyStatement = body as StatementSyntax;
            var firstExcluded = bodyStatement != null ?
                GetFirstExcludedToken(bodyStatement) :
                (SyntaxToken)SyntaxNavigator.Instance.GetNextToken(body, predicate: null, stepInto: null);

            return IsBetweenTokens(position, firstIncluded, firstExcluded);
        }
开发者ID:riversky,项目名称:roslyn,代码行数:35,代码来源:LookupPosition.cs

示例3: GetCallerLocation

 private static SourceLocation GetCallerLocation(CSharpSyntaxNode syntax)
 {
     switch (syntax.Kind)
     {
         case SyntaxKind.InvocationExpression:
             return new SourceLocation(((InvocationExpressionSyntax)syntax).ArgumentList.OpenParenToken);
         case SyntaxKind.ObjectCreationExpression:
             return new SourceLocation(((ObjectCreationExpressionSyntax)syntax).NewKeyword);
         case SyntaxKind.BaseConstructorInitializer:
         case SyntaxKind.ThisConstructorInitializer:
             return new SourceLocation(((ConstructorInitializerSyntax)syntax).ArgumentList.OpenParenToken);
         case SyntaxKind.FromClause:
         case SyntaxKind.GroupClause:
         case SyntaxKind.JoinClause:
         case SyntaxKind.JoinIntoClause:
         case SyntaxKind.LetClause:
         case SyntaxKind.OrderByClause:
         case SyntaxKind.SelectClause:
         case SyntaxKind.WhereClause:
             return new SourceLocation(syntax.GetFirstToken());
         default:
             return null;
     }
 }
开发者ID:riversky,项目名称:roslyn,代码行数:24,代码来源:LocalRewriter_Call.cs

示例4: GetCallerLocation

        private static SourceLocation GetCallerLocation(CSharpSyntaxNode syntax, ThreeState enableCallerInfo)
        {
            switch (enableCallerInfo)
            {
                case ThreeState.False:
                    return null;
                case ThreeState.True:
                    return new SourceLocation(syntax.GetFirstToken());
            }

            Debug.Assert(enableCallerInfo == ThreeState.Unknown);

            switch (syntax.Kind())
            {
                case SyntaxKind.InvocationExpression:
                    return new SourceLocation(((InvocationExpressionSyntax)syntax).ArgumentList.OpenParenToken);
                case SyntaxKind.ObjectCreationExpression:
                    return new SourceLocation(((ObjectCreationExpressionSyntax)syntax).NewKeyword);
                case SyntaxKind.BaseConstructorInitializer:
                case SyntaxKind.ThisConstructorInitializer:
                    return new SourceLocation(((ConstructorInitializerSyntax)syntax).ArgumentList.OpenParenToken);
                case SyntaxKind.ElementAccessExpression:
                    return new SourceLocation(((ElementAccessExpressionSyntax)syntax).ArgumentList.OpenBracketToken);
                case SyntaxKind.FromClause:
                case SyntaxKind.GroupClause:
                case SyntaxKind.JoinClause:
                case SyntaxKind.JoinIntoClause:
                case SyntaxKind.LetClause:
                case SyntaxKind.OrderByClause:
                case SyntaxKind.SelectClause:
                case SyntaxKind.WhereClause:
                    return new SourceLocation(syntax.GetFirstToken());
                default:
                    return null;
            }
        }
开发者ID:nevinclement,项目名称:roslyn,代码行数:36,代码来源:LocalRewriter_Call.cs

示例5: ReportQueryInferenceFailed

        internal static void ReportQueryInferenceFailed(CSharpSyntaxNode queryClause, string methodName, BoundExpression receiver, AnalyzedArguments arguments, ImmutableArray<Symbol> symbols, DiagnosticBag diagnostics)
        {
            string clauseKind = null;
            bool multiple = false;
            switch (queryClause.Kind)
            {
                case SyntaxKind.JoinClause:
                    clauseKind = "join"; // TODO: should be ErrorCode.IDS_JoinClause.Localize();
                    multiple = true;
                    break;
                case SyntaxKind.LetClause:
                    clauseKind = "let"; // TODO: ErrorCode.IDS_LetClause
                    break;
                case SyntaxKind.SelectClause:
                    clauseKind = "select"; // TODO ErrorCode.IDS_Select
                    break;
                case SyntaxKind.WhereClause:
                    clauseKind = "where"; // TODO: ErrorCode.IDS_Where
                    break;
                case SyntaxKind.OrderByClause:
                case SyntaxKind.AscendingOrdering:
                case SyntaxKind.DescendingOrdering:
                    clauseKind = "order by"; // TODO: ErrorCode.IDS_OrderByClause
                    multiple = true;
                    break;
                case SyntaxKind.QueryContinuation:
                    clauseKind = "into"; // TODO: ErrorCode.IDS_ContinuationClause
                    break;
                case SyntaxKind.GroupClause:
                    clauseKind = "group by"; // TODO: ErrorCode.IDS_GroupByClause
                    multiple = true;
                    break;
                case SyntaxKind.FromClause:
                    if (ReportQueryInferenceFailedSelectMany((FromClauseSyntax)queryClause, methodName, receiver, arguments, symbols, diagnostics))
                    {
                        return;
                    }
                    clauseKind = "from"; // TODO: ErrorCode.IDS_FromClause
                    break;
                default:
                    clauseKind = "unknown";
                    Debug.Assert(false, "invalid query clause kind " + queryClause.Kind);
                    break;
            }

            diagnostics.Add(new DiagnosticInfoWithSymbols(
                multiple ? ErrorCode.ERR_QueryTypeInferenceFailedMulti : ErrorCode.ERR_QueryTypeInferenceFailed,
                new object[] { clauseKind, methodName },
                symbols), queryClause.GetFirstToken().GetLocation());
        }
开发者ID:modulexcite,项目名称:pattern-matching-csharp,代码行数:50,代码来源:Binder_QueryErrors.cs


注:本文中的CSharpSyntaxNode.GetFirstToken方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。