  Automatic indentation of source code is fundamentally a simple matter of
parsing the code and then applying language- and style-specific rules about
relative indentation of the various constructs. Yet, in practice, full parsing
is not always an option, either because of quirks of the language, or because
the code is temporarily syntactically incorrect, or because of an incomplete or
broken grammar. I present the design of Emacs's Simple-Minded Indentation
Engine (SMIE), which gets its power from the weakness of the underlying parsing
technique. It makes it possible to perform local parsing, which is hence
unaffected by irrelevant surrounding code. This provides a form of graceful
degradation in the face of incomplete, erroneous, or just plain problematic
information.
