Changeset 3379 for proto/pabloj


Ignore:
Timestamp:
Jul 3, 2013, 11:59:56 AM (6 years ago)
Author:
ksherdy
Message:

Partial check in marked for reversion. Progress towards S->S, S->B, B->B translation organization.

Location:
proto/pabloj/trunk/src/toolchain
Files:
4 edited

Legend:

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

    r3378 r3379  
    273273        }       
    274274       
    275         public static AssignNode makeAssignEqualNode(Locator locator, String [] identifiers, ASTNode rhs) {
    276                
    277                 Token assignEqualToken = Generators.makeLextantToken(locator, Lextant.ASSIGN);
    278                 AssignNode assignEqualNode = new AssignNode(assignEqualToken);
    279                
    280                 CompoundIdentifierNode lhs = Generators.makeCompoundIdentifierNode(locator, identifiers);
    281                
    282                 assignEqualNode.appendChild(lhs);
    283                 assignEqualNode.appendChild(rhs);
    284                
    285                 return assignEqualNode;
     275        public static AssignNode makeAssignNode(Locator locator, ASTNode lhs, ASTNode rhs) {
     276               
     277            LextantToken token = Generators.makeLextantToken(locator, Lextant.ASSIGN);
     278                AssignNode assignNode = new AssignNode(token);
     279
     280                assignNode.appendChild(lhs.deepCopy());
     281                assignNode.appendChild(rhs.deepCopy());
     282               
     283                return assignNode;
    286284        }
    287285       
  • proto/pabloj/trunk/src/toolchain/pabloS/lang/PabloSBuiltinTranslator.java

    r3378 r3379  
    7878       
    7979        SCANTO_TRANSLATION {
    80         public void translate(PabloSBuiltin builtin, FuncCallNode snode, Counter counter, Context context, pabloS.ast.ASTNode returnValue) {
    81             scanToTranslate(PabloSBuiltin.SCAN_THRU, snode, counter, context, returnValue);
     80        public ASTNode translate(PabloSBuiltin builtin, pabloS.ast.FuncCallNode snode, Context context, List<ASTNode> childResults, int carry1Position) {
     81            return scanToTranslate(PabloSBuiltin.SCAN_THRU, snode, context, childResults, carry1Position);
    8282        }
    8383    },
    8484
    8585    ADVANCE_THEN_SCANTO_TRANSLATION {
    86         public void translate(PabloSBuiltin builtin, FuncCallNode snode, Counter counter, Context context, pabloS.ast.ASTNode returnValue) {
    87             scanToTranslate(PabloSBuiltin.ADVANCE_THEN_SCAN_THRU, snode, counter, context, returnValue);
     86        public ASTNode translate(PabloSBuiltin builtin, pabloS.ast.FuncCallNode snode, Context context, List<ASTNode> childResults, int carry1Position) {
     87            return scanToTranslate(PabloSBuiltin.ADVANCE_THEN_SCAN_THRU, snode, context, childResults, carry1Position);
    8888        }
    8989    },
     
    167167    };
    168168   
    169     private static void scanToTranslate(PabloSBuiltin builtin, pabloS.ast.FuncCallNode snode, Counter counter, Context context, pabloS.ast.ASTNode returnValue) {
    170 //        pabloS.ast.ASTNode argument = Accessors.argument(snode, 1);
    171 //        translateArgument(context, argument);
    172 //        pabloS.ast.ASTNode replacement = Generators.makeCompoundIdentifierNode(snode,
    173 //                BuiltinCallUtil.BUILTIN_PACKAGE_NAME, translatedBuiltin.pabloSName());
    174 //
    175 //        snode.replaceChild(Accessors.nameNode(snode), replacement);
    176 //        CARRY_TRANSLATION.translate(translatedBuiltin, snode, counter, context, returnValue);
     169    private static ASTNode scanToTranslate(PabloSBuiltin builtin, pabloS.ast.FuncCallNode snode, Context context, List<ASTNode> childResults, int carry1Position) {
     170        pabloS.ast.ASTNode argument = toolchain.pabloS.ast.Accessors.argument(snode, 1);
     171        translateArgument(context, argument);
     172        pabloS.ast.ASTNode replacement = toolchain.pabloS.ast.Generators.makeCompoundIdentifierNode(snode,
     173                BuiltinCallUtil.BUILTIN_PACKAGE_NAME, builtin.pabloSName());
     174
     175        snode.replaceChild(toolchain.pabloS.ast.Accessors.nameNode(snode), replacement);
     176        return CARRY_TRANSLATION.translate(builtin, snode, context, childResults, carry1Position);
    177177    }
    178178   
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/visitors/infoSet/InfoSetMap.java

    r3376 r3379  
    6969        public void visitLeave(FuncCallNode node) {
    7070           
     71            PropertyInfoSet propInfoSet = new PropertyInfoSet(carry1Position, carryNPosition); // next values
     72           
    7173            if(BuiltinCallUtil.isCarry1(node)) {
    7274                carry1Position += 1;
     
    7577            }
    7678           
    77 //            if(BuiltinCallUtil.isCarry(node)) {
    78 //                int initialValue = BuiltinCallUtil.builtin(node).intInitialValue();
    79 //                carry1InitialValues.add(initialValue);
    80 //            }
    81            
    82             PropertyInfoSet propInfoSet = new PropertyInfoSet(carry1Position, carryNPosition);
    83            
    84            
    85            
    86            
    8779            infoSetMap.put(node, propInfoSet);
    8880        }
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/visitors/pabloS2PabloB/PabloS2PabloBXFormer.java

    r3378 r3379  
    364364            pabloS.ast.ASTNode rhs = toolchain.pabloS.ast.Accessors.rhs(snode);
    365365
    366             if(BuiltinCallUtil.isCarry(rhs)) {
     366            if(BuiltinCallUtil.isCarry1(rhs)) {
    367367               
    368                 if(infoSetMap.containsKey(rhs)) {
    369 
    370                     int carry1Position = infoSetMap.get(rhs).carry1Position();
    371                                        
     368                    int carry1Position = 0;
     369                    try {
     370                        carry1Position = infoSetMap.get(rhs).carry1Position();
     371                    } catch (Exception e) {
     372                        // TODO Auto-generated catch block
     373                        System.out.println(rhs);
     374                    }
     375                   
     376                   
     377                    Locator locator = Generators.makeToken(snode.getToken());
     378                    ASTNode getCarryCall = Generators.makeGetCarryCall(locator, carry1Position, context);
     379                    ASTNode lhs = childResults.get(0);
     380                    getCarryCall.appendChild(lhs);
     381                   
    372382                    PabloSBuiltin builtin = BuiltinCallUtil.builtin(rhs);
    373383                    PabloSBuiltinTranslator translator = builtin.getTranslator();
    374                     ASTNode replacement = translator.translate(builtin, (pabloS.ast.FuncCallNode) rhs, context, childResults, carry1Position);
    375                    
    376 //                   
    377 //                    pabloS.inputHandler.Locator locator = snode;
    378 ////                    snode.appendChild(toolchain.pabloS.ast.Generators.makeGetCallCarryForBuiltin(locator, builtin, carry1, context));
    379                    
    380 //                    ASTNode replacement  = new AssignNode(Generators.makeToken(snode.getToken()));
    381 //                    appendChildResults(replacement, childResults);
     384                    ASTNode pabloBlkFuncCall = translator.translate(builtin, (pabloS.ast.FuncCallNode) rhs, context, childResults, carry1Position);
     385                   
     386                   
     387                   
     388                    ASTNode replacement = Generators.makeAssignNode(locator, getCarryCall, pabloBlkFuncCall);
     389                   
     390                    System.out.println(replacement);
     391
    382392                    return replacement;
    383                      
    384                 }
     393 
    385394            }
    386395           
Note: See TracChangeset for help on using the changeset viewer.