Changeset 3775


Ignore:
Timestamp:
Apr 1, 2014, 3:54:13 AM (4 years ago)
Author:
ksherdy
Message:

Fixed bug in S2K2B2K transformer.

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

Legend:

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

    r3774 r3775  
    220220    // Function definitions
    221221    //
     222   
    222223    public static FuncDefNode makeFuncDefNode(Locator locator, String identifier) {
    223224       
  • proto/s2k/trunk/framework/src/toolchain/s2k/ast/Accessors.java

    r3774 r3775  
    3131        }
    3232
    33         public static List<FuncDefNode> funcDefs(ProgramNode node) {
     33        public static List<FilterDefNode> funcDefs(ProgramNode node) {
    3434               
    3535                assert node instanceof ProgramNode;
    36                 List<FuncDefNode> funcDefs = new ArrayList<FuncDefNode>();
     36                List<FilterDefNode> funcDefs = new ArrayList<FilterDefNode>();
    3737               
    3838                for(ASTNode child: node.getChildren()) {
    39                         if (child instanceof FuncDefNode) {
    40                                 funcDefs.add((FuncDefNode)child);
     39                        if (child instanceof FilterDefNode) {
     40                                funcDefs.add((FilterDefNode)child);
    4141                        }
    4242                }
     
    5050            List<String> names = new ArrayList<String>();
    5151           
    52             for(FuncDefNode funcDef : funcDefs(node)) {
     52            for(FilterDefNode funcDef : funcDefs(node)) {
    5353                names.add(name(funcDef));
    5454            }
     
    5656        }
    5757       
    58     public static FuncDefNode funcDefForName(ASTNode node, String name) {
    59 
    60         if(node instanceof FuncDefNode) {
     58    public static FilterDefNode funcDefForName(ASTNode node, String name) {
     59
     60        if(node instanceof FilterDefNode) {
    6161            if(name(node).equals(name)) {
    62                 return (FuncDefNode)node;
     62                return (FilterDefNode)node;
    6363            }
    6464        }
    6565
    66         FuncDefNode result = null;
     66        FilterDefNode result = null;
    6767
    6868        for(ASTNode child : node.getChildren()) {
     
    221221//      }
    222222       
    223         public static ASTNode nameNode(FuncDefNode node) {
     223        public static ASTNode nameNode(FilterDefNode node) {
    224224            return node.child(0);
    225225        }
     
    227227//              return typeNode(node).getType();
    228228//      }
    229         public static IdentifierNode funcIdentifier(FuncDefNode node) {
     229        public static IdentifierNode funcIdentifier(FilterDefNode node) {
    230230                return (IdentifierNode) node.child(0);
    231231        }
    232         public static String funcName(FuncDefNode node) {
     232        public static String funcName(FilterDefNode node) {
    233233                return lexeme(funcIdentifier(node));
    234234        }
    235         public static boolean hasParameters(FuncDefNode node) {
    236                 return (node.child(1) instanceof ParameterListNode) && (node.child(1).nChildren()) > 1;
    237         }
    238         public static int numParameters(FuncDefNode node) {
     235        public static boolean hasParameters(FilterDefNode node) {
     236                return (node.child(1) instanceof FilterParameterListNode) && (node.child(1).nChildren()) > 1;
     237        }
     238        public static int numParameters(FilterDefNode node) {
    239239            if(hasParameters(node)) {
    240240                return parameterListNode(node).nChildren();
     
    244244            }
    245245        }
    246         public static ParameterListNode parameterListNode(FuncDefNode node) {   
    247                 return (ParameterListNode) node.child(1);
    248         }
    249         public static FilterParameterNode parameter(FuncDefNode node, int i) {
     246        public static FilterParameterListNode parameterListNode(FilterDefNode node) {   
     247                return (FilterParameterListNode) node.child(1);
     248        }
     249        public static FilterParameterNode parameter(FilterDefNode node, int i) {
    250250                ASTNode list = parameterListNode(node);
    251251                return (FilterParameterNode)list.child(i);
    252252        }
    253         public static BlockStmtNode body(FuncDefNode node) {
     253        public static BlockStmtNode body(FilterDefNode node) {
    254254                return blockStmtNode(node);
    255255        }
    256         public static BlockStmtNode blockStmtNode(FuncDefNode node) {
     256        public static BlockStmtNode blockStmtNode(FilterDefNode node) {
    257257                ASTNode child = node.child(3);
    258258                assert child instanceof BlockStmtNode;
     
    442442            } else if(node instanceof FuncCallNode) {
    443443                return funcCallName(nameNode((FuncCallNode)node)); // special case
    444             } else if(node instanceof FuncDefNode) {
    445                 return name(nameNode((FuncDefNode)node));
     444            } else if(node instanceof FilterDefNode) {
     445                return name(nameNode((FilterDefNode)node));
    446446            } else if(node instanceof StructDeclNode) {
    447447                return name(nameNode((StructDeclNode)node));
  • proto/s2k/trunk/framework/src/toolchain/s2k/ast/Generators.java

    r3774 r3775  
    2222        //     but the PLN child has no children if there are no args.  This would eliminate the conditional
    2323        //     in this method, and probably make things easier in other methods, too.
    24         public static void appendParameter(FuncDefNode funcDefNode, FilterParameterNode parameterNode) {
    25                 ParameterListNode parameterListNode = null;
     24        public static void appendParameter(FilterDefNode funcDefNode, FilterParameterNode parameterNode) {
     25                FilterParameterListNode parameterListNode = null;
    2626                parameterListNode = Accessors.parameterListNode(funcDefNode);
    2727                parameterListNode.appendChild(parameterNode);
  • proto/s2k/trunk/framework/src/toolchain/s2k/semanticAnalyzer/SemanticAnalyzer.java

    r3774 r3775  
    407407                private boolean isFunctionBeingDefined(IdentifierNode node) {
    408408                        ASTNode parent = node.getParent();
    409                         return ((parent instanceof FuncDefNode) && node == Accessors.funcIdentifier((FuncDefNode) parent));
     409                        return ((parent instanceof FilterDefNode) && node == Accessors.funcIdentifier((FilterDefNode) parent));
    410410                }
    411411                private boolean isVariableBeingDefined(IdentifierNode node) {
  • proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/S2K2B2K/S2K2B2KTransformer.java

    r3774 r3775  
    5454        ASTNode b2kFinalBlockASTree                                     = s2kFinalBlockASTree.accept(finalBlockS2BTranslator);
    5555       
    56         List<s2k.ast.FuncDefNode> funcDefs = toolchain.s2k.ast.Accessors.funcDefs((s2k.ast.ProgramNode) s2kASTree);
    57        
    58         for(s2k.ast.FuncDefNode funcDef : funcDefs) {
     56        List<s2k.ast.FilterDefNode> funcDefs = toolchain.s2k.ast.Accessors.funcDefs((s2k.ast.ProgramNode) s2kASTree);
     57       
     58        for(s2k.ast.FilterDefNode funcDef : funcDefs) {
    5959           
    6060            String kernelName           = toolchain.s2k.ast.Accessors.name(funcDef);
     
    222222        // FilterDef
    223223        //
    224         public ASTNode visitLeave(s2k.ast.ParameterListNode snode, List<ASTNode> childResults) {
     224        public ASTNode visitLeave(s2k.ast.FilterParameterListNode snode, List<ASTNode> childResults) {
    225225                ASTNode replacement = Generators.makeParameterListNode(Generators.makeToken(snode.getToken()));
    226226                appendChildResults(replacement, childResults);
     
    240240                appendChildResults(replacement, childResults);
    241241                return replacement;
    242         }       
    243        
    244         public ASTNode visitLeave(s2k.ast.FuncDefNode snode, List<ASTNode> childResults) {
    245            
    246             ASTNode replacement = defaultVisitLeave(snode, childResults);
    247 
     242        }
     243       
     244        public ASTNode visitLeave(s2k.ast.FilterDefNode snode, List<ASTNode> childResults) {
     245           
     246            ASTNode replacement = new FuncDefNode(Generators.makeToken(snode.getToken()));
     247            appendChildResults(replacement, childResults);
     248           
    248249            int carry1Count = propInfoSetMap.get(snode).carry1Count;
    249250
  • proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/S2K2S2K/CombineScopes.java

    r3774 r3775  
    4848        private Labeller labeller;
    4949       
    50         public void visitEnter(FuncDefNode node) {
     50        public void visitEnter(FilterDefNode node) {
    5151            node.setSymbolTable(new SymbolTable());
    5252            labeller = new Labeller("_v");
     
    119119        public void visitLeave(IdentifierNode node) {
    120120            // KH: logic, if hasMangledName, substitute mangled name for normal name
    121             if(node.getParent() instanceof FuncDefNode) {
     121            if(node.getParent() instanceof FilterDefNode) {
    122122                // no action
    123123            } else if (node.getParent() instanceof FilterParameterNode) {
     
    176176       
    177177       
    178         public void visitEnter(FuncDefNode node) {
     178        public void visitEnter(FilterDefNode node) {
    179179            varDecls = new ArrayList<ASTNode>();
    180180            varDeclsForDeletion = new LinkedHashMap<ASTNode, List<ASTNode>>();   
    181181        }
    182182               
    183         public void visitLeave(FuncDefNode node) {
     183        public void visitLeave(FilterDefNode node) {
    184184
    185185            Collections.reverse(varDecls);
  • proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/S2K2S2K/StreamFunctionDefs.java

    r3774 r3775  
    1010import s2k.ast.*;
    1111
    12 public class StreamFunctionDefs extends ArrayList<FuncDefNode> {
     12public class StreamFunctionDefs extends ArrayList<FilterDefNode> {
    1313       
    1414        private static final long serialVersionUID = 8639586378925373084L;
    1515
    16         public static ArrayList<FuncDefNode> forTree(ASTNode ASTTree) {
     16        public static ArrayList<FilterDefNode> forTree(ASTNode ASTTree) {
    1717            Visitor visitor = new Visitor();
    1818                ASTTree.accept(visitor);
     
    2222        private static class Visitor extends VoidVisitor.Default {
    2323               
    24                 private ArrayList<FuncDefNode> list = new ArrayList<FuncDefNode>();
     24                private ArrayList<FilterDefNode> list = new ArrayList<FilterDefNode>();
    2525                               
    26                 public void visitLeave(FuncDefNode node) {
     26                public void visitLeave(FilterDefNode node) {
    2727                        list.add(node);                                 
    2828                }               
  • proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/S2K2S2K/TempifyCarrySetBuiltinCalls.java

    r3774 r3775  
    9595        // visitor callbacks
    9696           
    97             public void visitEnter(FuncDefNode node) {
     97            public void visitEnter(FilterDefNode node) {
    9898                labeller.reset();
    9999               
  • proto/s2k/trunk/framework/src/toolchain/s2k/transformer/visitors/infoSet/PropertyInfoSetMapBuilder.java

    r3774 r3775  
    4141        }
    4242       
    43         public void visitEnter(FuncDefNode node) {
     43        public void visitEnter(FilterDefNode node) {
    4444            carry1Position = 0;
    4545            carryNPosition = 0;
    4646        }
    4747       
    48         public void visitLeave(FuncDefNode node) {
     48        public void visitLeave(FilterDefNode node) {
    4949            PropertyInfoSet propInfoSet = new PropertyInfoSet(carry1Position, carryNPosition, Carry1Count.forTree(node), CarryNCount.forTree(node), Carry1InitialValues.forTree(node)); // add LA, LB
    5050            propInfoSetMap.put(node, propInfoSet);
Note: See TracChangeset for help on using the changeset viewer.