# Analyzing Dart

This is the table of contents for a set of tutorials that explain how to use the
analyzer package to analyze Dart source code.

## Pages

The following is a list of the pages available in this tutorial.

[Introduction][introduction] -
What capabilities does the analyzer package support?

[Performing Analysis][analysis]
How to set up the objects used to analyze code.

[The Token Model][tokens]
How are tokens represented?

[The AST][ast]
What is an AST?

[The Element Model][element]
What is the element model?

[The Type Model][type]
What is the type model?

[analysis]: analysis.md
[ast]: ast.md
[element]: element.md
[introduction]: introduction.md
[tokens]: tokens.md
[type]: type.md
