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); expect(Tokenizer.Token.EQUAL);
final Expression sigExpression = parseExpression(); final Expression sigExpression = parseExpression();
expect(Tokenizer.Token.SEMICOLON); expect(Tokenizer.Token.SEMICOLON);
virtualSignals.add(new VirtualSignal(sigName, sigExpression)); addVirtualSignal(new VirtualSignal(sigName, sigExpression));
break; break;
case END: case END:
tok.consume(); 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 { private LineEmitter parseSingleRow() throws IOException, ParserException {
LineEmitterSimple line = null; LineEmitterSimple line = null;
while (true) { 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_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_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">Adress-Bits</string><!-- ROM, RAMDualPort, RAMSinglePort, RAMSinglePortSel, EEPROM -->
<string name="key_AddrBits_tt">Anzahl der Adress-Bits, die verwendet werden.</string> <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_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_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">Address Bits</string><!-- ROM, RAMDualPort, RAMSinglePort, RAMSinglePortSel, EEPROM -->
<string name="key_AddrBits_tt">Number of address bits used.</string> <string name="key_AddrBits_tt">Number of address bits used.</string>