Ignore:
Timestamp:
Dec 2, 2012, 12:50:44 AM (6 years ago)
Author:
ksherdy
Message:

General refactoring.

Location:
proto/pablo/src/compiler/backend
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • proto/pablo/src/compiler/backend/CodeGenerator.java

    r2702 r2710  
    1 package compiler.semanticAnalyzer;
     1package compiler.backend;
    22
    3 import compiler.ast.Accessors;
    4 import compiler.codeGenerator.visitors.CPPUnparser;
    5 import compiler.codeGenerator.visitors.helpers.UnparserUtil;
     3import compiler.backend.visitors.*;
    64import compiler.lang.carryset.CarrySet2Lang;
    75import compiler.lang.pablo.Builtins2Lang;
    8 import compiler.semanticAnalyzer.visitors.*;
    96
    107import ast.ASTNode;
    11 import ast.ProgramNode;
    128
    13 public class SemanticAnalyzer {
     9public class CodeGenerator {
    1410
    1511        private ASTNode root;
     
    2723        // static interface
    2824               
    29         public static ASTNode analyze(ASTNode root) {
    30                 SemanticAnalyzer analyzer = new SemanticAnalyzer(root);         
    31                 return analyzer.analyze();
     25        public static ASTNode analyze(ASTNode root, Builtins2Lang builtins2Lang, CarrySet2Lang carrySet2Lang) {
     26                CodeGenerator analyzer = new CodeGenerator(root, builtins2Lang, carrySet2Lang);         
     27                return analyzer.generate();
    3228        }       
    3329       
     
    3531        // constructor and helpers
    3632       
    37         public SemanticAnalyzer(ASTNode root) {         
     33        public CodeGenerator(ASTNode root, Builtins2Lang builtins2Lang, CarrySet2Lang carrySet2Lang) {         
    3834                this.root = root;               
    3935                this.setAddDumpStmts(false);
    4036                this.setAddAssertBitBlockAlignStmts(false);
    41                
    42                 //
    43                 // CPP builtins2Lang
    44                 // CPP carrySet2Lang
    45                 //
    46 
    47                 this.setCiMode(true);
    48                 this.setCoMode(false);
     37                this.setBuiltins2Lang(builtins2Lang);
     38                this.setCarrySet2Lang(carrySet2Lang);
    4939        }       
    50 
    51         //////////////////////////////////////////////////////////////
    52         // set defaults
    53         //
    54         //
    55         //
    56         //
    5740       
    5841        //////////////////////////////////////////////////////////////
    5942        // analysis
    60         public ASTNode analyze() {
     43        public ASTNode generate() {
    6144               
    6245            AdvanceCombinerXFormer advanceCombiner = new AdvanceCombinerXFormer(root);
     
    6649                AugAssign.XForm();
    6750               
    68                 CarryIntroXFormer carryQIntro = new CarryIntroXFormer(root, getCarrySet2Lang()); // TODO - go modeless
    69                 carryQIntro.XForm(ciMode /*, coMode */);
    70                
    71                 Pablo2CarryXFormer pablo2CarryQ = new Pablo2CarryXFormer(root, getBuiltins2Lang(), getCarrySet2Lang());
    72                 pablo2CarryQ.XForm(ciMode /*, coMode */);                   
     51                CarryIntroXFormer carryQIntro = new CarryIntroXFormer(root, getCarrySet2Lang());
     52                carryQIntro.XForm(/*ciMode , coMode */);
     53
     54                AssertZeroXFormer assertZeroXFormer = new AssertZeroXFormer(root, getBuiltins2Lang());
     55                assertZeroXFormer.XForm();             
    7356           
    74                 AssertZeroXFormer assertZeroXFormer = new AssertZeroXFormer(root, getBuiltins2Lang());
    75                 assertZeroXFormer.XForm();
    76                
    7757                Bitwise2IDISAXFormer bitwiseToIDISA = new Bitwise2IDISAXFormer(root);
    7858                bitwiseToIDISA.XForm();
    79        
    80                
     59
    8160                if(isAddDumpStmts()) {
    8261                        DumpAssignStmtsXFormer dumpAssignStmtsXFormer = new DumpAssignStmtsXFormer(root, getBuiltins2Lang()); 
     
    8766                        AssertBitBlockAlignStmtsXFormer assertBitBlockAlignStmtsXFormer = new AssertBitBlockAlignStmtsXFormer(root, getBuiltins2Lang(), getCarrySet2Lang()); 
    8867                        assertBitBlockAlignStmtsXFormer.XForm();
    89                 }                                       
     68                }                                                      
    9069               
    9170                return root;
Note: See TracChangeset for help on using the changeset viewer.