source: proto/pablo/src/compiler/semanticAnalyzer/visitors/CarryCounterVisitor.java @ 2672

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

Added parser/semantic analyzer packages.

File size: 952 bytes
Line 
1package compiler.semanticAnalyzer.visitors;
2
3import ast.*;
4import compiler.lang.pablo.BuiltinsUtil;
5
6public class CarryCounterVisitor {
7       
8    private ASTNode ASTree;
9   
10    public CarryCounterVisitor(ASTNode ASTree) {
11        this.ASTree = ASTree;
12    }
13   
14    public int count() {
15        CarryCounter visitor = new CarryCounter();
16        this.ASTree.accept(visitor);
17        return ((CarryCounter)visitor).carryCount();
18    }   
19       
20        private class CarryCounter extends VoidVisitor.Default {
21                private int carryCount = 0;
22
23                public int carryCount() {
24                        return carryCount;
25                }
26               
27                public void visitLeave(FuncCallNode node) {
28                        if(BuiltinsUtil.isCarryOne(node)) {
29                            carryCount += 1;
30                        }                   
31                }
32               
33//              public void visitLeave(BinaryOperatorNode node) {
34//                      Token token = node.getToken();
35//                      if(token.isLextant(Lextant.MINUS, Lextant.PLUS)) {
36//                              this.carryCount++;
37//                      }
38//              }
39        }
40}
Note: See TracBrowser for help on using the repository browser.