Commit cb7268a7 authored by POTTIER Francois's avatar POTTIER Francois

TODO update.

parent a151d622
...@@ -22,11 +22,15 @@ ...@@ -22,11 +22,15 @@
never reduced *and no warning about it*. (Just place it behind never reduced *and no warning about it*. (Just place it behind
another production that is never reduced.) Document this fact. another production that is never reduced.) Document this fact.
* Another crazy idea: if we had a special "void" non-terminal symbol, * If the right-hand side of a production provably generates the empty
we could use it as a parameter, which would allow us to make extensible language, remove this production. (Must remove it explicitly, otherwise
definitions. (Any production that contains void would be removed after we lose the property that errors are detected as early as possible.
expansion of the parameterized non-terminals.) Also, this avoids triggering the detection of epsilon-cycles, which
This would allow some simplifications in CompCert's grammar. 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 * --compile-errors could warn about messages wider than 80 columns
could also warn statically about out-of-range $i? 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