private static void CheckStatement(SyntaxNodeAnalysisContext context, StatementSyntax statement, IEnumerable <StatementSyntax> precedingStatements) { if (statement.ChildNodes().Count() < 2) { return; } var precedingStatement = precedingStatements .FirstOrDefault(preceding => EquivalenceChecker.AreEquivalent(statement, preceding)); if (precedingStatement != null) { ReportSyntaxNode(context, statement, precedingStatement, "branch"); } }
static public List <Object> ReadBlock(StatementSyntax blockstatement) {//debug String program = ""; String variableDeclarations = ""; List <SyntaxNode> original = new List <SyntaxNode>(); foreach (StatementSyntax statement in blockstatement.ChildNodes().OfType <StatementSyntax>()) { if (statement.GetType().Name == "IfStatementSyntax") { program += ReadIfStatement(statement); program = program + strings["end-if"]; } else { if (statement.GetType().Name == "LocalDeclarationStatementSyntax") { if (statement.ToFullString().Contains("=")) { if (statement.ToFullString().Split("=")[0].Split(" ").Where(e => !string.IsNullOrEmpty(e)).ToArray()[0] == "String" || statement.ToFullString().Split("=")[0].Split(" ").Where(e => !string.IsNullOrEmpty(e)).ToArray()[0] == "string") { variableDeclarations += statement.ToFullString().Split("=")[0] + "= new " + statement.ToFullString().Split("=")[0].Split(" ").Where(e => !string.IsNullOrEmpty(e)).ToArray()[0] + "(\"\");\n"; } else { variableDeclarations += statement.ToFullString().Split("=")[0] + "= new " + statement.ToFullString().Split("=")[0].Split(" ").Where(e => !string.IsNullOrEmpty(e)).ToArray()[0] + "();\n"; } program += statement.ToFullString().Split("=")[0].Split(" ").Where(e => !string.IsNullOrEmpty(e)).ToArray()[statement.ToFullString().Split("=")[0].Split(" ").Where(e => !string.IsNullOrEmpty(e)).ToArray().Count() - 1] + " =" + statement.ToFullString().Split("=")[1]; //foutje als er een string aanwezig is met = } else { variableDeclarations += statement.ToFullString(); } } else if (!original.Contains(statement.Parent)) { program = program + statement.ToFullString(); } } } List <Object> results = new List <Object>(); results.Add(program); results.Add(variableDeclarations); return(results); }
private IEnumerable <StatementSyntax> JoinStatements(StatementSyntax firstStatements, StatementSyntax secondStatements) { var statements = new List <StatementSyntax>(); if (firstStatements.IsKind(SK.Block)) { statements.AddRange(firstStatements.ChildNodes().OfType <StatementSyntax>()); } else { statements.Add(firstStatements); } if (secondStatements.IsKind(SK.Block)) { statements.AddRange(secondStatements.ChildNodes().OfType <StatementSyntax>()); } else { statements.Add(secondStatements); } return(statements); }