Ignore:
Timestamp:
Jul 3, 2013, 3:13:33 PM (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/pabloS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/trunk/src/toolchain/pabloS/lang/PabloSBuiltinTranslator.java

    r3380 r3381  
    4040            ASTNode getCarryCall = Generators.makeGetCarryCall(locator, carry1Position, context);
    4141            ASTNode returnValue = childResults.get(0);
    42             ASTNode[] pabloBlkFuncCallArgs = makePabloBlkArgs(locator, childResults, getCarryCall, returnValue);
     42            ASTNode[] pabloBlkFuncCallArgs = listAsArray(locator, childResults, getCarryCall, returnValue);
    4343           
    4444            ASTNode pabloBlkFuncCall = Generators.makeFuncCallNode(locator, pabloBlkCallFuncName, pabloBlkFuncCallArgs);
     
    6262            ASTNode getCarryCall = Generators.makePending64Call(locator, carryNPosition, context);
    6363            ASTNode returnValue = childResults.get(0);
    64             ASTNode[] pabloBlkFuncCallArgs = makePabloBlkArgs(locator, removeAdvanceNConstantArg(childResults), getCarryCall, returnValue);
     64           
     65            List<ASTNode> pabloBlkArgs = new ArrayList();
     66            //
     67            //
     68            //
     69            //
     70            //
     71            ASTNode[] pabloBlkFuncCallArgs = listFromArray(locator, removeAdvanceNConstantArg(childResults), getCarryCall, returnValue);
    6572           
    6673            ASTNode pabloBlkFuncCall = Generators.makeFuncCallNode(locator, pabloBlkCallFuncName, pabloBlkFuncCallArgs);
     
    7279        private List<ASTNode> removeAdvanceNConstantArg(List<ASTNode> childResults) {
    7380                List<ASTNode> args = new ArrayList<ASTNode>();
    74                 for(int i=0; i<childResults.size(); i++) {
     81                for(int i=1; i<childResults.size(); i++) {
    7582                        args.add(childResults.get(i));
    7683                }
     
    209216        }
    210217       
    211         private static ASTNode[] makePabloBlkArgs(Locator locator,
    212             List<ASTNode> childResults, ASTNode getCarryCallForBuiltin, ASTNode returnValue) {
    213         FuncCallArgListNode funcCallArgList    = (FuncCallArgListNode)childResults.get(1).child(1);
    214         List<ASTNode> args = funcCallArgList.getChildren();
    215         args.add(getCarryCallForBuiltin);
    216         args.add(returnValue);
    217        
    218         ASTNode argsAsArray [] = args.toArray(new ASTNode [args.size()]);
    219         return argsAsArray;
     218        private static ASTNode[] listFromArray(List<ASTNode> list) {
     219        return list.toArray(new ASTNode [list.size()]);
    220220    }
    221221
  • proto/pabloj/trunk/src/toolchain/pabloS/transformer/visitors/pabloS2PabloB/PabloS2PabloBXFormer.java

    r3380 r3381  
    366366                if(BuiltinCallUtil.isCarry(rhs)) {
    367367
     368                    Locator locator = Generators.makeToken(snode.getToken());
     369                   
    368370                        int carryPosition = 0;
     371                        ASTNode carryCall = null;
    369372
    370373                        if(BuiltinCallUtil.isCarry1(rhs)) {
    371                                 try {
    372                                                 carryPosition = infoSetMap.get(rhs).carry1Position();
    373                                         } catch (Exception e) {
    374                                                 //System.out.println(rhs);
    375                                         }
     374
     375                                        carryPosition = infoSetMap.get(rhs).carry1Position();
     376                                        carryCall = Generators.makeGetCarryCall(locator, carryPosition, context);
     377
    376378                        } else if(BuiltinCallUtil.isCarryN(rhs)) {
    377379                               
    378                                 if(!infoSetMap.containsKey(rhs)) {
    379                                         System.out.println("Not found.");
    380                                 } else {
    381                                         System.out.println("Found.");
    382                                 }
    383                                 //try {
    384                                                 carryPosition = infoSetMap.get(rhs).carryNPosition();
    385                                         //} catch (Exception e) {
    386                                                
    387                                                 System.out.println(carryPosition);
    388                                                
    389                                                 System.out.println("N");
    390                                                 System.out.println(rhs);
    391                                         //}
     380                                        carryPosition = infoSetMap.get(rhs).carryNPosition();
     381                                        carryCall = Generators.makePending64Call(locator, carryPosition, context);
    392382                        }
    393 
    394                         Locator locator = Generators.makeToken(snode.getToken());
     383                       
    395384                        ASTNode getCarryCall = Generators.makeGetCarryCall(locator, carryPosition, context);
    396385                        ASTNode lhs = childResults.get(0);
     
    401390                        ASTNode pabloBlkFuncCall = translator.translate(builtin, (pabloS.ast.FuncCallNode) rhs, context, childResults, carryPosition);
    402391
    403                         ASTNode replacement = Generators.makeAssignNode(locator, getCarryCall, pabloBlkFuncCall);
     392                        ASTNode replacement = Generators.makeAssignNode(locator, carryCall, pabloBlkFuncCall);
    404393
    405394                        return replacement;
Note: See TracChangeset for help on using the changeset viewer.