From f2f13498d23561da28d26872b58dcf12bc623e1a Mon Sep 17 00:00:00 2001 From: Sebastian Nickels Date: Sat, 17 Aug 2019 21:26:15 +0200 Subject: [PATCH] Added a check for outputs used as inputs in ArchitectureSupportChecker --- .../generator/ArchitectureSupportChecker.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/monticore/lang/monticar/cnnarch/generator/ArchitectureSupportChecker.java b/src/main/java/de/monticore/lang/monticar/cnnarch/generator/ArchitectureSupportChecker.java index 0a3af29..eb98869 100644 --- a/src/main/java/de/monticore/lang/monticar/cnnarch/generator/ArchitectureSupportChecker.java +++ b/src/main/java/de/monticore/lang/monticar/cnnarch/generator/ArchitectureSupportChecker.java @@ -107,12 +107,27 @@ public abstract class ArchitectureSupportChecker { return true; } + protected boolean checkOutputAsInput(ArchitectureSymbol architecture) { + for (SerialCompositeElementSymbol stream : architecture.getStreams()) { + for (ArchitectureElementSymbol element : stream.getFirstAtomicElements()) { + if (element.isOutput()) { + Log.error("This cnn architecture uses an output as an input, which is currently not supported by the code generator." + , architecture.getSourcePosition()); + return false; + } + } + } + + return true; + } + public boolean check(ArchitectureSymbol architecture) { return checkMultipleStreams(architecture) && checkMultipleInputs(architecture) && checkMultipleOutputs(architecture) && checkMultiDimensionalOutput(architecture) && checkConstants(architecture) - && checkLayerVariables(architecture); + && checkLayerVariables(architecture) + && checkOutputAsInput(architecture); } } -- GitLab