Typically an abstract syntax for a programming language doesn't contain any layout information and comments. The set of valid abstract syntax trees is the abstract syntax of a language. In the Stratego language the abstract syntax of a language is described by algebraic signatures.