From 88fb3abc2c6fe91a297060ddf072161957548fee Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Mon, 4 May 2020 10:56:57 +0200 Subject: [PATCH] add simple test for multiple inheritance and skip transformation of those ePackages in the test for now to concentrate on the actual errors. --- src/main/jastadd/analysis/Inheritance.jrag | 14 ++++++++++++++ .../tudresden/inf/st/e2j/TransformationTest.java | 10 +++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 src/main/jastadd/analysis/Inheritance.jrag diff --git a/src/main/jastadd/analysis/Inheritance.jrag b/src/main/jastadd/analysis/Inheritance.jrag new file mode 100644 index 0000000..c9e6d01 --- /dev/null +++ b/src/main/jastadd/analysis/Inheritance.jrag @@ -0,0 +1,14 @@ +aspect Inheritance { + + syn boolean EPackage.usesMultipleInheritance() { + for (EClass eClass : classes()) { + if (eClass.usesMultipleInheritance()) { + return true; + } + } + return false; + } + + syn boolean EClass.usesMultipleInheritance() = getESuperTypeList().size() > 1; + +} diff --git a/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java b/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java index d2f4b6e..84a2ad5 100644 --- a/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java +++ b/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java @@ -59,9 +59,13 @@ class TransformationTest extends AbstractTest { for (EObject eObject : ePackages) { Assertions.assertTrue(eObject instanceof EPackage); - Grammar grammar = ((EPackage) eObject).getGrammar(); - grammar.print(b); - b.append("\n\n"); + if (((EPackage) eObject).usesMultipleInheritance()) { + logger.info("skipping package {}, since it uses multiple inheritance.", ((EPackage) eObject).getName()); + } else { + Grammar grammar = ((EPackage) eObject).getGrammar(); + grammar.print(b); + b.append("\n\n"); + } } fileName = fileName.replaceFirst("\\.ecore$", ".relast"); -- GitLab