GrammarNonTerminalSymbolProduction.java
package progen.kernel.grammar.validations;
import progen.kernel.grammar.GrammarNonTerminalSymbol;
import progen.kernel.grammar.Grammar;
import progen.kernel.grammar.GrammarNotValidException;
/**
* Check if the grammar have any production like Ax :: = xxx
*
* @author jirsis
*
*/
public class GrammarNonTerminalSymbolProduction implements Validation {
public void validate(Grammar gram) {
boolean grammarOK = true;
for (GrammarNonTerminalSymbol nonTerminal : gram.getGrammarNonTerminalSymbols()) {
grammarOK &= gram.getProductions(nonTerminal).size() > 0;
}
if (!grammarOK) {
throw new GrammarNotValidException(GrammarNotValidExceptionEnum.NON_TERMINAL_SYMBOLS_IN_PRODUCTIONS_ERROR);
}
}
}