diff options
Diffstat (limited to 'src/monkey/seaspider/org/gnunet/seaspider/parser/GNUnetDepthFirstVisitor.java')
-rw-r--r-- | src/monkey/seaspider/org/gnunet/seaspider/parser/GNUnetDepthFirstVisitor.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/monkey/seaspider/org/gnunet/seaspider/parser/GNUnetDepthFirstVisitor.java b/src/monkey/seaspider/org/gnunet/seaspider/parser/GNUnetDepthFirstVisitor.java new file mode 100644 index 000000000..17592b8a8 --- /dev/null +++ b/src/monkey/seaspider/org/gnunet/seaspider/parser/GNUnetDepthFirstVisitor.java | |||
@@ -0,0 +1,36 @@ | |||
1 | package org.gnunet.seaspider.parser; | ||
2 | import org.gnunet.seaspider.parser.nodes.AssignmentOperator; | ||
3 | import org.gnunet.seaspider.parser.nodes.CompoundStatement; | ||
4 | import org.gnunet.seaspider.parser.nodes.Expression; | ||
5 | import org.gnunet.seaspider.parser.nodes.NodeToken; | ||
6 | import org.gnunet.seaspider.parser.visitors.DepthFirstVisitor; | ||
7 | |||
8 | public class GNUnetDepthFirstVisitor extends DepthFirstVisitor { | ||
9 | private int current_endline; | ||
10 | private int blockStart; | ||
11 | private int blockEnd; | ||
12 | |||
13 | public void visit(Expression n) { | ||
14 | n.f0.accept(this); | ||
15 | } | ||
16 | public void visit(AssignmentOperator n) { | ||
17 | n.f0.accept(this); | ||
18 | } | ||
19 | |||
20 | /** | ||
21 | * <PRE> | ||
22 | * f0 -> "{" | ||
23 | * f1 -> ( LocalVariableDeclaration() | Statement() )* | ||
24 | * f2 -> "}" | ||
25 | * </PRE> | ||
26 | */ | ||
27 | public void visit(CompoundStatement n) { | ||
28 | int old_ll = current_endline; | ||
29 | current_endline = n.f2.endLine; | ||
30 | System.out.println("Scope starts at line:" + n.f0.endLine + " and ends at line:" + n.f2.endLine); | ||
31 | n.f0.accept(this); | ||
32 | n.f1.accept(this); | ||
33 | n.f2.accept(this); | ||
34 | current_endline = old_ll; | ||
35 | } | ||
36 | } | ||