Test.java: # 0| [CompilationUnit] Test # 1| 1: [Class] Test # 2| 2: [Method] foo # 2| 3: [TypeAccess] void #-----| 4: (Parameters) # 2| 0: [Parameter] s # 2| 0: [TypeAccess] String # 2| 5: [BlockStmt] { ... } # 3| 0: [LocalVariableDeclStmt] var ...; # 3| 0: [TypeAccess] int # 3| 1: [LocalVariableDeclExpr] x # 3| 0: [SwitchExpr] switch (...) # 3| -1: [VarAccess] s # 4| 0: [ConstCase] case ... # 4| -1: [IntegerLiteral] 1 # 4| 0: [StringLiteral] "a" # 4| 1: [StringLiteral] "b" # 5| 1: [ConstCase] case ... # 5| -1: [IntegerLiteral] 2 # 5| 0: [StringLiteral] "c" # 6| 2: [ConstCase] case ... # 6| -1: [IntegerLiteral] 2 # 6| 0: [StringLiteral] "d" # 7| 3: [DefaultCase] default # 7| -1: [IntegerLiteral] 3 # 9| 1: [SwitchStmt] switch (...) # 9| -1: [VarAccess] s # 10| 0: [ConstCase] case ... # 10| -1: [BlockStmt] { ... } # 10| 0: [StringLiteral] "a" # 10| 1: [StringLiteral] "b" # 11| 1: [ConstCase] case ... # 11| -1: [BlockStmt] { ... } # 11| 0: [StringLiteral] "c" # 12| 2: [ConstCase] case ... # 12| -1: [BlockStmt] { ... } # 12| 0: [StringLiteral] "d" # 13| 3: [DefaultCase] default # 13| -1: [BlockStmt] { ... }