Ignore:
Timestamp:
Jun 18, 2013, 3:06:50 PM (6 years ago)
Author:
ksherdy
Message:

Added transformer to split local variable decl/inits.

Location:
proto/pabloj/trunk/src
Files:
3 added
2 deleted
23 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/src/pabloB/ast/ASTNode.java

    r3295 r3330  
    159159        insertChild(index+1, successor);
    160160    }
     161        public void removeChild(ASTNode node) {
     162            int index = children.indexOf(node);
     163            removeChild(index);
     164        }   
    161165        public void removeChild(int index) {
    162166                ASTNode child = children.remove(index);
  • proto/pabloj/trunk/src/pabloB/ast/ASTTransformer.java

    r3261 r3330  
    6060        public ASTNode visit(KernelPropertyNode node);
    6161
    62         public ASTNode visit(LocalVarDeclNode node);
    63 
    6462        public ASTNode visit(ParameterListNode node);
    6563
     
    8179
    8280        public ASTNode visit(StructTypeNode node);
     81
     82        public ASTNode visit(VarDeclNode node);
    8383
    8484        public ASTNode visit(VoidTypeNode node);
     
    193193                }
    194194
    195                 public ASTNode visit(LocalVarDeclNode node) {
    196                         return defaultVisit(node);
    197                 }
    198 
    199195                public ASTNode visit(ParameterListNode node) {
    200196                        return defaultVisit(node);
     
    234230
    235231                public ASTNode visit(StructTypeNode node) {
     232                        return defaultVisit(node);
     233                }
     234
     235                public ASTNode visit(VarDeclNode node) {
    236236                        return defaultVisit(node);
    237237                }
  • proto/pabloj/trunk/src/pabloB/ast/ASTVisitor.java

    r3261 r3330  
    8686        public T visitLeave(KernelPropertyNode node, List<T> childResults);
    8787
    88         public void visitEnter(LocalVarDeclNode node);
    89         public T visitLeave(LocalVarDeclNode node, List<T> childResults);
    90 
    9188        public void visitEnter(ParameterListNode node);
    9289        public T visitLeave(ParameterListNode node, List<T> childResults);
     
    118115        public void visitEnter(StructTypeNode node);
    119116        public T visitLeave(StructTypeNode node, List<T> childResults);
     117
     118        public void visitEnter(VarDeclNode node);
     119        public T visitLeave(VarDeclNode node, List<T> childResults);
    120120
    121121        public void visitEnter(VoidTypeNode node);
     
    317317                }
    318318
    319                 public void visitEnter(LocalVarDeclNode node) {
    320                         defaultVisitEnter(node);
    321                 }
    322                 public T visitLeave(LocalVarDeclNode node, List<T> childResults) {
    323                         return defaultVisitLeave(node, childResults);
    324                 }
    325 
    326319                public void visitEnter(ParameterListNode node) {
    327320                        defaultVisitEnter(node);
     
    391384                }
    392385                public T visitLeave(StructTypeNode node, List<T> childResults) {
     386                        return defaultVisitLeave(node, childResults);
     387                }
     388
     389                public void visitEnter(VarDeclNode node) {
     390                        defaultVisitEnter(node);
     391                }
     392                public T visitLeave(VarDeclNode node, List<T> childResults) {
    393393                        return defaultVisitLeave(node, childResults);
    394394                }
  • proto/pabloj/trunk/src/pabloB/ast/SimpleVisitor.java

    r3261 r3330  
    6161        public void visit(KernelPropertyNode node);
    6262
    63         public void visit(LocalVarDeclNode node);
    64 
    6563        public void visit(ParameterListNode node);
    6664
     
    8280
    8381        public void visit(StructTypeNode node);
     82
     83        public void visit(VarDeclNode node);
    8484
    8585        public void visit(VoidTypeNode node);
     
    194194                }
    195195
    196                 public void visit(LocalVarDeclNode node) {
    197                         defaultVisit(node);
    198                 }
    199 
    200196                public void visit(ParameterListNode node) {
    201197                        defaultVisit(node);
     
    235231
    236232                public void visit(StructTypeNode node) {
     233                        defaultVisit(node);
     234                }
     235
     236                public void visit(VarDeclNode node) {
    237237                        defaultVisit(node);
    238238                }
  • proto/pabloj/trunk/src/pabloB/ast/VoidVisitor.java

    r3261 r3330  
    8484        public void visitLeave(KernelPropertyNode node);
    8585
    86         public void visitEnter(LocalVarDeclNode node);
    87         public void visitLeave(LocalVarDeclNode node);
    88 
    8986        public void visitEnter(ParameterListNode node);
    9087        public void visitLeave(ParameterListNode node);
     
    116113        public void visitEnter(StructTypeNode node);
    117114        public void visitLeave(StructTypeNode node);
     115
     116        public void visitEnter(VarDeclNode node);
     117        public void visitLeave(VarDeclNode node);
    118118
    119119        public void visitEnter(VoidTypeNode node);
     
    314314                }
    315315
    316                 public void visitEnter(LocalVarDeclNode node) {
    317                         defaultVisitEnter(node);
    318                 }
    319                 public void visitLeave(LocalVarDeclNode node) {
    320                         defaultVisitLeave(node);
    321                 }
    322 
    323316                public void visitEnter(ParameterListNode node) {
    324317                        defaultVisitEnter(node);
     
    388381                }
    389382                public void visitLeave(StructTypeNode node) {
     383                        defaultVisitLeave(node);
     384                }
     385
     386                public void visitEnter(VarDeclNode node) {
     387                        defaultVisitEnter(node);
     388                }
     389                public void visitLeave(VarDeclNode node) {
    390390                        defaultVisitLeave(node);
    391391                }
  • proto/pabloj/trunk/src/pabloB/parser/Parser.java

    r3261 r3330  
    586586                if( nowReading.isLextant(Lextant.BITBLOCK, Lextant.BITFIELD, Lextant.BOOL, Lextant.INT, Lextant.STRUCT, Lextant.VOID) ) {
    587587                        {
    588                                 ASTNode child = parseLocalVarDecl();
     588                                ASTNode child = parseVarDecl();
    589589                                result.appendChild(child);
    590590                                allChildren.add(child);
     
    814814        }
    815815         
    816         public ASTNode parseLocalVarDecl() {
     816        public ASTNode parseVarDecl() {
    817817                if( !(nowReading.isLextant(Lextant.BITBLOCK, Lextant.BITFIELD, Lextant.BOOL, Lextant.INT, Lextant.STRUCT, Lextant.VOID)) ) {
    818                         return syntaxErrorNode("localVarDecl² [BITBLOCK¹, BITFIELD¹, BOOL¹, INT¹, STRUCT¹, VOID¹]");
    819                 }
    820        
    821                 boolean allowCompression = true;
    822                 ASTNode result = new LocalVarDeclNode(nowReading);
     818                        return syntaxErrorNode("varDecl² [BITBLOCK¹, BITFIELD¹, BOOL¹, INT¹, STRUCT¹, VOID¹]");
     819                }
     820       
     821                boolean allowCompression = true;
     822                ASTNode result = new VarDeclNode(nowReading);
    823823                result.setProductionTag(29);
    824824                RevList<ASTNode> allChildren = new ReverseAccessibleArrayList<ASTNode>();
     
    832832                        result.appendChild(child);
    833833                        allChildren.add(child);
    834                 }
    835                 if( nowReading.isLextant(Lextant.ASSIGN) ) {
    836                         {
    837                                 ASTNode child = parseAssignOperator();
    838                                 // node omitted - no result.appendChild(child);
    839                                 allChildren.add(child);
    840                                 result.setToken( child.getToken() );
    841                         }
    842                         {
    843                                 ASTNode child = parseExpr();
    844                                 result.appendChild(child);
    845                                 allChildren.add(child);
    846                         }
    847834                }
    848835                expect(Lextant.TERMINATOR);
  • proto/pabloj/trunk/src/pabloS/ast/ASTNode.java

    r3295 r3330  
    169169        insertChild(index+1, successor);
    170170    }
     171        public void removeChild(ASTNode node) {
     172            int index = children.indexOf(node);
     173            removeChild(index);
     174        }   
    171175        public void removeChild(int index) {
    172176                ASTNode child = children.remove(index);
  • proto/pabloj/trunk/src/pabloS/ast/ASTTransformer.java

    r3192 r3330  
    4040        public ASTNode visit(IntegerConstantNode node);
    4141
    42         public ASTNode visit(LocalVarDeclNode node);
    43 
    4442        public ASTNode visit(ParameterListNode node);
    4543
     
    6361
    6462        public ASTNode visit(UnaryOperatorNode node);
     63
     64        public ASTNode visit(VarDeclNode node);
    6565
    6666        public ASTNode visit(VoidTypeNode node);
     
    135135                }
    136136
    137                 public ASTNode visit(LocalVarDeclNode node) {
    138                         return defaultVisit(node);
    139                 }
    140 
    141137                public ASTNode visit(ParameterListNode node) {
    142138                        return defaultVisit(node);
     
    183179                }
    184180
     181                public ASTNode visit(VarDeclNode node) {
     182                        return defaultVisit(node);
     183                }
     184
    185185                public ASTNode visit(VoidTypeNode node) {
    186186                        return defaultVisit(node);
  • proto/pabloj/trunk/src/pabloS/ast/ASTVisitor.java

    r3192 r3330  
    5656        public T visitLeave(IntegerConstantNode node, List<T> childResults);
    5757
    58         public void visitEnter(LocalVarDeclNode node);
    59         public T visitLeave(LocalVarDeclNode node, List<T> childResults);
    60 
    6158        public void visitEnter(ParameterListNode node);
    6259        public T visitLeave(ParameterListNode node, List<T> childResults);
     
    9188        public void visitEnter(UnaryOperatorNode node);
    9289        public T visitLeave(UnaryOperatorNode node, List<T> childResults);
     90
     91        public void visitEnter(VarDeclNode node);
     92        public T visitLeave(VarDeclNode node, List<T> childResults);
    9393
    9494        public void visitEnter(VoidTypeNode node);
     
    220220                }
    221221
    222                 public void visitEnter(LocalVarDeclNode node) {
    223                         defaultVisitEnter(node);
    224                 }
    225                 public T visitLeave(LocalVarDeclNode node, List<T> childResults) {
    226                         return defaultVisitLeave(node, childResults);
    227                 }
    228 
    229222                public void visitEnter(ParameterListNode node) {
    230223                        defaultVisitEnter(node);
     
    301294                }
    302295                public T visitLeave(UnaryOperatorNode node, List<T> childResults) {
     296                        return defaultVisitLeave(node, childResults);
     297                }
     298
     299                public void visitEnter(VarDeclNode node) {
     300                        defaultVisitEnter(node);
     301                }
     302                public T visitLeave(VarDeclNode node, List<T> childResults) {
    303303                        return defaultVisitLeave(node, childResults);
    304304                }
  • proto/pabloj/trunk/src/pabloS/ast/SimpleVisitor.java

    r3192 r3330  
    4141        public void visit(IntegerConstantNode node);
    4242
    43         public void visit(LocalVarDeclNode node);
    44 
    4543        public void visit(ParameterListNode node);
    4644
     
    6462
    6563        public void visit(UnaryOperatorNode node);
     64
     65        public void visit(VarDeclNode node);
    6666
    6767        public void visit(VoidTypeNode node);
     
    136136                }
    137137
    138                 public void visit(LocalVarDeclNode node) {
    139                         defaultVisit(node);
    140                 }
    141 
    142138                public void visit(ParameterListNode node) {
    143139                        defaultVisit(node);
     
    184180                }
    185181
     182                public void visit(VarDeclNode node) {
     183                        defaultVisit(node);
     184                }
     185
    186186                public void visit(VoidTypeNode node) {
    187187                        defaultVisit(node);
  • proto/pabloj/trunk/src/pabloS/ast/VoidVisitor.java

    r3192 r3330  
    5454        public void visitLeave(IntegerConstantNode node);
    5555
    56         public void visitEnter(LocalVarDeclNode node);
    57         public void visitLeave(LocalVarDeclNode node);
    58 
    5956        public void visitEnter(ParameterListNode node);
    6057        public void visitLeave(ParameterListNode node);
     
    8986        public void visitEnter(UnaryOperatorNode node);
    9087        public void visitLeave(UnaryOperatorNode node);
     88
     89        public void visitEnter(VarDeclNode node);
     90        public void visitLeave(VarDeclNode node);
    9191
    9292        public void visitEnter(VoidTypeNode node);
     
    217217                }
    218218
    219                 public void visitEnter(LocalVarDeclNode node) {
    220                         defaultVisitEnter(node);
    221                 }
    222                 public void visitLeave(LocalVarDeclNode node) {
    223                         defaultVisitLeave(node);
    224                 }
    225 
    226219                public void visitEnter(ParameterListNode node) {
    227220                        defaultVisitEnter(node);
     
    298291                }
    299292                public void visitLeave(UnaryOperatorNode node) {
     293                        defaultVisitLeave(node);
     294                }
     295
     296                public void visitEnter(VarDeclNode node) {
     297                        defaultVisitEnter(node);
     298                }
     299                public void visitLeave(VarDeclNode node) {
    300300                        defaultVisitLeave(node);
    301301                }
  • proto/pabloj/trunk/src/pabloS/parser/Parser.java

    r3260 r3330  
    378378                if( nowReading.isLextant(Lextant.INT, Lextant.STREAM, Lextant.STRUCT, Lextant.VOID) ) {
    379379                        {
    380                                 ASTNode child = parseLocalVarDecl();
     380                                ASTNode child = parseVarDecl();
    381381                                result.appendChild(child);
    382382                                allChildren.add(child);
     
    444444        }
    445445         
    446         public ASTNode parseLocalVarDecl() {
     446        public ASTNode parseVarDecl() {
    447447                if( !(nowReading.isLextant(Lextant.INT, Lextant.STREAM, Lextant.STRUCT, Lextant.VOID)) ) {
    448                         return syntaxErrorNode("localVarDecl² [INT¹, STREAM¹, STRUCT¹, VOID¹]");
    449                 }
    450        
    451                 boolean allowCompression = true;
    452                 ASTNode result = new LocalVarDeclNode(nowReading);
     448                        return syntaxErrorNode("varDecl² [INT¹, STREAM¹, STRUCT¹, VOID¹]");
     449                }
     450       
     451                boolean allowCompression = true;
     452                ASTNode result = new VarDeclNode(nowReading);
    453453                result.setProductionTag(15);
    454454                RevList<ASTNode> allChildren = new ReverseAccessibleArrayList<ASTNode>();
  • proto/pabloj/trunk/src/toolchain/pabloB/ast/Accessors.java

    r3325 r3330  
    127127       
    128128        ////////////////////////////////////////////////////////////////////////////
    129         // Local Var Decl Statements
    130         ////////////////////////////////////////////////////////////////////////////
    131        
    132     public static IdentifierNode identifier(LocalVarDeclNode node) {
     129        // Var Decl Statements
     130        ////////////////////////////////////////////////////////////////////////////
     131       
     132    public static IdentifierNode identifier(VarDeclNode node) {
    133133        ASTNode child = node.child(1);
    134134        assert child instanceof IdentifierNode;
     
    136136    }   
    137137   
    138         public static ASTNode lhs(LocalVarDeclNode node) {
     138        public static ASTNode lhs(VarDeclNode node) {
    139139                return node.child(1);
    140140        }       
    141141       
    142         public static ASTNode rhs(LocalVarDeclNode node) {
     142        public static ASTNode rhs(VarDeclNode node) {
    143143       
    144144                return node.child(2);
    145145        }               
    146146       
    147         public static String assignOperatorLexeme(LocalVarDeclNode node) {
    148                 return node.getToken().getPrintableLexeme();
    149         }       
    150        
    151         public static boolean hasInitializationAssign(LocalVarDeclNode node) {
    152 
    153                 if (node.nChildren() > 2) {
    154                         return true;
    155                 }
    156                 return false;
    157         }       
     147        public static String assignOperatorLexeme(VarDeclNode node) {
     148                return node.getToken().getPrintableLexeme();
     149        }       
     150       
    158151       
    159152        ////////////////////////////////////////////////////////////////////////////
  • proto/pabloj/trunk/src/toolchain/pabloB/codeGenerator/visitors/Unparser.java

    r3325 r3330  
    326326        }
    327327                               
    328         public CodeStore visitLeave(LocalVarDeclNode node, List<CodeStore> childResults) {
     328       
     329        public CodeStore visitLeave(VarDeclNode node, List<CodeStore> childResults) {
    329330       
    330331                CodeStore code = new CodeStore();
     
    333334                CodeStore identifier                    = (CodeStore)childResults.get(1);
    334335               
    335                 if(Accessors.hasInitializationAssign(node)) {
    336                
    337                         CodeStore expression                    = (CodeStore)childResults.get(2);
    338                
    339                         code.addFormattedLine("%s %s %s %s;",
    340                                                                 type.getResultVarName(),
    341                                                                 identifier.getResultVarName(),
    342                                                                 Accessors.assignOperatorLexeme(node),
    343                                                                 expression.getResultVarName());
    344                 } else {
    345                        
    346                         code.addFormattedLine("%s %s;",
     336                code.addFormattedLine("%s %s;",
    347337                                        type.getResultVarName(),
    348338                                        identifier.getResultVarName());
    349                 }
    350                
     339
    351340                return code;           
    352341        }       
     342       
    353343       
    354344        public CodeStore visitLeave(BlockStmtNode node, List<CodeStore> childResults) {
  • proto/pabloj/trunk/src/toolchain/pabloB/transformer/visitors/AddAlignmentAssertions.java

    r3264 r3330  
    3232                }
    3333               
    34                 // visits               
    35                 public void visitEnter(LocalVarDeclNode node) {
    36                         addAssertStmt(node, Accessors.identifier(node));
    37                 }               
    38                
    3934                public void visitEnter(AssignNode node) {
    4035                        addAssertStmt(node, Accessors.lhs(node));
  • proto/pabloj/trunk/src/toolchain/pabloB/transformer/visitors/AddAssignmentPrints.java

    r3325 r3330  
    3333                }
    3434               
    35                 // visits
    36                 public void visitEnter(LocalVarDeclNode node) {
    37                         addPrintStatement(node, Accessors.identifier(node));
    38                 }               
    39                
    4035                public void visitEnter(AssignNode node) {
    4136                        addPrintStatement(node, Accessors.lhs(node));
  • proto/pabloj/trunk/src/toolchain/pabloS/ast/Accessors.java

    r3325 r3330  
    7575
    7676        public static boolean isAssignmentRhs(ASTNode node) {
    77                 return isAssignNodeRhs(node) || isLocalVarDeclNodeRhs(node);
     77                return isAssignNodeRhs(node) || isVarDeclNodeRhs(node);
    7878        }
    7979       
     
    104104       
    105105        ////////////////////////////////////////////////////////////////////////////
    106         // LocalVarDeclNode
    107         ////////////////////////////////////////////////////////////////////////////
    108         public static ASTNode typeNode(LocalVarDeclNode node) {
    109                 return node.child(0);
    110         }       
    111 
    112         public static IdentifierNode identifier(LocalVarDeclNode node) {
     106        // VarDeclNode
     107        ////////////////////////////////////////////////////////////////////////////
     108        public static ASTNode typeNode(VarDeclNode node) {
     109                return node.child(0);
     110        }       
     111
     112        public static IdentifierNode identifier(VarDeclNode node) {
    113113                ASTNode child = node.child(1);
    114114                assert child instanceof IdentifierNode;
     
    116116        }       
    117117
    118         public static boolean hasInitExpr(LocalVarDeclNode node) {
    119             if(3 == node.nChildren()) {
    120                 return true;
    121             }
    122         return false;
    123     }       
    124 
    125         public static ASTNode lhs(LocalVarDeclNode node) {
     118        public static ASTNode lhs(VarDeclNode node) {
    126119            return node.child(1);
    127120        }       
    128121       
    129         public static ASTNode rhs(LocalVarDeclNode node) {
     122    public static boolean hasInitializationExpr(VarDeclNode node) {
     123        if(3 == node.nChildren()) {
     124            return true;
     125        }
     126        return false;
     127    }           
     128       
     129        public static ASTNode rhs(VarDeclNode node) {
    130130                return node.child(2);
    131131        }               
    132132
    133         public static boolean isLocalVarDeclNodeRhs(ASTNode node) {
     133        public static boolean isVarDeclNodeRhs(ASTNode node) {
    134134                ASTNode parent = node.getParent();
    135                 if ((parent instanceof LocalVarDeclNode)) {
    136                         if (Accessors.rhs((LocalVarDeclNode)parent) == node) {
     135                if ((parent instanceof VarDeclNode)) {
     136                        if (Accessors.rhs((VarDeclNode)parent) == node) {
    137137                                return true;
    138138                        }
     
    141141        }
    142142       
    143         public static String assignOperatorLexeme(LocalVarDeclNode node) {
     143        public static String assignOperatorLexeme(VarDeclNode node) {
    144144                return node.getToken().getLexeme();
    145145        }       
  • proto/pabloj/trunk/src/toolchain/pabloS/ast/Generators.java

    r3325 r3330  
    3838        }
    3939       
    40         public static LocalVarDeclNode makeLocalVarDeclNode(Locator locator, ASTNode type, ASTNode lhs) {
     40        public static VarDeclNode makeVarDeclNode(Locator locator, ASTNode type, ASTNode lhs) {
    4141            Token assignToken = Generators.makeLextantToken(locator, Lextant.ASSIGN);
    42             LocalVarDeclNode localVarDecl = new LocalVarDeclNode(assignToken);
     42            VarDeclNode localVarDecl = new VarDeclNode(assignToken);
    4343            localVarDecl.appendChild(type);
    4444            localVarDecl.appendChild(lhs);
     
    4949        }
    5050       
    51         public static LocalVarDeclNode makeLocalVarDeclNode(Locator locator, ASTNode type, ASTNode lhs, ASTNode rhs) {         
    52             LocalVarDeclNode localVarDecl = makeLocalVarDeclNode(locator,type,lhs);
     51        public static VarDeclNode makeVarDeclNode(Locator locator, ASTNode type, ASTNode lhs, ASTNode rhs) {           
     52            VarDeclNode localVarDecl = makeVarDeclNode(locator,type,lhs);
    5353                localVarDecl.appendChild(rhs);
    5454                return localVarDecl;
  • proto/pabloj/trunk/src/toolchain/pabloS/semanticAnalyzer/SemanticAnalyzer.java

    r3316 r3330  
    138138                //
    139139                @Override
    140                 public void visitLeave(LocalVarDeclNode node) {
     140                public void visitLeave(VarDeclNode node) {
    141141                        ASTNode typeNode = Accessors.typeNode(node);
    142142                       
    143                         if(Accessors.hasInitExpr(node)) {
     143                        if(Accessors.hasInitializationExpr(node)) {
    144144                                ASTNode rhs = Accessors.rhs(node);
    145145                                typecheckAssignment(node, typeNode, rhs);
     
    390390                private boolean isVariableBeingDefined(IdentifierNode node) {
    391391                        ASTNode parent = node.getParent();
    392                         return ((parent instanceof LocalVarDeclNode) && node == Accessors.identifier((LocalVarDeclNode) parent));
     392                        return ((parent instanceof VarDeclNode) && node == Accessors.identifier((VarDeclNode) parent));
    393393                }
    394394
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/Transformer.java

    r3327 r3330  
    1010import toolchain.pabloS.lang.*;
    1111import toolchain.pabloS.lang.carrySet.CarrySetEncoder;
    12 import toolchain.pabloS.transformer.visitors.CombineAdvances;
    13 import toolchain.pabloS.transformer.visitors.ConvertBitwiseBooleanToIDISACalls;
    14 import toolchain.pabloS.transformer.visitors.ExpandAugmentedAssignments;
    15 import toolchain.pabloS.transformer.visitors.SurroundAssert0sWithIfs;
    16 import toolchain.pabloS.transformer.visitors.SurroundConditionsWithBitBlockAny;
    17 import toolchain.pabloS.transformer.visitors.carry.CarryIntroXFormer;
    18 import toolchain.pabloS.transformer.visitors.carry.TempifyCarryBuiltinCalls;
     12import toolchain.pabloS.transformer.visitors.*;
     13import toolchain.pabloS.transformer.visitors.carry.*;
    1914
    2015public class Transformer {
     
    7166                decoratedTree = ConvertBitwiseBooleanToIDISACalls.apply(decoratedTree);
    7267                //decoratedTree = InitializeStreamDefaults.apply(decoratedTree);
     68               
     69                decoratedTree = SplitVarDeclsInitializations.apply(decoratedTree);
    7370                               
    7471                return decoratedTree;
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/visitors/InitializeStreamDefaults.java

    r3308 r3330  
    3131        static private class Bitwise2IDISAGeneralXFormer extends VoidVisitor.Default {
    3232               
    33                 public void visitLeave(LocalVarDeclNode node) {
    34                         if(Accessors.hasInitExpr(node)) {
     33                public void visitLeave(VarDeclNode node) {
     34                        if(Accessors.hasInitializationExpr(node)) {
    3535                                return;
    3636                        }
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/visitors/carry/CarryIntroXFormer.java

    r3325 r3330  
    165165                    }
    166166                }
    167 
    168         ///////////////////////////////////////////////////////////////////
    169         // LocalVarDeclNode
    170         public void visitLeave(LocalVarDeclNode node) {
    171             if(Accessors.hasInitExpr(node)) {
    172 
    173                 ASTNode rhs = Accessors.rhs(node);
    174                 if(BuiltinCallUtil.isCarry(rhs)) {
    175                     IdentifierNode lhs = (IdentifierNode) Accessors.lhs(node);
    176                    
    177                     FuncCallNode funcCall = (FuncCallNode) rhs;
    178                    
    179                     PabloSBuiltin builtin = BuiltinCallUtil.builtin(funcCall);
    180                     Counter counter = selectCounter(builtin, carryCounter, advanceNCounter);
    181                     CarryBuiltinTranslator translator = (CarryBuiltinTranslator) builtin.getTranslator();
    182                     IdentifierNode returnValue = lhs;
    183                     translator.translate(builtin, funcCall, counter, context, returnValue);
    184                    
    185                     node.replaceChild(lhs, counter.makeGetCarryCall(node,context));
    186                     counter.increment();
    187                 }
    188             }
    189         }
    190167               
    191168                ///////////////////////////////////////////////////////////////////
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/visitors/carry/TempifyCarryBuiltinCalls.java

    r3327 r3330  
    109109            }
    110110           
    111         public void visitLeave(LocalVarDeclNode node) {
     111        public void visitLeave(VarDeclNode node) {
    112112            bindTempDeclsToBlockStmt(node);
    113113            bindTempAssignToBlockStmt(node);           
     
    141141                IdentifierNode name              = Generators.makeIdentifierNode(locator, labeller.newLabel());
    142142                StreamTypeNode type              = Generators.makeStreamType(locator);
    143                 LocalVarDeclNode localVarDecl    = Generators.makeLocalVarDeclNode(locator, type, name.deepCopy());
     143                VarDeclNode localVarDecl         = Generators.makeVarDeclNode(locator, type, name.deepCopy());
    144144                AssignNode assignStmt            = Generators.makeAssignNode(locator, name.deepCopy(), node.deepCopy());
    145145
Note: See TracChangeset for help on using the changeset viewer.