| java.lang.Object xtc.lang.c4.AspectTransformer
AspectTransformer | public class AspectTransformer (Code) | | Transforms Aspect constructs to pure C code.
author: Marco Yuen |
Method Summary | |
public GNode | makeAssignment(String id, GNode val) Create a assignment. | public GNode | makeDeclaration(GNode declSpecifier, String declarator) Create a declaration.
Parameters: declSpecifier - The type and qualifier for the declaration. Parameters: declarator - The declarator for the declaration. | public GNode | makeDeclaration(GNode declSpecifier, GNode initDeclarator) Create a declataion with initializer.
Parameters: declSpecifier - The type. Parameters: initDeclarator - The initialzier. | public GNode | makeDirectComponentSel(GNode PriID, String fieldName) Create a structure field access statement. | public GNode | makeDoStmt(GNode stmts, GNode condition) Create a do-while loop.
Parameters: stmts - The statemenst inside the do-while loop. Parameters: condition - The invariant for the do-while loop. | public GNode | makeGoto(String label) Create a goto statement. | public GNode | makeGotoWithAddress(String label) Create a goto statement. | public GNode | makeIndirectComponentSel(GNode PriID, String fieldName) Create a structure field access with a pointer. | public GNode | makeLabel(String label, GNode stmt) Create a label.
Parameters: label - The label name. Parameters: stmt - Statements associate with that label. | public GNode | makeLabelAddressExpression(String label) Create a LabelAddressExpression.
Parameters: label - The label. | public GNode | makePointerDeclarator(int numPointer, String declarator) Create a identifier with pointers. | public GNode | makeReturn(GNode val) Create a return statement.
Parameters: val - The return value. | public GNode | makeStructure(String structTag, GNode beforeAttrs, GNode declList, GNode afterAttrs) Create a structure definition.
Parameters: structTag - The struct tag. | public GNode | makeStructureDeclaration(GNode type, String decl) Create a structure declaration.
Parameters: type - The Qualifier for the structure. Parameters: decl - The name of the structure. | public Object | process(String name, Class[] args, Object[] argValues) A dispatcher. | public void | processAspectDefinition(List nodes) Transform a global advice to C code. | public void | processAspectFunctionDefinition(List nodes) Transform AspectFunctionDefinition to C code. | public void | processAspectStructureDeclaration(List nodes) Transfrom struct or union introduction into C code. | public void | transform() Based on the current GNode name, and dispatch the correct
method to perform a tranfomation on the GNode. |
AspectTransformer | public AspectTransformer(GNode r)(Code) | | Creates an AspectTransformer.
Parameters: r - The root node |
makeAssignment | public GNode makeAssignment(String id, GNode val)(Code) | | Create a assignment.
Parameters: id - The left hand value. Parameters: val - The right hand value. |
makeDeclaration | public GNode makeDeclaration(GNode declSpecifier, String declarator)(Code) | | Create a declaration.
Parameters: declSpecifier - The type and qualifier for the declaration. Parameters: declarator - The declarator for the declaration. A declaration with the specificed type and name. |
makeDeclaration | public GNode makeDeclaration(GNode declSpecifier, GNode initDeclarator)(Code) | | Create a declataion with initializer.
Parameters: declSpecifier - The type. Parameters: initDeclarator - The initialzier. A declaration. |
makeDirectComponentSel | public GNode makeDirectComponentSel(GNode PriID, String fieldName)(Code) | | Create a structure field access statement. (eg. sturctname.field)
Parameters: PriID - The struct name. Parameters: fieldName - The field name. |
makeDoStmt | public GNode makeDoStmt(GNode stmts, GNode condition)(Code) | | Create a do-while loop.
Parameters: stmts - The statemenst inside the do-while loop. Parameters: condition - The invariant for the do-while loop. A do-while loop construct. |
makeGoto | public GNode makeGoto(String label)(Code) | | Create a goto statement.
Parameters: label - The label to jump to. |
makeGotoWithAddress | public GNode makeGotoWithAddress(String label)(Code) | | Create a goto statement. However, instead of using a label
as the arugment, it uses a variable (eg. goto *var).
This is a GCC extension.
Parameters: label - The name of the label variable. A goto statement. |
makeIndirectComponentSel | public GNode makeIndirectComponentSel(GNode PriID, String fieldName)(Code) | | Create a structure field access with a pointer. (eg. structname->field)
Parameters: PriID - The struct name. Parameters: fieldName - The field name. |
makeLabel | public GNode makeLabel(String label, GNode stmt)(Code) | | Create a label.
Parameters: label - The label name. Parameters: stmt - Statements associate with that label. A label in C. |
makeLabelAddressExpression | public GNode makeLabelAddressExpression(String label)(Code) | | Create a LabelAddressExpression.
Parameters: label - The label. A GNode LabelAddressExpression. |
makePointerDeclarator | public GNode makePointerDeclarator(int numPointer, String declarator)(Code) | | Create a identifier with pointers.
Parameters: numPointer - Parameters: declarator - A GNode for pointer. |
makeReturn | public GNode makeReturn(GNode val)(Code) | | Create a return statement.
Parameters: val - The return value. A return statement with the specified value. |
makeStructure | public GNode makeStructure(String structTag, GNode beforeAttrs, GNode declList, GNode afterAttrs)(Code) | | Create a structure definition.
Parameters: structTag - The struct tag. Optional. Parameters: beforeAttrs - The attributes. Optional. Parameters: declList - The fields declaration. Parameters: afterAttrs - The attributes. Optional. A complete structure. |
makeStructureDeclaration | public GNode makeStructureDeclaration(GNode type, String decl)(Code) | | Create a structure declaration.
Parameters: type - The Qualifier for the structure. Parameters: decl - The name of the structure. A sturct declaration with all the fields declared. |
process | public Object process(String name, Class[] args, Object[] argValues)(Code) | | A dispatcher.
Parameters: name - The name of the method. Parameters: args - Arguments for the method. Parameters: argValues - Values of the arguments. |
processAspectDefinition | public void processAspectDefinition(List nodes)(Code) | | Transform a global advice to C code.
Parameters: nodes - The list of AspectDefinition nodes. |
processAspectFunctionDefinition | public void processAspectFunctionDefinition(List nodes)(Code) | | Transform AspectFunctionDefinition to C code.
Parameters: nodes - |
processAspectStructureDeclaration | public void processAspectStructureDeclaration(List nodes)(Code) | | Transfrom struct or union introduction into C code.
Parameters: nodes - The list of introduction nodes. |
transform | public void transform()(Code) | | Based on the current GNode name, and dispatch the correct
method to perform a tranfomation on the GNode.
|
|
|