| Interface | Description |
|---|---|
| AbortStmt | |
| AccessPolicy | |
| AmbNewFabricArray | |
| AmbStore | |
| Atomic | |
| FabricArrayInit | |
| FabricArrayTypeNode | |
| FabricBranch | |
| FabricCall | |
| FabricDelFactory |
Factory for delegates for all of the AST nodes in the Fabric language.
|
| FabricExtFactory |
Factory for extensions for all of the AST nodes in the Fabric language.
|
| FabricFieldDecl | |
| FabricNodeFactory |
NodeFactory for fabric extension.
|
| NewFabricArray | |
| RemoteWorkerGetter | |
| RetryStmt | |
| Store | |
| Worker |
| Class | Description |
|---|---|
| AbortStmt_c | Deprecated |
| AbstractFabExtFactory_c |
This class serves the same purpose as
AbstractJifExtFactory_c and its
parent class polyglot.ast.AbstractExtFactory_c: it provides a default
implementation of the factory method for each fabric extension class that
delegates to the factory method for its parent class's extension. |
| AccessPolicy_c | Deprecated |
| AccessPolicyJifExt_c | |
| AmbNewFabricArray_c | Deprecated |
| Atomic_c | Deprecated |
| CannotAccessPolicyToFabilExt_c | |
| ClassDecl_c | Deprecated |
| FabricAmbPrincipalNode_c | Deprecated |
| FabricArrayInit_c | Deprecated |
| FabricArrayTypeNode_c | Deprecated |
| FabricCall_c | Deprecated |
| FabricClassBody_c | Deprecated |
| FabricDelFactory_c |
Factory class for creating delegates for fabric types.
|
| FabricDisamb_c |
Disambiguates nodes relative to context and namespace.
|
| FabricFabExtFactory_c |
This class constructs
FabricExt objects for the Fabric language
constructs. |
| FabricFieldDecl_c | Deprecated |
| FabricJifExtFactory_c |
This class extends the Jif Extension factory to provide Jif extension objects
for atomic sections.
|
| FabricNew_c | Deprecated |
| FabricNodeFactory_c |
NodeFactory for fabric extension.
|
| FabricUtil | |
| NewFabricArray_c | Deprecated |
| NewFabricArrayJifExt_c | |
| RemoteWorkerGetter_c | Deprecated |
| RetryStmt_c | Deprecated |
| Store_c | Deprecated |
| Worker_c | Deprecated |
New AST nodes for the Fabric language extension. This package also includes with all of the node, extension, and delegate factories.
There are a number of factory classes associated with building the extension objects. As documented in the CC'03 Polyglot paper, there should be a separate extension object for each language extension. In the case of Fabric (which is an extension of Jif), a properly constructed fabric node should look as follows:

FabricNodeFactory_c object, and the delegate will be
created by a FabricDelFactory_c object, but the extension
class factories are a little more complicated.
All of the extension factories implement the
FabricExtFactory interface, even those that produce
Jif extensions rather than FabricExt extensions.
The FabricExtFactory interface simply designates a factory that
is able to create extensions for all of the Fabric AST nodes.
The FabricJifExtFactory_c class is responsible for
creating all of the Jif extensions in the diagram above. It is a
simple extension of the JifExtFactory_c that is able to
construct Jif extensions for atomic sections (and any other new
AST nodes we may add).
The AbstractFabExtFactory_c class is a skeleton
implementation of the FabricExtFactory interface that takes care
of chaining extension objects together (much like the
polyglot.ast.AbstractExtFactory_c and the
jif.ast.AbstractJifExtFactory_c classes). It delegates the
actual creation of the extension objects to extFooImpl()
methods, which by default simply call the parent factory methods.
Finally, the FabricFabExtFactory_c class creates all of
the FabricExt classes in the above diagram. It extends the
AbstractFabExtFactory_c class and overrides some of the
extFooImpl methods to create the actual extension objects used
by fabric.
Here is a diagram showing how it all fits together: