Changeset 3193 for proto/pabloj/branches


Ignore:
Timestamp:
May 27, 2013, 4:08:52 PM (6 years ago)
Author:
ksherdy
Message:

Updated branch to sync with trunk.

Location:
proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/helpers/CodeStore.java

    r3010 r3193  
    3131        private String resultVarName = "codeStoreNoVar";
    3232
    33         public void prepentToFirst(String line) {
     33        public void prependToFirst(String line) {
    3434                if (code.isEmpty()) {
    3535                        addLine(line);
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/idisa/AbstractIDISABuiltin2Lang.java

    r3134 r3193  
    4545                _firstArg = argList.get(0);
    4646               
    47                 String csv = UnparserUtil.makeDelimitedList(argList.subList(start, argList.size()), ", ");
     47                String csv = UnparserUtil.makeDelimitedList(argList.subList(start, argList.size()), ",");
    4848                return csv;
    4949        }
  • proto/pabloj/branches/refactor-experimental/src/toolchain/pabloB/codeGenerator/visitors/Unparser.java

    r3134 r3193  
    7272        }
    7373       
    74         public CodeStore visitLeave(TypeDeclNode node, List<CodeStore> childResults) {
    75                 return  UnparserUtil.concatenatedChildrenCode(new CodeStore(), childResults, true);
     74        public CodeStore visitLeave(StructDeclNode node, List<CodeStore> childResults) {
     75                CodeStore code = new CodeStore();
     76               
     77                CodeStore structName = (CodeStore) childResults.get(0);
     78                code.addFormattedLine("struct %s", structName.getResultVarName());
     79                code.addLine("{");
     80                code.addAll(childResults.get(1),0);
     81                code.dedentedLine("};");
     82                code.addLine(" "); // add blank line
     83               
     84                return code;
     85               
    7686        }
    7787       
     
    91101                code.addAll(initDef, 0);
    92102               
    93                 funcDefCodeStore.prepentToFirst("IDISA_INLINE ");
     103                funcDefCodeStore.prependToFirst("IDISA_INLINE ");
    94104               
    95105                code.addAll(funcDefCodeStore, 0);
     
    97107                if(Accessors.hasOptFuncDef(node)) {
    98108                        CodeStore optFuncDefCodeStore = childResults.get(3);
     109                        // optFuncDefCodeStore.prependToFirst("IDISA_INLINE ");
    99110                        code.addAll(optFuncDefCodeStore, 0);
    100111                }
     
    148159                return code;
    149160        }
    150        
     161        /* TODO - Update init section and remove
    151162        public CodeStore visitLeave(StateIdentifierNode node, List<CodeStore> childResults) {           
    152163               
     
    156167                return code;
    157168        }
    158        
     169        */
     170        /* TODO - Update init section and remove
    159171        public CodeStore visitLeave(StateInitStmtNode node, List<CodeStore> childResults) {
    160172               
     
    162174               
    163175                // TODO - Hook for PabloB Kernel init section, state.
    164                 /*
    165                 code.addFormattedLine("for(int i=0; i<%s; i++)", stateSize);
    166                 code.addLine("{");
    167                 code.addAll(stateInitListCodeStore, 0);
    168                 code.dedentedLine("}");
    169                 code.addLine("");
    170                 */
    171                                
    172                 return code;
    173         }       
    174        
     176               
     177//              code.addFormattedLine("for(int i=0; i<%s; i++)", stateSize);
     178//              code.addLine("{");
     179//              code.addAll(stateInitListCodeStore, 0);
     180//              code.dedentedLine("}");
     181//              code.addLine("");
     182               
     183                               
     184                return code;
     185        }       
     186        */
     187        /* TODO - Update init section and remove
    175188        public CodeStore visitLeave(StateInitListNode node, List<CodeStore> childResults) {
    176189               
     
    178191
    179192                // TODO - Hook for PabloB Kernel init section, state.
    180                 /*
    181                 for(int i=0; i<childResults.size(); i++) {
    182                         code.addFormattedLine("%s[%s]=%s;", stateIdentifier, Integer.toString(i), childResults.get(i).getResultVarName(), 0);
    183                 }
    184                 */
    185                
    186                 return code;
    187         }
    188        
     193               
     194//              for(int i=0; i<childResults.size(); i++) {
     195//                      code.addFormattedLine("%s[%s]=%s;", stateIdentifier, Integer.toString(i), childResults.get(i).getResultVarName(), 0);
     196//              }
     197               
     198               
     199                return code;
     200        }
     201        */
     202        /* TODO - Update init section and remove
    189203        public CodeStore visitLeave(StateSizeNode node, List<CodeStore> childResults) {
    190204                CodeStore code = new CodeStore();
     
    192206                return code;
    193207        }       
    194        
     208        */
    195209        public CodeStore visitLeave(FuncDefNode node, List<CodeStore> childResults) {
    196210                       
     
    221235                CodeStore code = new CodeStore();               
    222236                Iterator<CodeStore> iter = childResults.iterator();
    223                 code.setResultVarName(UnparserUtil.makeDelimitedList(iter, ", "));             
     237                code.setResultVarName(UnparserUtil.makeDelimitedList(iter, ","));               
    224238                return code;
    225239        }
     
    352366                CodeStore code = new CodeStore();
    353367                Iterator<CodeStore> iter = childResults.iterator();
    354                 code.setResultVarName(UnparserUtil.makeDelimitedList(iter, ", "));
     368                code.setResultVarName(UnparserUtil.makeDelimitedList(iter, ","));
    355369                return code;
    356370        }       
     
    384398                CodeStore code = new CodeStore();
    385399                Iterator<CodeStore> iter = childResults.iterator();
    386                 code.setResultVarName(UnparserUtil.makeDelimitedList(iter, ", "));
     400                code.setResultVarName(UnparserUtil.makeDelimitedList(iter, ","));
    387401                return code;
    388402        }               
     
    397411                CodeStore code = new CodeStore();
    398412                code.setResultVarName(Accessors.integerConstantLexeme(node));
    399                 return code;
    400         }
    401        
    402         public CodeStore visitLeave(StreamConstantNode node, List<CodeStore> childResults) {
    403                 CodeStore code = new CodeStore();
    404                 code.setResultVarName(Accessors.streamConstantLexeme(node));
    405413                return code;
    406414        }
     
    412420        // Stream Structures are used both as a variable and as sequence of code lines
    413421        public CodeStore visitLeave(StructTypeNode node, List<CodeStore> childResults) {
    414 
    415                 CodeStore code = new CodeStore();
    416                
    417                 StringBuffer resultVar = new StringBuffer();
    418                
    419                 CodeStore structName = (CodeStore) childResults.get(0);
    420 
    421                 // set variable
    422                 resultVar.append("struct");
     422                CodeStore code = new CodeStore();
     423               
     424                StringBuilder resultVar = new StringBuilder();
     425                resultVar.append(Accessors.structTypeLexeme(node));
    423426                resultVar.append(" ");
    424                 resultVar.append(structName.getResultVarName());
    425                
    426                 if (Accessors.hasStructBody(node)) {                   
    427                         resultVar.append(CodeStore.NEWLINE);
    428                         resultVar.append("{");
    429                         resultVar.append(CodeStore.NEWLINE);
    430                         resultVar.append(childResults.get(1).toStringIndented(0));
    431                         resultVar.append("}");
    432                 }
    433                 code.setResultVarName(resultVar.toString());
    434 
    435                 // code store lines
    436                 code.addFormattedLine("struct %s", structName.getResultVarName());
    437                 code.addLine("{");
    438                 if(Accessors.hasStructBody(node)) {                             
    439                         code.addAll(childResults.get(1),0);
    440                 }
    441                 code.dedentedLine("};");
    442 
    443                 code.addLine(" "); // a blank line
    444                
    445                 return code;
    446                
    447         }
    448        
    449         public CodeStore visitLeave(StructTypeBodyNode node, List<CodeStore> childResults) {
     427                resultVar.append(childResults.get(0).getResultVarName());
     428                code.setResultVarName(resultVar.toString());   
     429               
     430                return code;
     431        }       
     432       
     433        public CodeStore visitLeave(StructDeclBodyNode node, List<CodeStore> childResults) {
    450434                CodeStore code = new CodeStore();
    451435               
     
    455439                for (CodeStore child: childResults.subList(1, childResults.size())) {
    456440                        code.addAll(child,0);
    457                 }       
    458                
     441                }                       
    459442                return code;
    460443        }
     
    467450                return code;
    468451        }
    469 
    470         // TODO - remove non-PabloB type, move type to PabloS2PabloB transformation
    471         public CodeStore visitLeave(StreamTypeNode node, List<CodeStore> childResults) {
    472                 CodeStore code = new CodeStore();
    473                 code.setResultVarName(Accessors.streamLexeme(node));
    474                 return code;
    475         }               
    476452                 
    477453        public CodeStore visitLeave(BitBlockTypeNode node, List<CodeStore> childResults) {
     
    498474                return code;
    499475        }               
    500        
     476
     477        public CodeStore visitLeave(BoolTypeNode node, List<CodeStore> childResults) {
     478                CodeStore code = new CodeStore();
     479                code.setResultVarName(Accessors.boolLexeme(node));
     480                return code;
     481        }               
     482               
    501483        public CodeStore visitLeave(CompoundIdentifierNode node, List<CodeStore> childResults) {
    502484                CodeStore code = new CodeStore();
Note: See TracChangeset for help on using the changeset viewer.