source: proto/pablo/src/compiler/visitors/AdvNCounter.java @ 2399

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

Refactored visitors and helpers. Seperated Pablo AST accessors from built in function definitions and methods.

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