Changeset 2962


Ignore:
Timestamp:
Mar 23, 2013, 7:43:53 PM (5 years ago)
Author:
ksherdy
Message:

Added CarryDeclare? call to Kernel node.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/src/compilers/pabloS/semanticAnalyzer/visitors/PabloS2PabloBXFormer.java

    r2952 r2962  
    1212
    1313import compilers.pabloB.ast.Generators;
    14 import compilers.pabloB.lang.carry.CarryBuiltins;
    15 import compilers.pabloB.lang.carry.CarryBuiltins2Lang;
     14import compilers.pabloB.lang.carrySet.CarrySetBuiltins;
     15import compilers.pabloB.lang.carrySet.CarrySetBuiltins2Lang;
    1616import compilers.pabloB.symbols.CarryInfoSetSymbol;
    1717import compilers.pabloB.symbols.SymbolTable;
     
    3535
    3636       
    37         private CarryBuiltins2Lang carrySet2Lang;
     37        private CarrySetBuiltins2Lang carrySet2Lang;
    3838       
    3939        /*
     
    4444         */
    4545 
    46     public PabloS2PabloBXFormer(compilers.pabloB.symbols.SymbolTable pabloSSymbolTable, CarryBuiltins2Lang carrySet2Lang) {
     46    public PabloS2PabloBXFormer(compilers.pabloB.symbols.SymbolTable pabloSSymbolTable, CarrySetBuiltins2Lang carrySet2Lang) {
    4747        this.decoratedASTTree = null;
    4848        this.optDecoratedASTTree = null;
     
    5252    }
    5353
    54     public pabloB.ast.ASTNode XForm(pabloS.ast.ASTNode decoratedASTTree) {
     54    public pabloB.ast.ASTNode XForm(pabloS.ast.ProgramNode decoratedASTTree) {
    5555                return XForm(decoratedASTTree, decoratedASTTree);
    5656    }
    5757     
    58     public pabloB.ast.ASTNode XForm(pabloS.ast.ASTNode decoratedASTTree, pabloS.ast.ASTNode optDecoratedASTTree) {
     58    public pabloB.ast.ASTNode XForm(pabloS.ast.ProgramNode decoratedASTTree, pabloS.ast.ProgramNode optDecoratedASTTree) {
    5959               
    6060        this.decoratedASTTree = decoratedASTTree;
     
    6565                pabloB.ast.ASTNode bOptASTTree = this.optDecoratedASTTree.accept(new pabloBASTBuilder());
    6666               
    67                 // map function names to function definition nodes
     67                // map function names to function definition nodes             
    6868                Map<String, pabloB.ast.FuncDefNode> map = funcDefMapBuilder(bASTTree);
    6969                Map<String, pabloB.ast.FuncDefNode> optMap = funcDefMapBuilder(bOptASTTree);
    7070               
    71                 // build kernels
    7271                for (Map.Entry<String, pabloB.ast.FuncDefNode> entry : map.entrySet())
    7372                {       
     
    109108                        */
    110109                       
    111                         if(carryInfoSetSymbol.getCarry1Count() > 0) {
     110                        if(carryInfoSetSymbol.getCarry1Count() > 0) { // TODO update
    112111                                               
    113112                                Integer [] carry1Array = carryInfoSetSymbol.getCarry1Array();   
     
    117116                                        if(carry1Array[i] > 0) {
    118117                                               
    119                                                         String carryFlipArrayExpr = String.format(CarryBuiltins2Lang.LOCALCARRYQARRAYNAME + "[%s]",
     118                                                        String carryFlipArrayExpr = String.format(CarrySetBuiltins2Lang.CARRYQARRAYNAME + "[%s]",
    120119                                                                                                                                                Integer.toString(i));   
    121120                                                       
    122                                                         String[] carryFlipIdentiferArray = new String [] {CarryBuiltins2Lang.CARRYQNAME, carryFlipArrayExpr};
     121                                                        String[] carryFlipIdentiferArray = new String [] {CarrySetBuiltins2Lang.CARRYSETBASENAME,
     122                                                                                                                                                                carryFlipArrayExpr};
    123123                                                       
    124124                                                        pabloB.ast.CompoundIdentifierNode carryFlipIdentifierNode
    125125                                                                        = Generators.makeCompoundIdentifierNode(carryFlipIdentiferArray,
    126                                                                         locationToken);
     126                                                                                                                                                        locationToken);
    127127                                                       
    128128                                                        FuncCallNode carryFlipFuncCall = (FuncCallNode) Generators.makeFuncCallNode(
    129                                                                         new String [] {CarryBuiltins2Lang.CARRYQNAME, carrySet2Lang.getCode(CarryBuiltins.CARRYFLIP)},
    130                                                                         locationToken,
    131                                                                         new ASTNode [] {carryFlipIdentifierNode});
     129                                                                        new String [] {CarrySetBuiltins2Lang.CARRYSETBASENAME,
     130                                                                                                        carrySet2Lang.getCode(CarrySetBuiltins.CARRYFLIP)},
     131                                                                                                        locationToken,
     132                                                                                                        new ASTNode [] {carryFlipIdentifierNode});
    132133                                                       
    133134                                                        AssignNode assignNode = Generators.makeAssignEqualNode(carryFlipIdentiferArray,
     
    135136                                                                        locationToken);
    136137                                                                                                       
    137                                                         compilers.pabloB.ast.Accessors.initBlockNode(initDefNode).appendChild(assignNode);                                                                     
     138                                                        compilers.pabloB.ast.Accessors.initBlockNode(initDefNode).appendChild(assignNode);
     139                                                       
    138140                                        }
    139141                                }
     
    147149                                                        optFuncDefNode,
    148150                                                        locationToken);
    149                                                
     151                       
     152                        // add carry declare
     153                        Generators.addFuncCallNode(kernelDefNode, (pabloB.ast.FuncCallNode) funcDefNode.lastChild());
     154                       
    150155                        // splice kernel node onto PabloB tree
    151156                        funcDefNode.updateSelf(kernelDefNode);
Note: See TracChangeset for help on using the changeset viewer.