The Precanonicalizer is a (mostly) syntactic preprocessor for the Canonicalizer. It eliminates #$ELRelation
s by replacing them with their expanded forms by using their EL-evaluatable functions (see #$evaluateAtEL
). For example, the #$DateFromStringFn
convenience function is expanded here (and added back in the browser when showing dates.) Note that when checking for well-formedness we check both the un-expanded EL form of the sentence and the expanded EL form. The precanonicalizer also expands meta-assertions like #$exceptWhen
, #$exceptFor
, and #$pragmaticRequirement
to their HL reflections #$abnormal
, #$abnormal
, and #$meetsPragmaticRequirement
, respectively.