From 320ce0750f60dbb54b06faaa78d3ea2fe2dee2c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Konvi=C4=8Dka?= <konvicka.g630@gmail.com> Date: Thu, 25 Jan 2024 12:46:26 +0100 Subject: [PATCH] feat(#27): Add support for range based loops for AD --- LanguageRecogniser/Cpp/CppActivityDiagramVisitor.cs | 12 +++++++++++- UnitTest/Input/main.cpp | 4 ++++ UnitTest/WebApiTests.cs | 5 +++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/LanguageRecogniser/Cpp/CppActivityDiagramVisitor.cs b/LanguageRecogniser/Cpp/CppActivityDiagramVisitor.cs index 8415629..d6844cc 100644 --- a/LanguageRecogniser/Cpp/CppActivityDiagramVisitor.cs +++ b/LanguageRecogniser/Cpp/CppActivityDiagramVisitor.cs @@ -205,7 +205,17 @@ public class CppActivityDiagramVisitor : CPP14ParserBaseVisitor<object> public override object VisitIterationStatement(CPP14Parser.IterationStatementContext context) { - var condition = context.condition().GetText(); + string condition = string.Empty; + if (context.forRangeDeclaration() != null) + { + string rangeDecl = ExtractOriginalText(context.forRangeDeclaration()); + string rangeExpr = ExtractOriginalText(context.forRangeInitializer()); + condition = $"{rangeDecl}:{rangeExpr}"; + } + else if(context.condition() != null) + { + condition = context.condition().GetText(); + } if(context.forInitStatement() != null) { diff --git a/UnitTest/Input/main.cpp b/UnitTest/Input/main.cpp index c85c1ad..7b92cd7 100644 --- a/UnitTest/Input/main.cpp +++ b/UnitTest/Input/main.cpp @@ -38,6 +38,10 @@ int main() { person1.age = 25; person1.displayInfo(); + for(auto& outlink : node->outlinks) { + outlink.hi(); + } + if(person1.age > 18) { std::cout << "Student is an adult" << std::endl; int i = 0; diff --git a/UnitTest/WebApiTests.cs b/UnitTest/WebApiTests.cs index 78aabc1..16ae5f9 100644 --- a/UnitTest/WebApiTests.cs +++ b/UnitTest/WebApiTests.cs @@ -380,6 +380,11 @@ public class WebApiTests //check if filestream is not empty var stream = fileStreamResult.FileStream; Assert.That(stream.Length > 0); + string contents; + using(var sr = new StreamReader(stream)) + { + contents = sr.ReadToEnd(); + } } else { -- GitLab