Introduction Pragmas Object Oriented Programming Objects Mutually recursive types Type conversions Object variants Methods Method call syntax Properties Dynamic dispatch Exceptions Raise statement Try statement Annotating procs with raised exceptions Generics Templates Macros Expression Macros Statement Macros Term rewriting macros Building your first macro Generating source code Generating AST by hand Author: Andreas Rumpf Version: 0.10.2 Introduction "Repetition renders the ridiculous reasonable." -- Norman Wildberger This document is a tutorial for the advanced constructs of the Nim programming language. Note that this document is somewhat obsolete as the manual contains many more examples of the advanced language features. Pragmas Pragmas are Nim's method to give the compiler additional information/ commands without introducing a massive number of new keywords. Pra...