本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax.GetTrailingTrivia方法的典型用法代码示例。如果您正苦于以下问题:C# ConstructorDeclarationSyntax.GetTrailingTrivia方法的具体用法?C# ConstructorDeclarationSyntax.GetTrailingTrivia怎么用?C# ConstructorDeclarationSyntax.GetTrailingTrivia使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax
的用法示例。
在下文中一共展示了ConstructorDeclarationSyntax.GetTrailingTrivia方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TransverseConstructors
private Constructor TransverseConstructors(ConstructorDeclarationSyntax cds)
{
Constructor retConstructor = new Constructor();
//public int DecisionsCount { get; }
//public int ExitPoints { get; set; }
//public bool IsFriend { get; }
//public bool IsPolymophic { get; }
//public bool IsPublic { get; }
//public bool IsStatic { get; }
//public List<Preprocessor> Preprocessors { get; set; }
retConstructor.Name = cds.Identifier.ValueText;
if (cds.HasLeadingTrivia)
{
SetOuterComments(retConstructor, cds.GetLeadingTrivia().ToFullString());
}
if (cds.HasTrailingTrivia)
{
SetInnerComments(retConstructor, cds.GetTrailingTrivia().ToFullString());
}
foreach (SyntaxToken st in cds.Modifiers)
{
string modifier = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(st.ValueText);
Encapsulation encap;
Qualifiers qual;
if (System.Enum.TryParse<Encapsulation>(modifier, out encap))
{
retConstructor.Encapsulation.Add(encap);
}
else if (System.Enum.TryParse<Qualifiers>(modifier, out qual))
{
retConstructor.Qualifiers.Add(qual);
}
}
//TypeSyntax ts = cds.ReturnType;
//Model.Type retType = new Model.Type();
//retType.Name = ts.ToString();
//retType.IsKnownType = ts.Kind.IsKeywordKind();
//retType.IsNotUserDefined = ts.Kind.IsKeywordKind();
//TODO
//rettype.generictype
//retConstructor.ReturnType = retType;
ParameterListSyntax pls = cds.ParameterList;
foreach (ParameterSyntax ps in pls.Parameters)
{
retConstructor.Parameters.Add(TraverseParamaters(ps));
}
BlockSyntax bs = cds.Body;
var labelStatements = from aLabelStatement in bs.ChildNodes().OfType<LabeledStatementSyntax>() select aLabelStatement;
foreach (LabeledStatementSyntax lss in labelStatements)
{
retConstructor.LabelStatements.Add(TraverseLabelStatements(lss));
}
var goToStatements = from aGoToStatement in bs.ChildNodes().OfType<GotoStatementSyntax>() select aGoToStatement;
foreach (GotoStatementSyntax gtss in goToStatements)
{
GoTo gt = TraverseGoToStatements(gtss);
retConstructor.GoToStatements.Add(gt);
}
//Preprocessors = new List<Preprocessor>();
//Base = new List<InvokedMethod>();
//Decisions = new Decisions();
var accessVarsDecl = from aAccessVarsDecl in bs.ChildNodes().OfType<LocalDeclarationStatementSyntax>() select aAccessVarsDecl;
foreach (LocalDeclarationStatementSyntax ldss in accessVarsDecl)
{
Method tempMethod = TransverseAccessVars(ldss);
retConstructor.AccessedVariables.AddRange(tempMethod.AccessedVariables);
retConstructor.InvokedMethods.AddRange(tempMethod.InvokedMethods);
}
var ifStatements = from aIfStatement in bs.ChildNodes().OfType<IfStatementSyntax>() select aIfStatement;
foreach (IfStatementSyntax iss in ifStatements)
{
int exitPoints = retConstructor.ExitPoints;
Decisions tempDecision = TraverseIfStatements(iss, ref exitPoints);
retConstructor.Decisions.IfStatements.AddRange(tempDecision.IfStatements);
retConstructor.Decisions.ElseStatements.AddRange(tempDecision.ElseStatements);
retConstructor.Decisions.ForEachStatements.AddRange(tempDecision.ForEachStatements);
retConstructor.Decisions.ForStatements.AddRange(tempDecision.ForStatements);
retConstructor.Decisions.WhileLoops.AddRange(tempDecision.WhileLoops);
retConstructor.Decisions.DoWhileLoops.AddRange(tempDecision.DoWhileLoops);
retConstructor.Decisions.Catches.AddRange(tempDecision.Catches);
retConstructor.Decisions.SwitchStatements.AddRange(tempDecision.SwitchStatements);
retConstructor.ExitPoints = exitPoints;
}
var elseStatements = from aElseStatements in bs.ChildNodes().OfType<ElseClauseSyntax>() select aElseStatements;
foreach (ElseClauseSyntax ecs in elseStatements)
{
int exitPoints = retConstructor.ExitPoints;
Decisions tempDecision = TraverseElseClauses(ecs, ref exitPoints);
retConstructor.Decisions.IfStatements.AddRange(tempDecision.IfStatements);
retConstructor.Decisions.ElseStatements.AddRange(tempDecision.ElseStatements);
retConstructor.Decisions.ForEachStatements.AddRange(tempDecision.ForEachStatements);
//.........这里部分代码省略.........