title: Is Rust's syntactical grammar context-free or context-sensitive?
body: <p>The syntactical grammar of hardly any programming language is regular, as they allow arbitrarily deeply nested parenthesis. Rust does, too:</p>
  
  <pre><code>let x = ((((()))));
  </code></pre>
  
  <p>But is Rust's syntactical grammar at least context-free? If not, what element makes the grammar context-sensitive? Or is the grammar even recursively enumerable, like <a href="https://stackoverflow.com/questions/14589346/is-c-context-free-or-context-sensitive">C++'s syntactical grammar</a>?</p>
  
  <hr>
  
  <p><em>Related</em>: <a href="https://stackoverflow.com/questions/43677628/is-rusts-lexical-grammar-regular-context-free-or-context-sensitive">Is Rust&#39;s lexical grammar regular, context-free or context-sensitive?</a></p>