The first non-introductory token in a braces-delimited scope or the global scope sets the scope's base indentation. The introduction may be a comma-separated list of identifiers followed by "=>".
If the base indentation has been defined and a new line is encountered inside the block, insert a semicolon before the new line if the following conditions are met:
The first non-whitespace, non-comment token on the new line is not indented further then the base indentation
That token is not "else", ";", "{", "}" or the end of the input
The previous non-whitespace, non-comment token is not ";", "{", "}", "=>" or the beginning of the input