<?xml version="1.0"?>
<clause number="9.5.6" title="Region control">
  <paragraph>The region directives are used to explicitly mark regions of source code. <grammar_production><name><non_terminal where="9.5.6">pp-region</non_terminal></name> :: <rhs><non_terminal where="9.5.6">pp-start-region</non_terminal><non_terminal where="9.5.4">conditional-section</non_terminal><opt/><non_terminal where="9.5.6">pp-end-region</non_terminal></rhs></grammar_production><grammar_production><name><non_terminal where="9.5.6">pp-start-region</non_terminal></name> :: <rhs><non_terminal where="9.3.3">whitespace</non_terminal><opt/><terminal>#</terminal><non_terminal where="9.3.3">whitespace</non_terminal><opt/><terminal>region</terminal><non_terminal where="9.5.5">pp-message</non_terminal></rhs></grammar_production><grammar_production><name><non_terminal where="9.5.6">pp-end-region</non_terminal></name> :: <rhs><non_terminal where="9.3.3">whitespace</non_terminal><opt/><terminal>#</terminal><non_terminal where="9.3.3">whitespace</non_terminal><opt/><terminal>endregion</terminal><non_terminal where="9.5.5">pp-message</non_terminal></rhs></grammar_production></paragraph>
  <paragraph>No semantic meaning is attached to a region; regions are intended for use by the programmer or by automated tools to mark a section of source code. The message specified in a <symbol>#region</symbol> or <symbol>#endregion</symbol> directive likewise has no semantic meaning; it merely serves to identify the region. Matching <symbol>#region</symbol> and <symbol>#endregion</symbol> directives may have different <non_terminal where="9.5.5">pp-message</non_terminal>s. </paragraph>
  <paragraph>The lexical processing of a region: <code_example><![CDATA[
#region  
...  
#endregion  
]]></code_example>corresponds exactly to the lexical processing of a conditional compilation directive of the form: <code_example><![CDATA[
#if true  
...  
#endif  
]]></code_example></paragraph>
</clause>
