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