Changeset 3763


Ignore:
Timestamp:
Mar 29, 2014, 12:34:32 AM (3 years ago)
Author:
ksherdy
Message:

Removed void return type on s2k stream filters / b2k kernel functions.

Location:
proto/s2k/trunk/framework/src/toolchain
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • proto/s2k/trunk/framework/src/toolchain/b2k/ast/Accessors.java

    r3761 r3763  
    9696        ////////////////////////////////////////////////////////////////////////////
    9797        public static IdentifierNode funcIdentifier(FuncDefNode node) {
    98                 return (IdentifierNode) node.child(1);
     98                return (IdentifierNode) node.child(0);
    9999        }
    100100       
    101101        public static ASTNode nameNode(FuncDefNode node) {
    102             return node.child(1);
     102            return node.child(0);
    103103        }
    104104        public static boolean hasParameters(FuncDefNode node) {
    105             return (node.nChildren()) > 2 && (node.child(2) instanceof ParameterListNode);
     105            return (node.nChildren()) > 1 && (node.child(1) instanceof ParameterListNode);
    106106        }
    107107        public static ParameterListNode parameterListNode(FuncDefNode node) {   
    108             return (ParameterListNode) node.child(2);
     108            return (ParameterListNode) node.child(1);
    109109        }
    110110        public static BlockStmtNode body(FuncDefNode node) {
     
    115115               
    116116                if(Accessors.hasParameters(node)) {
    117                         blockStmtNodeIndex = 3;
     117                        blockStmtNodeIndex = 2;
    118118                } else {
    119                         blockStmtNodeIndex = 2;
     119                        blockStmtNodeIndex = 1;
    120120                }
    121121               
  • proto/s2k/trunk/framework/src/toolchain/b2k/ast/Generators.java

    r3761 r3763  
    220220    // Function definitions
    221221    //
    222     public static FuncDefNode makeFuncDefNode(Locator locator, ASTNode returnType, String identifier) {
     222    public static FuncDefNode makeFuncDefNode(Locator locator, String identifier) {
    223223       
    224224        LextantToken token = Generators.makeLextantToken(locator, Lextant.FUNCTION);
     
    227227        BlockStmtNode blockStmtNode = Generators.makeBlockStmtNode(locator);
    228228       
    229         funcDef.appendChild(returnType);
    230229        funcDef.appendChild(identifierNode);
    231230        funcDef.appendChild(blockStmtNode);
  • proto/s2k/trunk/framework/src/toolchain/b2k/codeGenerator/visitors/Unparser.java

    r3761 r3763  
    181181                CodeStore code = new CodeStore();
    182182               
    183                 String returnType = childResults.get(0).getResultVarName();     
    184                 String funcName = childResults.get(1).getResultVarName();
     183                // String returnType = childResults.get(0).getResultVarName();   
     184                String funcName = childResults.get(0).getResultVarName();
    185185                String parameters = new String();
    186186                               
    187187                CodeStore blockStmtCodeStore = null;
    188188                if(Accessors.hasParameters(node)) {
    189                         parameters = childResults.get(2).getResultVarName();
    190                         blockStmtCodeStore = childResults.get(3);
     189                        parameters = childResults.get(1).getResultVarName();
     190                        blockStmtCodeStore = childResults.get(2);
    191191                } else {
    192                         blockStmtCodeStore = childResults.get(2);
    193                 }
    194                
    195                 code.addFormattedLine("%s %s(%s)", returnType, funcName, parameters);
     192                        blockStmtCodeStore = childResults.get(1);
     193                }
     194               
     195                code.addFormattedLine("void %s(%s)", funcName, parameters);
    196196                code.addLine("{");
    197197                code.addAll(blockStmtCodeStore, 1);
  • proto/s2k/trunk/framework/src/toolchain/s2k/ast/Accessors.java

    r3706 r3763  
    217217        ////////////////////////////////////////////////////////////////////////////
    218218       
    219         public static ASTNode typeNode(FuncDefNode node) {
    220                 return node.child(0);
    221         }
     219//      public static ASTNode typeNode(FuncDefNode node) {
     220//              return node.child(0);
     221//      }
     222       
    222223        public static ASTNode nameNode(FuncDefNode node) {
    223             return node.child(1);
    224         }
    225         public static Type type(FuncDefNode node) {
    226                 return typeNode(node).getType();
    227         }
     224            return node.child(0);
     225        }
     226//      public static Type type(FuncDefNode node) {
     227//              return typeNode(node).getType();
     228//      }
    228229        public static IdentifierNode funcIdentifier(FuncDefNode node) {
    229                 return (IdentifierNode) node.child(1);
     230                return (IdentifierNode) node.child(0);
    230231        }
    231232        public static String funcName(FuncDefNode node) {
     
    233234        }
    234235        public static boolean hasParameters(FuncDefNode node) {
    235                 return (node.nChildren()) > 2 && (node.child(2) instanceof ParameterListNode);
     236                return (node.nChildren()) > 1 && (node.child(1) instanceof ParameterListNode);
    236237        }
    237238        public static int numParameters(FuncDefNode node) {
     
    244245        }
    245246        public static ParameterListNode parameterListNode(FuncDefNode node) {   
    246                 return (ParameterListNode) node.child(2);
     247                return (ParameterListNode) node.child(1);
    247248        }
    248249        public static ParameterNode parameter(FuncDefNode node, int i) {
  • proto/s2k/trunk/framework/src/toolchain/s2k/semanticAnalyzer/SemanticAnalyzer.java

    r3707 r3763  
    8080                        node.setSymbolTable(new SymbolTable());
    8181                }
     82                /*
    8283                @Override
    8384                public void visitLeave(FuncDefNode node) {
     
    8586                        installOnEnclosingSymbolTable(node, binding);
    8687                }
     88               
    8789                private Binding bindingForFunctionDefinition(FuncDefNode node) {
    8890                        Type[] types = typeArrayForSignature(node);
     
    9294                        return Binding.make(Accessors.funcName(node), functionType );
    9395                }
     96               
    9497                private Type[] typeArrayForSignature(FuncDefNode node) {
    9598                        int numTypes = Accessors.numParameters(node) + 1;
     
    107110                        return types;
    108111                }
    109 
     112                */
    110113                @Override
    111114                public void visitLeave(ParameterListNode node) {}
     
    215218                        // TODO - TS: check condition node is type STREAM(1)?
    216219                }
    217                 @Override
     220                /*
     221                @Override
     222
    218223                public void visitLeave(ReturnStmtNode node) {
    219224                        FuncDefNode function = findEnclosingFunctionNode(node);
     
    227232                        node.setType(returnType);
    228233                }
    229 
     234                */
     235                /*
    230236                // issues error and returns null instance if no function node found.
    231237                private FuncDefNode findEnclosingFunctionNode(ASTNode node) {
     
    238244                        return null;
    239245                }
    240 
     246                */
    241247                //
    242248                // e x p r e s s i o n s
    243                 //     
     249                //
     250
    244251                @Override
    245252                public void visitLeave(BinaryOperatorNode node) {
    246253                        operatorNodeVisit(node);
    247254                }
     255
    248256                @Override
    249257                public void visitLeave(UnaryOperatorNode node) {
     
    423431                }
    424432                @Override
    425                 public void visitLeave(VoidTypeNode node) {
    426                         node.setType(PrimitiveType.VOID);
    427                 }
    428                 @Override
    429433                public void visitLeave(StreamTypeNode node) {
    430434                        Type type = StreamType.STREAM(node.getFieldWidth());
  • proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/S2K2B2K/S2K2B2KTransformer.java

    r3761 r3763  
    172172    private static FuncDefNode makeClearFuncDefNode(Locator locator, String funcName) {
    173173       
    174         ASTNode returnType = Generators.makeVoidTypeNode(locator);     
    175         FuncDefNode funcDef = Generators.makeFuncDefNode(locator, returnType, funcName);
     174       
     175        FuncDefNode funcDef = Generators.makeFuncDefNode(locator, funcName);
    176176       
    177177        return funcDef;
Note: See TracChangeset for help on using the changeset viewer.