title: What kind of syntax can a Kotlin compiler plugin add to the language?
body: <p>As I understand, a Kotlin compiler plugin will have access to the source code (being compiled) after it is converted to a Kotlin AST (Abstract Syntax Tree). That limits the syntax a plugin can use to code that can be represented as a Kotlin AST. Is that correct? If it is, can you point me to documentation about the Kotlin AST format?</p>
  
  <p>I couldn't find much documentation about Kotlin compiler plugins. I could only find plugins examples using annotations. Is there a project/tutorial showing how to add new constructs/operators to the language?</p>