diff --git a/src/main/java/de/neemann/digital/testing/parser/Parser.java b/src/main/java/de/neemann/digital/testing/parser/Parser.java
index 49ecbc283..6b549e056 100644
--- a/src/main/java/de/neemann/digital/testing/parser/Parser.java
+++ b/src/main/java/de/neemann/digital/testing/parser/Parser.java
@@ -113,7 +113,7 @@ public class Parser {
expect(Tokenizer.Token.EQUAL);
final Expression sigExpression = parseExpression();
expect(Tokenizer.Token.SEMICOLON);
- virtualSignals.add(new VirtualSignal(sigName, sigExpression));
+ addVirtualSignal(new VirtualSignal(sigName, sigExpression));
break;
case END:
tok.consume();
@@ -158,6 +158,13 @@ public class Parser {
}
}
+ private void addVirtualSignal(VirtualSignal vs) throws ParserException {
+ for (VirtualSignal v : virtualSignals)
+ if (v.getName().equals(vs.getName()))
+ throw new ParserException(Lang.get("err_virtualSignal_N_DeclaredTwiceInLine_N", vs.getName(), tok.getLine()));
+ virtualSignals.add(vs);
+ }
+
private LineEmitter parseSingleRow() throws IOException, ParserException {
LineEmitterSimple line = null;
while (true) {
diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml
index fbd2fb2b6..1da90dc66 100644
--- a/src/main/resources/lang/lang_de.xml
+++ b/src/main/resources/lang/lang_de.xml
@@ -1152,6 +1152,7 @@ Sind evtl. die Namen der Variablen nicht eindeutig?
Videomodus wurde nicht erkannt ({0})
Es ist kein Dateiname für das automatische Neuladen verfügbar!
+ Virtuelles Signal {0} doppelt definiert in Zeile {1}!
Adress-Bits
Anzahl der Adress-Bits, die verwendet werden.
diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml
index 8ce1d3a00..64bd458d0 100644
--- a/src/main/resources/lang/lang_en.xml
+++ b/src/main/resources/lang/lang_en.xml
@@ -1161,6 +1161,7 @@
Error in the analysis of the generic initialization code.
There is no file name available for the automatic reload!
+ Virtual signal {0} declared twice in line {1}!
Address Bits
Number of address bits used.