Skip to content

mhems/jhelp

Repository files navigation


The forgiving, error-detecting Java compiler for Java or programming beginners


JHelp is a Java 8 recognizer, meaning it strives to accept any valid Java8 compilation unit while also rejecting invalid input. What sets jhelp apart from the far more complete and correct javac is its error messages and detection categories. While the Java compiler provides decent, detailed error messages, its verbiage is sometimes intimidating to novice programmers. JHelp strives to provide a more digestable output that breaks down the errors with more verbose explanations of not only what is wrong, but why it is wrong. As JHelp is merely a recognizer, jhelp will invoke javac to compile the code if it is found to be correct.

JHelp is not meant to be a replacement compiler, it is a merely a recognizer. As such, jhelp will transparently invoke javac on its input as a consultant and verifier. If JHelp finds no errors, the code has been compiled and can be run. If JHelp and javac disagree, javac output will be provided to the user as well.

jhelp offers such features as

  • identifier typo detection
  • static vs non-static woes
  • severe syntax errors typical of beginning (Java) programmers
    • e.g. missing/mismatched braces, code outside of methods, methods outside of classes, forgotten keywords, etc
  • detailed explanation of type mismatches
  • failed overring without use of annotation

JHelp's parsing is powered by ANTLR v4 and the Java 8 antlr grammar.