Skip to content

Commit 76ed1aa

Browse files
committed
Identified relevant parser AST classes
1 parent f0b8d85 commit 76ed1aa

1 file changed

Lines changed: 43 additions & 7 deletions

File tree

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
package util.parse
22

3-
3+
import incremental._
44
import com.github.javaparser.JavaParser
55
import better.files._
6-
import com.github.javaparser.ast.{Node => ParseNode}
6+
import com.github.javaparser.ast.`type`.ClassOrInterfaceType
7+
import com.github.javaparser.ast.body.{ClassOrInterfaceDeclaration, ConstructorDeclaration, FieldDeclaration, MethodDeclaration}
8+
import com.github.javaparser.ast.expr._
9+
import com.github.javaparser.ast.{Node => ParseNode, _}
10+
import com.github.javaparser.ast.stmt._
11+
12+
import scala.collection.immutable.Queue
713

814

915
/**
@@ -15,11 +21,41 @@ object Parse extends App {
1521
}
1622

1723

18-
class MyVisitor extends NodeVisitor with FoldVisitor[Int] with PrintlnVisitor {
19-
def init(): Int = 0
24+
class MyVisitor extends NodeVisitor with FoldVisitor[Queue[Node.Node]] with PrintlnVisitor {
25+
type Q = Queue[Node.Node]
26+
27+
def init(): Q = Queue()
2028

21-
def fold(n: ParseNode, s: Int): Int = {
22-
println(s)
23-
s + 1
29+
def fold(n: ParseNode, q: Q): Q = n match {
30+
case im: ImportDeclaration =>
31+
q
32+
case c: ClassOrInterfaceDeclaration =>
33+
q
34+
case ctor: ConstructorDeclaration =>
35+
q
36+
case supr: ExplicitConstructorInvocationStmt =>
37+
q
38+
case fd: FieldDeclaration =>
39+
q
40+
case md: MethodDeclaration =>
41+
q
42+
case nu: ObjectCreationExpr =>
43+
q
44+
case ret: ReturnStmt =>
45+
q
46+
case point: FieldAccessExpr =>
47+
q
48+
case asgn: AssignExpr =>
49+
q
50+
case call: MethodCallExpr =>
51+
q
52+
case lam: LambdaExpr =>
53+
q
54+
case cast: CastExpr =>
55+
q
56+
case self: ThisExpr =>
57+
q
58+
case _ =>
59+
q
2460
}
2561
}

0 commit comments

Comments
 (0)