本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.ForEachStatementSyntax.GetTrailingTrivia方法的典型用法代码示例。如果您正苦于以下问题:C# ForEachStatementSyntax.GetTrailingTrivia方法的具体用法?C# ForEachStatementSyntax.GetTrailingTrivia怎么用?C# ForEachStatementSyntax.GetTrailingTrivia使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.CSharp.Syntax.ForEachStatementSyntax
的用法示例。
在下文中一共展示了ForEachStatementSyntax.GetTrailingTrivia方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TraverseForEachStatements
private Decisions TraverseForEachStatements(ForEachStatementSyntax fes, ref int exitPoints, bool nested = false)
{
Decisions retDecision = new Decisions();
ForEachStatement retForEach = new ForEachStatement();
if (fes.HasLeadingTrivia)
{
SetOuterComments(retForEach, fes.GetLeadingTrivia().ToFullString());
}
if (fes.HasTrailingTrivia)
{
SetInnerComments(retForEach, fes.GetTrailingTrivia().ToFullString());
}
var binaryExpressions = from aBinaryExpression in fes.ChildNodes().OfType<BinaryExpressionSyntax>() select aBinaryExpression;
retForEach.ConditionCount = binaryExpressions.Count();
foreach (BinaryExpressionSyntax bes in binaryExpressions)
{
Method tempMethod = TraverseBinaryExpression(bes);
retForEach.AccessedVars.AddRange(tempMethod.AccessedVariables);
retForEach.InvokedMethods.AddRange(tempMethod.InvokedMethods);
}
var catches = from aCatch in fes.ChildNodes().OfType<CatchClauseSyntax>() select aCatch;
foreach (CatchClauseSyntax ccs in catches)
{
Decisions tempCatch = TraverseCatchClauses(ccs, ref exitPoints, true);
retForEach.Nested.AddRange(tempCatch.Catches);
}
var statements = from aStatement in fes.Statement.ChildNodes().OfType<StatementSyntax>() select aStatement;
List<BaseDecisions> retBd = new List<BaseDecisions>();
List<InvokedMethod> retIm = new List<InvokedMethod>();
#region Nested and Invoked Methods and accessed vars
foreach (StatementSyntax ss in statements)
{
//if (ss is BreakStatementSyntax)
//{
//}
//else if (ss is CheckedStatementSyntax)
//{
//}
//else if (ss is ContinueStatementSyntax)
//{
//}
if (ss is DoStatementSyntax)
{
Decisions dwl = TraverseDoStatements(ss as DoStatementSyntax, ref exitPoints, true);
retForEach.Nested.AddRange(dwl.DoWhileLoops);
//dwl.IsNested = true;
//retForEach.Nested.Add(dwl);
}
//else if (ss is EmptyStatementSyntax)
//{
//}
else if (ss is ExpressionStatementSyntax)
{
var vars = from aVar in ss.ChildNodes().OfType<BinaryExpressionSyntax>() select aVar;
foreach (BinaryExpressionSyntax bes in vars)
{
Method tempMethod = TraverseBinaryExpression(bes);
retForEach.AccessedVars.AddRange(tempMethod.AccessedVariables);
retForEach.InvokedMethods.AddRange(tempMethod.InvokedMethods);
}
var invokedMethods = from aInvokedMethod in ss.ChildNodes().OfType<InvocationExpressionSyntax>() select aInvokedMethod;
foreach (InvocationExpressionSyntax ies in invokedMethods)
{
Method tempMethod = TraverseInvocationExpression(ies);
retForEach.AccessedVars.AddRange(tempMethod.AccessedVariables);
retForEach.InvokedMethods.AddRange(tempMethod.InvokedMethods);
}
}
//else if (ss is FixedStatementSyntax)
//{
//}
else if (ss is ForEachStatementSyntax)
{
Decisions forES = TraverseForEachStatements(ss as ForEachStatementSyntax, ref exitPoints, true);
retForEach.Nested.AddRange(forES.ForEachStatements);
//forES.IsNested = true;
//retForEach.Nested.Add(forES);
}
else if (ss is ForStatementSyntax)
{
Decisions fs = TraverseForStatements(ss as ForStatementSyntax, ref exitPoints, true);
retForEach.Nested.AddRange(fs.ForStatements);
//fs.IsNested = true;
//retForEach.Nested.Add(fs);
}
//else if (ss is GotoStatementSyntax)
//{
//}
else if (ss is IfStatementSyntax)
{
Decisions ifstm = TraverseIfStatements(ss as IfStatementSyntax, ref exitPoints, true);
retForEach.Nested.AddRange(ifstm.IfStatements);
//ifstm.IsNested = true;
//retForEach.Nested.Add(ifstm);
}
//else if (ss is LabeledStatementSyntax)
//.........这里部分代码省略.........