private static List <State> FetchStates(NamespaceDeclarationSyntax @namespace) { var enumDecl = @namespace.GetFirstOfType <EnumDeclarationSyntax>(); var enumMembersDecl = enumDecl.ChildNodes().OfType <EnumMemberDeclarationSyntax>().ToArray(); return(enumMembersDecl.Select(mDecl => new State { Name = mDecl.Identifier.ToString() }).ToList()); }
private static State FetchFinalState(NamespaceDeclarationSyntax @namespace, List <State> states) { var componentDecl = @namespace.GetFirstOfType <ClassDeclarationSyntax>(); var firstGenericBaseTypeDecl = componentDecl.BaseList.Types.FirstOrDefault(t => t.Type is GenericNameSyntax).Type as GenericNameSyntax; if (firstGenericBaseTypeDecl.Identifier.ToString() == "SectorComponent") { return(null); } var constructorDecl = componentDecl.GetFirstOfType <ConstructorDeclarationSyntax>(); var enumAccessExpression = constructorDecl.Initializer.ArgumentList.Arguments[0].Expression as MemberAccessExpressionSyntax; return(states.FirstOrDefault(s => s.Name == enumAccessExpression?.Name?.ToString())); }
private static string FetchQuestName(NamespaceDeclarationSyntax @namespace) { var classDecl = @namespace.GetFirstOfType <ClassDeclarationSyntax>(); return(classDecl.Identifier.ToString()); }