Previous: Errors, Up: Implementation [Contents]
A strictly compliant compiler must behave exactly as specified in this document and in Andrew Appel’s book, and as demonstrated by the samples exhibited in this document and in see (assignments)Assignments.
Nevertheless, you are entirely free to extend your compiler as you wish, as long as this extension is enabled by a non standard option. Extensions include:
Do not do that by default, in particular without checking if the output
isatty
, as the correction program will not appreciate.
If for instance you intend to support loop-expression, the construct must be rejected (as a syntax error) if the corresponding option was not specified.
In any case, if you don’t implement an extension that was suggested (such as --hir-use-ix, then you must not accept the option. If the compiler accepts an option, then the effect of this option will be checked. For instance, if your compiler accepts --hir-use-ix but does not implement it, then be sure to get 0 on these tests.