source: proto/pablo/src/compiler/backend/visitors/AdvanceNCounterVisitor.java @ 2710

Last change on this file since 2710 was 2710, checked in by ksherdy, 6 years ago

General refactoring.

File size: 711 bytes
Line 
1package compiler.backend.visitors;
2
3import ast.*;
4import compiler.lang.pablo.BuiltinsUtil;
5
6public class AdvanceNCounterVisitor {
7        private ASTNode ASTree;
8       
9        public AdvanceNCounterVisitor(ASTNode ASTree) {
10                this.ASTree = ASTree;
11        }
12       
13        public int count() {
14            AdvNCounterVisitor visitor = new AdvNCounterVisitor();
15                ASTree.accept(visitor);
16                return ((AdvNCounterVisitor)visitor).advNCount();
17        }
18       
19        private class AdvNCounterVisitor extends VoidVisitor.Default {
20                private int advNCount = 0;
21               
22                public int advNCount() {
23                        return this.advNCount;
24                }
25
26                public void visitLeave(FuncCallNode node) {
27                        if(BuiltinsUtil.isCarryN(node)) {
28                            this.advNCount += 1;
29                        }
30                }
31        }
32}
Note: See TracBrowser for help on using the repository browser.