package Ġast miner . common Ċ Ċ import Ġast miner . common . model .* Ċ import Ġjava . io . File Ċ Ċ class ĠDummy Node ( ĊĠĠĠ Ġoverride Ġval Ġtype Label : ĠString , ĊĠĠĠ Ġoverride Ġval Ġchildren : ĠMutable List < Dummy Node > Ġ= Ġmutable ListOf () Ċ ) Ġ: ĠNode ( type Label ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġparent : ĠNode ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTokens Ġmay Ġchange Ġafter Ġnormalization , Ġfor Ġtests Ġwe Ġwant Ġtokens Ġto Ġbe Ġunchanged ĊĠĠĠĠĠĠĠ Ġtechnical Token Ġ= Ġtype Label ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Children OfType ( type Label : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchildren . remove If Ġ{ Ġit . type Label Ġ== Ġtype Label Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Parse Result () Ġ= ĠDummy Parsing Result ( File (". "), Ġthis ) ĊĊĠĠĠ Ġfun Ġlabeled With ( label : ĠString ) Ġ= ĠL abeled Result ( this , Ġlabel , Ġ"") Ċ } Ċ Ċ class ĠDummy Parsing Result ( file : ĠFile , Ġoverride Ġval Ġroot : ĠDummy Node ) Ġ: ĠParsing Result < Dummy Node >( file ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġsplit ter : ĠTree Function Splitter < Dummy Node > Ġ= Ġobject Ġ: ĠTree Function Splitter < Dummy Node > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsplit Into Functions ( root : ĠDummy Node , ĠfilePath : ĠString ) Ġ= ĠlistOf < Function Info < Dummy Node >>() ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġsmall Ġtree . Ċ Ġ* ĠDiagram : Ċ Ġ* ĠĠĠĠĠĠĠĠĠ 1 Ċ Ġ* ĠĠĠĠĠĠ Ġ/ ĠĠ Ġ\ Ċ Ġ* ĠĠĠĠ Ġ/ ĠĠĠĠĠ Ġ\ Ċ Ġ* ĠĠĠĠ 2 ĠĠĠĠĠĠĠĠ 3 Ċ Ġ* Ġ Ġ/ Ġ| Ġ\ ĠĠĠĠ Ġ/ Ġ\ Ċ Ġ* Ġ 4 ĠĠ 5 ĠĠ 6 ĠĠĠ 7 ĠĠĠ 8 Ċ Ġ* Ċ Ġ*/ Ċ fun Ġcreate Dummy Tree (): ĠDummy Node Ġ{ ĊĠĠĠ Ġval Ġnode 4 Ġ= ĠDummy Node (" 4 ", Ġmutable ListOf ()) ĊĠĠĠ Ġval Ġnode 5 Ġ= ĠDummy Node (" 5 ", Ġmutable ListOf ()) ĊĠĠĠ Ġval Ġnode 6 Ġ= ĠDummy Node (" 6 ", Ġmutable ListOf ()) ĊĠĠĠ Ġval Ġnode 7 Ġ= ĠDummy Node (" 7 ", Ġmutable ListOf ()) ĊĠĠĠ Ġval Ġnode 8 Ġ= ĠDummy Node (" 8 ", Ġmutable ListOf ()) ĊĊĠĠĠ Ġval Ġnode 2 Ġ= ĠDummy Node (" 2 ", Ġmutable ListOf ( node 4 , Ġnode 5 , Ġnode 6 )) ĊĠĠĠ Ġval Ġnode 3 Ġ= ĠDummy Node (" 3 ", Ġmutable ListOf ( node 7 , Ġnode 8 )) ĊĊĠĠĠ Ġreturn ĠDummy Node (" 1 ", Ġmutable ListOf ( node 2 , Ġnode 3 )) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġsmall Ġtree . Ċ Ġ* ĠDiagram : Ċ Ġ* ĠĠĠĠĠĠ 1 Ċ Ġ* ĠĠĠ Ġ/ Ġ Ġ\ Ċ Ġ* ĠĠĠ 2 ĠĠĠĠ 3 Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ\ Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠ 4 Ċ Ġ*/ Ċ fun Ġcreate Small Tree (): ĠDummy Node Ġ{ ĊĠĠĠ Ġval Ġnode 4 Ġ= ĠDummy Node (" 4 ", Ġmutable ListOf ()) ĊĠĠĠ Ġval Ġnode 3 Ġ= ĠDummy Node (" 3 ", Ġmutable ListOf ( node 4 )) ĊĠĠĠ Ġval Ġnode 2 Ġ= ĠDummy Node (" 2 ", Ġmutable ListOf ()) ĊĠĠĠ Ġval Ġnode 1 Ġ= ĠDummy Node (" 1 ", Ġmutable ListOf ( node 2 , Ġnode 3 )) ĊĊĠĠĠ Ġreturn Ġnode 1 Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġb amboo Ċ Ġ* ĠDiagram Ġfor Ġ[ size ] Ġ 3 : Ċ Ġ* Ġ 1 Ċ Ġ* Ġ Ġ\ Ċ Ġ* ĠĠĠ 2 Ċ Ġ* ĠĠĠ Ġ\ Ċ Ġ* ĠĠĠĠĠ 3 Ċ Ġ*/ Ċ fun Ġcreate B amboo ( size : ĠInt ): ĠDummy Node Ġ{ ĊĠĠĠ Ġvar Ġroot Ġ= ĠDummy Node ( size . toString (), Ġmutable ListOf ()) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠ Ġroot Ġ= ĠDummy Node (( size Ġ- Ġi ). toString (), Ġmutable ListOf ( root )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġroot Ċ } Ċ