digama0 / mmj2

mmj2 GUI Proof Assistant for the Metamath project
GNU General Public License v2.0
72 stars 25 forks source link

Crash in case of ambiguous grammar #56

Open tirix opened 2 years ago

tirix commented 2 years ago

See set.mm PR#2379: In case of an ambiguous grammar ($a class A B : $.), there is a NullPointerException:

java.lang.NullPointerException
    at mmj.verify.LRParser.initialize(LRParser.java:175)
    at mmj.verify.LRParser.load(LRParser.java:320)
    at mmj.verify.LRParser.load(LRParser.java:317)
    at mmj.verify.LRParser.parseExpr(LRParser.java:382)
    at mmj.verify.Grammar.grammaticalParseSyntaxExpr(Grammar.java:732)
    at mmj.verify.GrammarAmbiguity.basicAmbiguityEdits(GrammarAmbiguity.java:208)
    at mmj.verify.Grammar.initializeGrammarTables(Grammar.java:1008)
    at mmj.verify.Grammar.initializeGrammar(Grammar.java:704)
    at mmj.util.GrammarBoss.initializeGrammar(GrammarBoss.java:288)
    at mmj.util.GrammarBoss.doParse(GrammarBoss.java:242)
    at mmj.util.Boss.lambda$0(Boss.java:107)
    at mmj.util.Boss.doRunParmCommand(Boss.java:121)
    at mmj.util.BatchFramework.executeRunParmCommand(BatchFramework.java:281)
    at mmj.util.BatchFramework.runIt(BatchFramework.java:223)
    at mmj.util.BatchMMJ2.main(BatchMMJ2.java:53)

It shall rather trigger a clean error complaining about the grammar being ambiguous.