UndeclaredNonTerminal
rascal-0.40.17
Synopsis
A syntax rule uses an undeclared non-terminal.
Description
All non-terminals that occur in a syntax definition should be declared in some rule. This error is generated when this is not the case.
Remedy: declare the offending non-terminal.
Examples
Here is an example where the non-terminal Y
is not declared:
rascal>import ParseTree;
ok
rascal>syntax X = "a" Y;
ok
rascal>parse(#X, "ab");
|jar+file:///home/runner/.m2/repository/org/rascalmpl/rascal/0.40.17/rascal-0.40.17.jar!/ParseTree.rsc|(15675,7,<396,88>,<396,95>): Undeclared non-terminal: Y in module $GENERATED_PARSER$37351774
Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/UndeclaredNonTerminal|
ok
Pitfalls
The source location of the non-terminal is not yet available, so the error message mentions the module in which this occurs.