Skip to content
Snippets Groups Projects
Commit 68fa5010 authored by kon0379's avatar kon0379
Browse files

Merge branch 'develop' into 'main'

merge: develop into main

See merge request !17
parents 2d85d2b0 5d88a20b
1 merge request!17merge: develop into main
Pipeline #1229 passed with stages
in 6 minutes and 37 seconds
...@@ -35,6 +35,9 @@ ...@@ -35,6 +35,9 @@
<TestAncestor> <TestAncestor>
<TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions</TestId> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions</TestId>
</TestAncestor> </TestAncestor>
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=952a43de_002D77a2_002D4c44_002D853c_002D0658b00c7b83/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from &amp;lt;UnitTest&amp;gt;" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;Project Location="/Users/jakubkonvicka/RiderProjects/diplomathesis/UnitTest" Presentation="&amp;lt;UnitTest&amp;gt;" /&gt;
&lt;/SessionState&gt;</s:String> &lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=9cd5065d_002Da7a4_002D4689_002Db1fe_002Df606c9e9e91d/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisions" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt; <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=9cd5065d_002Da7a4_002D4689_002Db1fe_002Df606c9e9e91d/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisions" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt; &lt;TestAncestor&gt;
......
...@@ -62,21 +62,43 @@ namespace WebAPI.Controllers ...@@ -62,21 +62,43 @@ namespace WebAPI.Controllers
//base 64 string to string //base 64 string to string
string code = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(sourceCode.Code)); string code = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(sourceCode.Code));
var inputStream = new AntlrInputStream(code); var inputStream = new AntlrInputStream(code);
var lexer = new CPP14Lexer(inputStream); var lexer = new CPP14Lexer(inputStream);
CommonTokenStream tokens = new CommonTokenStream(lexer); CommonTokenStream tokens = new CommonTokenStream(lexer);
CPP14Parser parser = new CPP14Parser(tokens); CPP14Parser parser = new CPP14Parser(tokens);
ActivityDiagramBuilderCreator activityDiagramBuilderCreator = new ActivityDiagramBuilderCreatorFactory(); ActivityDiagramBuilderCreator activityDiagramBuilderCreator = new ActivityDiagramBuilderCreatorFactory();
var diagramBuilder = activityDiagramBuilderCreator.FactoryMethod("ActivityDiagram"); var diagramBuilder = activityDiagramBuilderCreator.FactoryMethod("ActivityDiagram");
IParseTree tree = parser.translationUnit();
IParseTree tree = null;
try
{
tree = parser.translationUnit();
}
catch(Exception e)
{
Console.WriteLine($"Error in parsing code: {e.Message}");
return BadRequest("Error in parsing code, please check the code");
}
if (parser.NumberOfSyntaxErrors == 0) if (parser.NumberOfSyntaxErrors == 0)
{ {
CppActivityDiagramVisitor activityDiagramVisitor = new CppActivityDiagramVisitor(diagramBuilder, contextIdentifier, functionIdentifier); try
Console.WriteLine(activityDiagramVisitor.Visit(tree)); {
CppActivityDiagramVisitor activityDiagramVisitor = new CppActivityDiagramVisitor(diagramBuilder, contextIdentifier, functionIdentifier);
var result = activityDiagramVisitor.Visit(tree);
Console.WriteLine(result);
}
catch(Exception e)
{
Console.WriteLine($"CppActivityDiagramVisitor: Error in visiting tree: {e.Message}");
return BadRequest("CppActivityDiagramVisitor: Error in visiting tree");
}
}
else
{
return BadRequest("Syntax error in code");
} }
var xmi = diagramBuilder.BuildDiagram(); var xmi = diagramBuilder.BuildDiagram();
...@@ -115,21 +137,45 @@ namespace WebAPI.Controllers ...@@ -115,21 +137,45 @@ namespace WebAPI.Controllers
//base 64 string to string //base 64 string to string
string code = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(sourceCode.Code)); string code = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(sourceCode.Code));
var inputStream = new AntlrInputStream(code); var inputStream = new AntlrInputStream(code);
var lexer = new CPP14Lexer(inputStream); var lexer = new CPP14Lexer(inputStream);
CommonTokenStream tokens = new CommonTokenStream(lexer); CommonTokenStream tokens = new CommonTokenStream(lexer);
CPP14Parser parser = new CPP14Parser(tokens); CPP14Parser parser = new CPP14Parser(tokens);
ClassDiagramBuilderCreatorFactory classDiagramBuilderCreator = new ClassDiagramBuilderCreatorFactory(); ClassDiagramBuilderCreatorFactory classDiagramBuilderCreator = new ClassDiagramBuilderCreatorFactory();
var diagramBuilder = classDiagramBuilderCreator.FactoryMethod("ClassDiagram"); var diagramBuilder = classDiagramBuilderCreator.FactoryMethod("ClassDiagram");
IParseTree tree = parser.translationUnit(); IParseTree tree = null;
try
{
tree = parser.translationUnit();
}
catch(Exception e)
{
Console.WriteLine($"Error in parsing code: {e.Message}");
return BadRequest("Error in parsing code, please check the code");
}
if (parser.NumberOfSyntaxErrors == 0) if (parser.NumberOfSyntaxErrors == 0)
{ {
CppClassDiagramVisitor classDiagramVisitor = new CppClassDiagramVisitor(diagramBuilder); try
Console.WriteLine(classDiagramVisitor.Visit(tree)); {
CppClassDiagramVisitor classDiagramVisitor = new CppClassDiagramVisitor(diagramBuilder);
var result = classDiagramVisitor.Visit(tree);
Console.WriteLine(result);
}
catch (Exception e)
{
Console.WriteLine($"CppClassDiagramVisitor: Error in visiting tree: {e.Message}");
return BadRequest("CppClassDiagramVisitor: Error in visiting tree");
}
}
else
{
return BadRequest("Syntax error in code");
} }
var xmi = diagramBuilder.BuildDiagram(); var xmi = diagramBuilder.BuildDiagram();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment