detects multiple declarations of virtual test signals

This commit is contained in:
hneemann 2020-11-21 18:39:46 +01:00
parent cf896aa4c2
commit 127ec6c408
3 changed files with 10 additions and 1 deletions

View File

@ -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) {

View File

@ -1152,6 +1152,7 @@ Sind evtl. die Namen der Variablen nicht eindeutig?</string>
<string name="err_vgaModeNotDetected_N">Videomodus wurde nicht erkannt ({0})</string>
<string name="err_ROM_noFileGivenToLoad">Es ist kein Dateiname für das automatische Neuladen verfügbar!</string>
<string name="err_virtualSignal_N_DeclaredTwiceInLine_N">Virtuelles Signal {0} doppelt definiert in Zeile {1}!</string>
<string name="key_AddrBits">Adress-Bits</string><!-- ROM, RAMDualPort, RAMSinglePort, RAMSinglePortSel, EEPROM -->
<string name="key_AddrBits_tt">Anzahl der Adress-Bits, die verwendet werden.</string>

View File

@ -1161,6 +1161,7 @@
<string name="err_inGenericInitCode">Error in the analysis of the generic initialization code.</string>
<string name="err_ROM_noFileGivenToLoad">There is no file name available for the automatic reload!</string>
<string name="err_virtualSignal_N_DeclaredTwiceInLine_N">Virtual signal {0} declared twice in line {1}!</string>
<string name="key_AddrBits">Address Bits</string><!-- ROM, RAMDualPort, RAMSinglePort, RAMSinglePortSel, EEPROM -->
<string name="key_AddrBits_tt">Number of address bits used.</string>