|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Interface Summary | |
|---|---|
| AbortStmt | |
| AmbNewFabricArray | |
| 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. |
| FabricNodeFactory | NodeFactory for fabric extension. |
| NewFabricArray | |
| RemoteWorkerGetter | |
| RetryStmt | |
| Worker | |
| Class Summary | |
|---|---|
| AbortStmt_c | |
| 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. |
| AmbNewFabricArray_c | |
| Atomic_c | |
| ClassDecl_c | |
| FabricAmbPrincipalNode_c | In Fabric, objects of Worker and RemoteWorker are
treated as principals automatically. |
| FabricArrayInit_c | |
| FabricArrayTypeNode_c | |
| FabricCall_c | |
| FabricDelFactory_c | Factory class for creating delegates for fabric types. |
| FabricFabExtFactory_c | This class constructs FabricExt objects for the Fabric language
constructs. |
| FabricJifExtFactory_c | This class extends the Jif Extension factory to provide Jif extension objects for atomic sections. |
| FabricNew_c | |
| FabricNodeFactory_c | NodeFactory for fabric extension. |
| FabricUtil | |
| NewFabricArray_c | |
| NewFabricArrayJifExt_c | |
| RemoteWorkerGetter_c | |
| RetryStmt_c | |
| Worker_c | |
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:
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||