Changeset 2771 for proto


Ignore:
Timestamp:
Dec 12, 2012, 2:48:43 AM (7 years ago)
Author:
ksherdy
Message:

Added support for PabloB to CPP code generation.

Location:
proto/pablo/src/compiler/transformer
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • proto/pablo/src/compiler/transformer/PabloSTransformer.java

    r2770 r2771  
    77public class PabloSTransformer {
    88
    9         private pabloS.ast.ASTNode root;
     9        private pabloS.ast.ASTNode ASTTree;
    1010       
    1111        private Builtins2Lang builtins2Lang;
     
    1818        // static interface
    1919               
    20         public static pabloB.ast.ASTNode analyze(pabloS.ast.ASTNode root, Builtins2Lang builtins2Lang, CarrySet2Lang carrySet2Lang) {
     20        public static pabloS.ast.ASTNode analyze(pabloS.ast.ASTNode root, Builtins2Lang builtins2Lang, CarrySet2Lang carrySet2Lang) {
    2121                PabloSTransformer analyzer = new PabloSTransformer(root, builtins2Lang, carrySet2Lang);         
    2222                return analyzer.transform();
     
    2727       
    2828        public PabloSTransformer(pabloS.ast.ASTNode root, Builtins2Lang builtins2Lang, CarrySet2Lang carrySet2Lang) {           
    29                 this.root = root;               
     29                this.ASTTree = root;           
    3030                this.setAddDumpStmts(false);
    3131                this.setAddAssertBitBlockAlignStmts(false);
     
    3636        //////////////////////////////////////////////////////////////
    3737        // analysis
    38         public pabloB.ast.ASTNode transform() {
     38        public pabloS.ast.ASTNode transform() {
    3939               
    40             AdvanceCombinerXFormer advanceCombiner = new AdvanceCombinerXFormer(root);
     40            AdvanceCombinerXFormer advanceCombiner = new AdvanceCombinerXFormer(ASTTree);
    4141            advanceCombiner.XForm();
    4242                               
    43             AugAssignXFormer AugAssign = new AugAssignXFormer(root);
     43            AugAssignXFormer AugAssign = new AugAssignXFormer(ASTTree);
    4444                AugAssign.XForm();
    4545               
    46                 CarryIntroXFormer carryQIntro = new CarryIntroXFormer(root, getCarrySet2Lang());
     46                CarryIntroXFormer carryQIntro = new CarryIntroXFormer(ASTTree, getCarrySet2Lang());
    4747                carryQIntro.XForm();
    4848
    49                 AssertZeroXFormer assertZeroXFormer = new AssertZeroXFormer(root, getBuiltins2Lang());
     49                AssertZeroXFormer assertZeroXFormer = new AssertZeroXFormer(ASTTree, getBuiltins2Lang());
    5050                assertZeroXFormer.XForm();             
    5151           
    52                 Bitwise2IDISAXFormer bitwiseToIDISA = new Bitwise2IDISAXFormer(root);
     52                Bitwise2IDISAXFormer bitwiseToIDISA = new Bitwise2IDISAXFormer(ASTTree);
    5353                bitwiseToIDISA.XForm();
    5454
    5555                if(isAddDumpStmts()) {
    56                         DumpAssignStmtsXFormer dumpAssignStmtsXFormer = new DumpAssignStmtsXFormer(root, getBuiltins2Lang()); 
     56                        DumpAssignStmtsXFormer dumpAssignStmtsXFormer = new DumpAssignStmtsXFormer(ASTTree, getBuiltins2Lang()); 
    5757                        dumpAssignStmtsXFormer.XForm();
    5858                }
    5959               
    6060                if(isAddAssertBitBlockAlignStmts()) {
    61                         AssertBitBlockAlignStmtsXFormer assertBitBlockAlignStmtsXFormer = new AssertBitBlockAlignStmtsXFormer(root, getBuiltins2Lang(), getCarrySet2Lang()); 
     61                        AssertBitBlockAlignStmtsXFormer assertBitBlockAlignStmtsXFormer = new AssertBitBlockAlignStmtsXFormer(ASTTree, getBuiltins2Lang()); 
    6262                        assertBitBlockAlignStmtsXFormer.XForm();
    6363                }                                                       
    64                
    65                 PabloS2PabloBXFormer xFormer = new PabloS2PabloBXFormer();
    66                 pabloB.ast.ASTNode node = xFormer.optXForm(root, root.deepCopy());
    67                
    68                 return node;
     64                               
     65                return ASTTree;
    6966        }
    7067
  • proto/pablo/src/compiler/transformer/visitors/AssertBitBlockAlignStmtsXFormer.java

    r2770 r2771  
    66import compiler.lang.pabloS.Builtins;
    77import compiler.lang.pabloS.Builtins2Lang;
    8 import compiler.lang.carryset.CarrySet2Lang;
    98
    109public class AssertBitBlockAlignStmtsXFormer {
     
    1211       
    1312        private Builtins2Lang builtins2Lang;
    14         private CarrySet2Lang carrySet2Lang;
    1513       
    16         public AssertBitBlockAlignStmtsXFormer(ASTNode ASTree, Builtins2Lang builtins2Lang, CarrySet2Lang carrySet2Lang) {
     14        public AssertBitBlockAlignStmtsXFormer(ASTNode ASTree, Builtins2Lang builtins2Lang) {
    1715                this.ASTree = ASTree;
    1816                this.builtins2Lang = builtins2Lang;
    19                 this.carrySet2Lang = carrySet2Lang;
    2017        }
    2118       
  • proto/pablo/src/compiler/transformer/visitors/AssertZeroXFormer.java

    r2770 r2771  
    7474                               
    7575                                node.updateSelf(ifStmtNode);
    76                         }
    77                        
     76                        }       
    7877                }               
    79                
    80                 private void addAssertZeroStmt(ASTNode node, ASTNode lhs) {
    81                         FuncCallNode printRegisterStmt =
    82                                         Generators.makeFuncCallNode(  builtins2Lang.getCode(Builtins.ASSERTBITBLOCKALIGN),
    83                                                                                                                         node.getToken(),
    84                                                                                                                         new ASTNode [] {lhs});
    85                        
    86                         (node.getParent()).insertAfterChild(node, printRegisterStmt);                           
    87                 }
    8878        }       
    8979}
  • proto/pablo/src/compiler/transformer/visitors/PabloS2PabloBXFormer.java

    r2770 r2771  
    481481       
    482482       
     483        @SuppressWarnings("unused")
    483484        private static pabloS.ast.FuncDefNode recursiveSearch(pabloS.ast.ASTNode node, String target) {
    484485       
  • proto/pablo/src/compiler/transformer/visitors/helpers/UnparserUtil.java

    r2770 r2771  
    11package compiler.transformer.visitors.helpers;
    22
    3 import pabloS.ast.*;
     3import pabloB.ast.*;
    44
    55import java.util.Iterator;
Note: See TracChangeset for help on using the changeset viewer.