This package contains interfaces representing a compilation unit's requests and results.

You can make five requests on a compilation unit:

Request what? | Method | Result
AST | `getSyntaxTreeRequest()` | `ISyntaxTreeRequestResult`
File scope | `getFileScopeRequest()` | `IFileScopeRequestResult`
Outgoing dependencies | `getOutgoingDependenciesRequest()` | `IOutoingDependenciesRequestResult`
ABC | `getABCBytesRequest()` | `IABCBytesRequestResult`
SWF tags | `getSWFTagsRequest()` | `ISWFTagsRequestResult`

It is common for one request to trigger other requests. For example, if you request the file scope for an AS file, the AST gets automatically requested.

Compilation units use Java `Future` objects to fulfill the requests. This allows multiple compilation units to compile simultaneously on multiple threads.

The result objects that come back from the requests are cached in the compilation unit for subsequent access.