Commit cb7268a7 authored by POTTIER Francois's avatar POTTIER Francois
Browse files

TODO update.

parent a151d622
......@@ -22,11 +22,15 @@
never reduced *and no warning about it*. (Just place it behind
another production that is never reduced.) Document this fact.
* Another crazy idea: if we had a special "void" non-terminal symbol,
we could use it as a parameter, which would allow us to make extensible
definitions. (Any production that contains void would be removed after
expansion of the parameterized non-terminals.)
This would allow some simplifications in CompCert's grammar.
* If the right-hand side of a production provably generates the empty
language, remove this production. (Must remove it explicitly, otherwise
we lose the property that errors are detected as early as possible.
Also, this avoids triggering the detection of epsilon-cycles, which
assumes that all symbols are inhabited.)
Document this trick: the empty language can be defined by "void: void"
and can be used as an actual parameter in parameterized definitions.
This allows making extensible definitions and instantiating them with
"no extension".
* --compile-errors could warn about messages wider than 80 columns
could also warn statically about out-of-range $i?
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment