diff --git a/src/main/java/org/jastadd/tooling/RelAstGrammarAnnotator.java b/src/main/java/org/jastadd/tooling/RelAstGrammarAnnotator.java
index ce192474421aee6d2ec2e493125be76575a2572f..91f4e0c4dde3bfd351bda7a7afaa8f604907f95f 100644
--- a/src/main/java/org/jastadd/tooling/RelAstGrammarAnnotator.java
+++ b/src/main/java/org/jastadd/tooling/RelAstGrammarAnnotator.java
@@ -8,6 +8,7 @@ import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors;
import com.intellij.psi.PsiElement;
import org.jastadd.tooling.psi.RelAstGrammarComponent;
+import org.jastadd.tooling.psi.RelAstGrammarTypeReference;
import org.jetbrains.annotations.NotNull;
public class RelAstGrammarAnnotator implements Annotator {
@@ -29,6 +30,15 @@ public class RelAstGrammarAnnotator implements Annotator {
.create();
}
}
+ } else if (element instanceof RelAstGrammarTypeReference) {
+ RelAstGrammarTypeReference reference = (RelAstGrammarTypeReference) element;
+ if (RelAstGrammarUtil.findTypeDecl(element.getProject(), reference.getName()).isEmpty()) {
+ holder.newAnnotation(HighlightSeverity.ERROR, "Undefined reference")
+ .range(element.getTextRange())
+ .highlightType(ProblemHighlightType.ERROR)
+ .tooltip("Reference to unknown nonterminal type.")
+ .create();
+ }
}
}