]> ocean-lang.org Git - ocean/commit
parsergen: allow terminals to be declared.
authorNeilBrown <neil@brown.name>
Sat, 10 Oct 2020 23:34:06 +0000 (10:34 +1100)
committerNeilBrown <neil@brown.name>
Sat, 10 Oct 2020 23:34:06 +0000 (10:34 +1100)
commit229d6941cd1da3ba78d38e093dc51246c081a847
tree198d750ebc94da8b8813a8d14c6a6a7cf37fe20d
parent1e17521c96f4116042cdaf3cf2aac40284f6dec8
parsergen: allow terminals to be declared.

By default, any non-virtual symbol that does not appear in the head of a
product is assumed to be a Terminal.
For larger grammars, this misses out of an opportunity to detect errors.
So allow a "$TERM" line to list terminals (that do no appear in
precedence lines).  If any $TERM line is given, then generate error
if any symbol appears in a production but is not declared, either
as terminal or non-terminal.

Signed-off-by: NeilBrown <neil@brown.name>
csrc/indent_test.mdc
csrc/parsergen.mdc