|
|||||||||
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 |