/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . nj 2 k . tree Ċ Ċ import Ġorg . jetbrains . kotlin . nj 2 k . tree . visitor s . JK Visitor Ċ Ċ abstract Ġclass ĠJ K Statement Ġ: ĠJ K Tree Element (), ĠPsi Owner Ġby ĠPsi Owner Impl () Ċ Ċ class ĠJ KE mpty Statement Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Empty Statement ( this ) Ċ } Ċ Ċ abstract Ġclass ĠJ K Loop Statement Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġabstract Ġvar Ġbody : ĠJ K Statement Ċ } Ċ Ċ class ĠJ K While Statement ( condition : ĠJ K Expression , Ġbody : ĠJ K Statement ) Ġ: ĠJ K Loop Statement () Ġ{ ĊĠĠĠ Ġvar Ġcondition Ġby Ġchild ( condition ) ĊĠĠĠ Ġoverride Ġvar Ġbody Ġby Ġchild ( body ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit While Statement ( this ) Ċ } Ċ Ċ class ĠJ K Do While Statement ( body : ĠJ K Statement , Ġcondition : ĠJ K Expression ) Ġ: ĠJ K Loop Statement () Ġ{ ĊĠĠĠ Ġvar Ġcondition Ġby Ġchild ( condition ) ĊĠĠĠ Ġoverride Ġvar Ġbody Ġby Ġchild ( body ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Do While Statement ( this ) Ċ } Ċ Ċ class ĠJ K For In Statement ( declaration : ĠJ K Declaration , Ġiteration Expression : ĠJ K Expression , Ġbody : ĠJ K Statement ) Ġ: ĠJ K Loop Statement () Ġ{ ĊĠĠĠ Ġvar Ġdeclaration : ĠJ K Declaration Ġby Ġchild ( declaration ) ĊĠĠĠ Ġvar Ġiteration Expression : ĠJ K Expression Ġby Ġchild ( iteration Expression ) ĊĠĠĠ Ġoverride Ġvar Ġbody Ġby Ġchild ( body ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit For In Statement ( this ) Ċ } Ċ Ċ class ĠJ K If Else Statement ( condition : ĠJ K Expression , Ġthen Branch : ĠJ K Statement , Ġelse Branch : ĠJ K Statement ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġcondition Ġby Ġchild ( condition ) ĊĠĠĠ Ġvar Ġthen Branch Ġby Ġchild ( then Branch ) ĊĠĠĠ Ġvar Ġelse Branch Ġby Ġchild ( else Branch ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit If Else Statement ( this ) Ċ } Ċ Ċ class ĠJ K Break Statement ( label : ĠJ K Label ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġval Ġlabel : ĠJ K Label Ġby Ġchild ( label ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Break Statement ( this ) Ċ } Ċ Ċ class ĠJ K Continue Statement ( label : ĠJ K Label ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġlabel : ĠJ K Label Ġby Ġchild ( label ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Continue Statement ( this ) Ċ } Ċ Ċ class ĠJ K Block Statement ( block : ĠJ K Block ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġblock Ġby Ġchild ( block ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Block Statement ( this ) Ċ } Ċ Ċ class ĠJ K Block Statement Without Br ackets ( statements : ĠList < JK Statement >) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġstatements Ġby Ġchildren ( statements ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Block Statement Without Br ackets ( this ) Ċ } Ċ Ċ class ĠJ K Expression Statement ( expression : ĠJ K Expression ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġexpression : ĠJ K Expression Ġby Ġchild ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Expression Statement ( this ) Ċ } Ċ Ċ class ĠJ K Declaration Statement ( declared Statements : ĠList < JK Declaration >) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġval Ġdeclared Statements Ġby Ġchildren ( declared Statements ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Declaration Statement ( this ) Ċ } Ċ Ċ class ĠJ KK t When Statement ( ĊĠĠĠ Ġexpression : ĠJ K Expression , ĊĠĠĠ Ġcases : ĠList < JK Kt When Case > Ċ ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġexpression : ĠJ K Expression Ġby Ġchild ( expression ) ĊĠĠĠ Ġvar Ġcases : ĠList < JK Kt When Case > Ġby Ġchildren ( cases ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Kt When Statement ( this ) Ċ } Ċ Ċ class ĠJ KK t Converted From For Loop Synt hetic While Statement ( ĊĠĠĠ Ġvariable Declaration : ĠJ K Statement , ĊĠĠĠ Ġcondition : ĠJ K Expression , ĊĠĠĠ Ġbody : ĠJ K Statement , ĊĠĠĠ Ġfor Loop Up dat ers : ĠList < JK Statement > Ċ ) Ġ: ĠJ K Loop Statement () Ġ{ ĊĠĠĠ Ġvar Ġvariable Declaration : ĠJ K Statement Ġby Ġchild ( variable Declaration ) ĊĠĠĠ Ġvar Ġcondition Ġby Ġchild ( condition ) ĊĠĠĠ Ġoverride Ġvar Ġbody Ġby Ġchild ( body ) ĊĠĠĠ Ġ// ĠFor Ġthe Ġuse Ġin ĠContinue Statement Converter ĊĠĠĠ Ġvar Ġfor Loop Up dat ers : ĠList < JK Statement > Ġby Ġchildren ( for Loop Up dat ers ) ĊĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Kt Converted From For Loop Synt hetic While Statement ( this ) Ċ } Ċ Ċ class ĠJ KK t Assignment Statement ( ĊĠĠĠ Ġfield : ĠJ K Expression , ĊĠĠĠ Ġexpression : ĠJ K Expression , ĊĠĠĠ Ġvar Ġtoken : ĠJ K Operator Token Ċ ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġfield : ĠJ K Expression Ġby Ġchild ( field ) ĊĠĠĠ Ġvar Ġexpression Ġby Ġchild ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Kt Assignment Statement ( this ) Ċ } Ċ Ċ class ĠJ K Return Statement ( ĊĠĠĠ Ġexpression : ĠJ K Expression , ĊĠĠĠ Ġlabel : ĠJ K Label Ġ= ĠJ K Label Empty () Ċ ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġval Ġexpression Ġby Ġchild ( expression ) ĊĠĠĠ Ġvar Ġlabel Ġby Ġchild ( label ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Return Statement ( this ) Ċ } Ċ Ċ class ĠJ K Java Switch Statement ( ĊĠĠĠ Ġexpression : ĠJ K Expression , ĊĠĠĠ Ġcases : ĠList < JK Java Switch Case > Ċ ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġexpression : ĠJ K Expression Ġby Ġchild ( expression ) ĊĠĠĠ Ġvar Ġcases : ĠList < JK Java Switch Case > Ġby Ġchildren ( cases ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java Switch Statement ( this ) Ċ } Ċ Ċ class ĠJ K Java Throw Statement ( exception : ĠJ K Expression ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġexception : ĠJ K Expression Ġby Ġchild ( exception ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java Throw Statement ( this ) Ċ } Ċ Ċ class ĠJ K Java Try Statement ( ĊĠĠĠ Ġresource Declarations : ĠList < JK Declaration >, ĊĠĠĠ Ġtry Block : ĠJ K Block , ĊĠĠĠ Ġfinally Block : ĠJ K Block , ĊĠĠĠ Ġcatch Sections : ĠList < JK Java Try Catch Section > Ċ ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġvar Ġresource Declarations : ĠList < JK Declaration > Ġby Ġchildren ( resource Declarations ) ĊĠĠĠ Ġvar Ġtry Block : ĠJ K Block Ġby Ġchild ( try Block ) ĊĠĠĠ Ġvar Ġfinally Block : ĠJ K Block Ġby Ġchild ( finally Block ) ĊĠĠĠ Ġvar Ġcatch Sections : ĠList < JK Java Try Catch Section > Ġby Ġchildren ( catch Sections ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java Try Statement ( this ) Ċ } Ċ Ċ class ĠJ K Java Synchron ized Statement ( ĊĠĠĠ Ġlock Expression : ĠJ K Expression , ĊĠĠĠ Ġbody : ĠJ K Block Ċ ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġval Ġlock Expression : ĠJ K Expression Ġby Ġchild ( lock Expression ) ĊĠĠĠ Ġval Ġbody : ĠJ K Block Ġby Ġchild ( body ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java Synchron ized Statement ( this ) Ċ } ĊĊ Ċ class ĠJ K Java Assert Statement ( condition : ĠJ K Expression , Ġdescription : ĠJ K Expression ) Ġ: ĠJ K Statement () Ġ{ ĊĠĠĠ Ġval Ġdescription Ġby Ġchild ( description ) ĊĠĠĠ Ġval Ġcondition Ġby Ġchild ( condition ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java Assert Statement ( this ) Ċ } Ċ Ċ class ĠJ K Java For Loop Statement ( ĊĠĠĠ Ġinitializer : ĠJ K Statement , ĊĠĠĠ Ġcondition : ĠJ K Expression , ĊĠĠĠ Ġup dat ers : ĠList < JK Statement >, ĊĠĠĠ Ġbody : ĠJ K Statement Ċ ) Ġ: ĠJ K Loop Statement () Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġbody Ġby Ġchild ( body ) ĊĠĠĠ Ġvar Ġup dat ers Ġby Ġchildren ( up dat ers ) ĊĠĠĠ Ġvar Ġcondition Ġby Ġchild ( condition ) ĊĠĠĠ Ġvar Ġinitializer Ġby Ġchild ( initializer ) ĊĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java For Loop Statement ( this ) Ċ } Ċ Ċ class ĠJ K Java Annotation Method ( ĊĠĠĠ ĠreturnType : ĠJ K Type Element , ĊĠĠĠ Ġname : ĠJ K Name Identifier , ĊĠĠĠ ĠdefaultValue : ĠJ K Annotation Member Value , ĊĠĠĠ Ġother Modifier Elements : ĠList < JK Other Modifier Element >, ĊĠĠĠ Ġvisibility Element : ĠJ K Visibility Modifier Element , ĊĠĠĠ Ġmod ality Element : ĠJ K Modal ity Modifier Element Ċ ) Ġ: ĠJ K Method (), ĠJ K Annotation List Owner , ĠJ K Type Parameter List Owner Ġ{ ĊĠĠĠ Ġoverride Ġvar ĠreturnType : ĠJ K Type Element Ġby Ġchild ( returnType ) ĊĠĠĠ Ġoverride Ġvar Ġname : ĠJ K Name Identifier Ġby Ġchild ( name ) ĊĠĠĠ Ġoverride Ġvar Ġparameters : ĠList < JK Parameter > Ġby Ġchildren () ĊĠĠĠ Ġvar ĠdefaultValue : ĠJ K Annotation Member Value Ġby Ġchild ( defaultValue ) ĊĠĠĠ Ġoverride Ġvar Ġblock : ĠJ K Block Ġby Ġchild ( JK Body Stub ) ĊĠĠĠ Ġoverride Ġvar Ġtype Parameter List : ĠJ K Type Parameter List Ġby Ġchild ( JK Type Parameter List ()) ĊĠĠĠ Ġoverride Ġvar Ġannotation List : ĠJ K Annotation List Ġby Ġchild ( JK Annotation List ()) ĊĠĠĠ Ġoverride Ġvar Ġother Modifier Elements Ġby Ġchildren ( other Modifier Elements ) ĊĠĠĠ Ġoverride Ġvar Ġvisibility Element Ġby Ġchild ( visibility Element ) ĊĠĠĠ Ġoverride Ġvar Ġmod ality Element Ġby Ġchild ( modal ity Element ) ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠJ K Visitor ) Ġ= Ġvisitor . visit Java Annotation Method ( this ) Ċ } ĊĊĊ