There isn't a lot of documentation for the internals of the compiler available, but the things that are available should be enough to get started.
Mirko Stocker, has written his Master Thesis about Scala Refactoring. In Appendix D (p. 95) he describes the architecture of the AST. It includes also a graphical overview:
Another way to find information about the AST is to look directly into the sources of reflect.internal.Trees, which contains the AST.
If one needs to find out how a specific source code snippet is represented internally there is reify
:
scala> import reflect.runtime.universe._
import reflect.runtime.universe._
scala> showRaw(reify{val i = 0}.tree)
res8: String = Block(List(ValDef(Modifiers(), newTermName("i"), TypeTree(),
Literal(Constant(0)))), Literal(Constant(())))
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…