/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 6 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . ir . visitor s Ċ Ċ import Ġorg . jetbrains . kotlin . ir . Ir Element Ċ import Ġorg . jetbrains . kotlin . ir . declarations .* Ċ import Ġorg . jetbrains . kotlin . ir . expressions .* Ċ Ċ interface ĠIr Element Visitor Void Ġ: ĠIr Element Visitor < Unit , ĠNothing ?> Ġ{ ĊĠĠĠ Ġfun Ġvisit Element ( element : ĠIr Element ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Element ( element : ĠIr Element , Ġdata : ĠNothing ?) Ġ= Ġvisit Element ( element ) ĊĊĠĠĠ Ġfun Ġvisit Module Fragment ( declaration : ĠIr Module Fragment ) Ġ= Ġvisit Element ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Module Fragment ( declaration : ĠIr Module Fragment , Ġdata : ĠNothing ?) Ġ= Ġvisit Module Fragment ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Package Fragment ( declaration : ĠIr Package Fragment ) Ġ= Ġvisit Element ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Package Fragment ( declaration : ĠIr Package Fragment , Ġdata : ĠNothing ?) Ġ= Ġvisit Package Fragment ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit External Package Fragment ( declaration : ĠIr External Package Fragment ) Ġ= Ġvisit Package Fragment ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit External Package Fragment ( declaration : ĠIr External Package Fragment , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit External Package Fragment ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit File ( declaration : ĠIr File ) Ġ= Ġvisit Package Fragment ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit File ( declaration : ĠIr File , Ġdata : ĠNothing ?) Ġ= Ġvisit File ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Declaration ( declaration : ĠIr Declaration ) Ġ= Ġvisit Element ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Declaration ( declaration : ĠIr Declaration , Ġdata : ĠNothing ?) Ġ= Ġvisit Declaration ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Class ( declaration : ĠIr Class ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Class ( declaration : ĠIr Class , Ġdata : ĠNothing ?) Ġ= Ġvisit Class ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Type Alias ( declaration : ĠIr Type Alias ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Type Alias ( declaration : ĠIr Type Alias , Ġdata : ĠNothing ?) Ġ= Ġvisit Type Alias ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Function ( declaration : ĠIr Function ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Function ( declaration : ĠIr Function , Ġdata : ĠNothing ?) Ġ= Ġvisit Function ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Simple Function ( declaration : ĠIr Simple Function ) Ġ= Ġvisit Function ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Simple Function ( declaration : ĠIr Simple Function , Ġdata : ĠNothing ?) Ġ= Ġvisit Simple Function ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Constructor ( declaration : ĠIr Constructor ) Ġ= Ġvisit Function ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Constructor ( declaration : ĠIr Constructor , Ġdata : ĠNothing ?) Ġ= Ġvisit Constructor ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Property ( declaration : ĠIr Property ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Property ( declaration : ĠIr Property , Ġdata : ĠNothing ?) Ġ= Ġvisit Property ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Field ( declaration : ĠIr Field ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Field ( declaration : ĠIr Field , Ġdata : ĠNothing ?) Ġ= Ġvisit Field ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Local Deleg ated Property ( declaration : ĠIr Local Deleg ated Property ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Local Deleg ated Property ( declaration : ĠIr Local Deleg ated Property , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit Local Deleg ated Property ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Variable ( declaration : ĠIr Variable ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Variable ( declaration : ĠIr Variable , Ġdata : ĠNothing ?) Ġ= Ġvisit Variable ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Enum Entry ( declaration : ĠIr Enum Entry ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Enum Entry ( declaration : ĠIr Enum Entry , Ġdata : ĠNothing ?) Ġ= Ġvisit Enum Entry ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Anonymous Initializer ( declaration : ĠIr Anonymous Initializer ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Anonymous Initializer ( declaration : ĠIr Anonymous Initializer , Ġdata : ĠNothing ?) Ġ= Ġvisit Anonymous Initializer ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Type Parameter ( declaration : ĠIr Type Parameter ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Type Parameter ( declaration : ĠIr Type Parameter , Ġdata : ĠNothing ?) Ġ= Ġvisit Type Parameter ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Value Parameter ( declaration : ĠIr Value Parameter ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Value Parameter ( declaration : ĠIr Value Parameter , Ġdata : ĠNothing ?) Ġ= Ġvisit Value Parameter ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Body ( body : ĠIr Body ) Ġ= Ġvisit Element ( body ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Body ( body : ĠIr Body , Ġdata : ĠNothing ?) Ġ= Ġvisit Body ( body ) ĊĊĠĠĠ Ġfun Ġvisit Expression Body ( body : ĠIr Expression Body ) Ġ= Ġvisit Body ( body ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Expression Body ( body : ĠIr Expression Body , Ġdata : ĠNothing ?) Ġ= Ġvisit Expression Body ( body ) ĊĊĠĠĠ Ġfun Ġvisit Block Body ( body : ĠIr Block Body ) Ġ= Ġvisit Body ( body ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Block Body ( body : ĠIr Block Body , Ġdata : ĠNothing ?) Ġ= Ġvisit Block Body ( body ) ĊĊĠĠĠ Ġfun Ġvisit Synt hetic Body ( body : ĠIr Synt hetic Body ) Ġ= Ġvisit Body ( body ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Synt hetic Body ( body : ĠIr Synt hetic Body , Ġdata : ĠNothing ?) Ġ= Ġvisit Synt hetic Body ( body ) ĊĊĠĠĠ Ġfun Ġvisit Suspend able Expression ( expression : ĠIr Suspend able Expression ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Suspend able Expression ( expression : ĠIr Suspend able Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Suspend able Expression ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Sus pension Point ( expression : ĠIr Sus pension Point ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Sus pension Point ( expression : ĠIr Sus pension Point , Ġdata : ĠNothing ?) Ġ= Ġvisit Sus pension Point ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Expression ( expression : ĠIr Expression ) Ġ= Ġvisit Element ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Expression ( expression : ĠIr Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Expression ( expression ) ĊĊĠĠĠ Ġfun Ġ< T > Ġvisit Const ( expression : ĠIr Const < T >) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġvisit Const ( expression : ĠIr Const < T >, Ġdata : ĠNothing ?) Ġ= Ġvisit Const ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Var arg ( expression : ĠIr Var arg ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Var arg ( expression : ĠIr Var arg , Ġdata : ĠNothing ?) Ġ= Ġvisit Var arg ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Spread Element ( spread : ĠIr Spread Element ) Ġ= Ġvisit Element ( spread ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Spread Element ( spread : ĠIr Spread Element , Ġdata : ĠNothing ?) Ġ= Ġvisit Spread Element ( spread ) ĊĊĠĠĠ Ġfun Ġvisit Container Expression ( expression : ĠIr Container Expression ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Container Expression ( expression : ĠIr Container Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Container Expression ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Composite ( expression : ĠIr Composite ) Ġ= Ġvisit Container Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Composite ( expression : ĠIr Composite , Ġdata : ĠNothing ?) Ġ= Ġvisit Composite ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Block ( expression : ĠIr Block ) Ġ= Ġvisit Container Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Block ( expression : ĠIr Block , Ġdata : ĠNothing ?) Ġ= Ġvisit Block ( expression ) ĊĊĠĠĠ Ġfun Ġvisit String Concatenation ( expression : ĠIr String Concatenation ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit String Concatenation ( expression : ĠIr String Concatenation , Ġdata : ĠNothing ?) Ġ= Ġvisit String Concatenation ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Declaration Reference ( expression : ĠIr Declaration Reference ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Declaration Reference ( expression : ĠIr Declaration Reference , Ġdata : ĠNothing ?) Ġ= Ġvisit Declaration Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Singleton Reference ( expression : ĠIr Get Singleton Value ) Ġ= Ġvisit Declaration Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Singleton Reference ( expression : ĠIr Get Singleton Value , Ġdata : ĠNothing ?) Ġ= Ġvisit Singleton Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit GetObject Value ( expression : ĠIr GetObject Value ) Ġ= Ġvisit Singleton Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit GetObject Value ( expression : ĠIr GetObject Value , Ġdata : ĠNothing ?) Ġ= Ġvisit GetObject Value ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Get EnumValue ( expression : ĠIr Get EnumValue ) Ġ= Ġvisit Singleton Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Get EnumValue ( expression : ĠIr Get EnumValue , Ġdata : ĠNothing ?) Ġ= Ġvisit Get EnumValue ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Variable Access ( expression : ĠIr Value Access Expression ) Ġ= Ġvisit Declaration Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Value Access ( expression : ĠIr Value Access Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Variable Access ( expression ) ĊĊĠĠĠ Ġfun Ġvisit GetValue ( expression : ĠIr GetValue ) Ġ= Ġvisit Variable Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit GetValue ( expression : ĠIr GetValue , Ġdata : ĠNothing ?) Ġ= Ġvisit GetValue ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Set Variable ( expression : ĠIr Set Variable ) Ġ= Ġvisit Variable Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Set Variable ( expression : ĠIr Set Variable , Ġdata : ĠNothing ?) Ġ= Ġvisit Set Variable ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Field Access ( expression : ĠIr Field Access Expression ) Ġ= Ġvisit Declaration Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Field Access ( expression : ĠIr Field Access Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Field Access ( expression ) ĊĊĠĠĠ Ġfun Ġvisit GetField ( expression : ĠIr GetField ) Ġ= Ġvisit Field Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit GetField ( expression : ĠIr GetField , Ġdata : ĠNothing ?) Ġ= Ġvisit GetField ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Set Field ( expression : ĠIr Set Field ) Ġ= Ġvisit Field Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Set Field ( expression : ĠIr Set Field , Ġdata : ĠNothing ?) Ġ= Ġvisit Set Field ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Member Access ( expression : ĠIr Member Access Expression ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Member Access ( expression : ĠIr Member Access Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Member Access ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Function Access ( expression : ĠIr Function Access Expression ) Ġ= Ġvisit Member Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Function Access ( expression : ĠIr Function Access Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Function Access ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Call ( expression : ĠIr Call ) Ġ= Ġvisit Function Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Call ( expression : ĠIr Call , Ġdata : ĠNothing ?) Ġ= Ġvisit Call ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Delegating Constructor Call ( expression : ĠIr Delegating Constructor Call ) Ġ= Ġvisit Function Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Delegating Constructor Call ( expression : ĠIr Delegating Constructor Call , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit Delegating Constructor Call ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Enum Constructor Call ( expression : ĠIr Enum Constructor Call ) Ġ= Ġvisit Function Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Enum Constructor Call ( expression : ĠIr Enum Constructor Call , Ġdata : ĠNothing ?) Ġ= Ġvisit Enum Constructor Call ( expression ) ĊĊĠĠĠ Ġfun Ġvisit GetClass ( expression : ĠIr GetClass ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit GetClass ( expression : ĠIr GetClass , Ġdata : ĠNothing ?) Ġ= Ġvisit GetClass ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Callable Reference ( expression : ĠIr Callable Reference ) Ġ= Ġvisit Member Access ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Callable Reference ( expression : ĠIr Callable Reference , Ġdata : ĠNothing ?) Ġ= Ġvisit Callable Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Function Reference ( expression : ĠIr Function Reference ) Ġ= Ġvisit Callable Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Function Reference ( expression : ĠIr Function Reference , Ġdata : ĠNothing ?) Ġ= Ġvisit Function Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Property Reference ( expression : ĠIr Property Reference ) Ġ= Ġvisit Callable Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Property Reference ( expression : ĠIr Property Reference , Ġdata : ĠNothing ?) Ġ= Ġvisit Property Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Local Deleg ated Property Reference ( expression : ĠIr Local Deleg ated Property Reference ) Ġ= Ġvisit Callable Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Local Deleg ated Property Reference ( expression : ĠIr Local Deleg ated Property Reference , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit Local Deleg ated Property Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Class Reference ( expression : ĠIr Class Reference ) Ġ= Ġvisit Declaration Reference ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Class Reference ( expression : ĠIr Class Reference , Ġdata : ĠNothing ?) Ġ= Ġvisit Class Reference ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Instance Initializer Call ( expression : ĠIr Instance Initializer Call ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Instance Initializer Call ( expression : ĠIr Instance Initializer Call , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit Instance Initializer Call ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Type Operator ( expression : ĠIr Type Operator Call ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Type Operator ( expression : ĠIr Type Operator Call , Ġdata : ĠNothing ?) Ġ= Ġvisit Type Operator ( expression ) ĊĊĠĠĠ Ġfun Ġvisit When ( expression : ĠIr When ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit When ( expression : ĠIr When , Ġdata : ĠNothing ?) Ġ= Ġvisit When ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Branch ( branch : ĠIr Branch ) Ġ= Ġvisit Element ( branch ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Branch ( branch : ĠIr Branch , Ġdata : ĠNothing ?) Ġ= Ġvisit Branch ( branch ) ĊĊĠĠĠ Ġfun Ġvisit Else Branch ( branch : ĠIr Else Branch ) Ġ= Ġvisit Branch ( branch ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Else Branch ( branch : ĠIr Else Branch , Ġdata : ĠNothing ?) Ġ= Ġvisit Else Branch ( branch ) ĊĊĠĠĠ Ġfun Ġvisit Loop ( loop : ĠIr Loop ) Ġ= Ġvisit Expression ( loop ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Loop ( loop : ĠIr Loop , Ġdata : ĠNothing ?) Ġ= Ġvisit Loop ( loop ) ĊĊĠĠĠ Ġfun Ġvisit While Loop ( loop : ĠIr While Loop ) Ġ= Ġvisit Loop ( loop ) ĊĠĠĠ Ġoverride Ġfun Ġvisit While Loop ( loop : ĠIr While Loop , Ġdata : ĠNothing ?) Ġ= Ġvisit While Loop ( loop ) ĊĊĠĠĠ Ġfun Ġvisit Do While Loop ( loop : ĠIr Do While Loop ) Ġ= Ġvisit Loop ( loop ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Do While Loop ( loop : ĠIr Do While Loop , Ġdata : ĠNothing ?) Ġ= Ġvisit Do While Loop ( loop ) ĊĊĠĠĠ Ġfun Ġvisit Try ( a Try : ĠIr Try ) Ġ= Ġvisit Expression ( a Try ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Try ( a Try : ĠIr Try , Ġdata : ĠNothing ?) Ġ= Ġvisit Try ( a Try ) ĊĊĠĠĠ Ġfun Ġvisit Catch ( aC atch : ĠIr Catch ) Ġ= Ġvisit Element ( aC atch ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Catch ( aC atch : ĠIr Catch , Ġdata : ĠNothing ?) Ġ= Ġvisit Catch ( aC atch ) ĊĊĠĠĠ Ġfun Ġvisit Break Continue ( jump : ĠIr Break Continue ) Ġ= Ġvisit Expression ( jump ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Break Continue ( jump : ĠIr Break Continue , Ġdata : ĠNothing ?) Ġ= Ġvisit Break Continue ( jump ) ĊĊĠĠĠ Ġfun Ġvisit Break ( jump : ĠIr Break ) Ġ= Ġvisit Break Continue ( jump ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Break ( jump : ĠIr Break , Ġdata : ĠNothing ?) Ġ= Ġvisit Break ( jump ) ĊĊĠĠĠ Ġfun Ġvisit Continue ( jump : ĠIr Continue ) Ġ= Ġvisit Break Continue ( jump ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Continue ( jump : ĠIr Continue , Ġdata : ĠNothing ?) Ġ= Ġvisit Continue ( jump ) ĊĊĠĠĠ Ġfun Ġvisit Return ( expression : ĠIr Return ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Return ( expression : ĠIr Return , Ġdata : ĠNothing ?) Ġ= Ġvisit Return ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Throw ( expression : ĠIr Throw ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Throw ( expression : ĠIr Throw , Ġdata : ĠNothing ?) Ġ= Ġvisit Throw ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Dynamic Expression ( expression : ĠIr Dynamic Expression ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Dynamic Expression ( expression : ĠIr Dynamic Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Dynamic Expression ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Dynamic Operator Expression ( expression : ĠIr Dynamic Operator Expression ) Ġ= Ġvisit Dynamic Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Dynamic Operator Expression ( expression : ĠIr Dynamic Operator Expression , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit Dynamic Operator Expression ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Dynamic Member Expression ( expression : ĠIr Dynamic Member Expression ) Ġ= Ġvisit Dynamic Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Dynamic Member Expression ( expression : ĠIr Dynamic Member Expression , Ġdata : ĠNothing ?) Ġ= ĊĠĠĠĠĠĠĠ Ġvisit Dynamic Member Expression ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Error Declaration ( declaration : ĠIr Error Declaration ) Ġ= Ġvisit Declaration ( declaration ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Error Declaration ( declaration : ĠIr Error Declaration , Ġdata : ĠNothing ?) Ġ= Ġvisit Error Declaration ( declaration ) ĊĊĠĠĠ Ġfun Ġvisit Error Expression ( expression : ĠIr Error Expression ) Ġ= Ġvisit Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Error Expression ( expression : ĠIr Error Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Error Expression ( expression ) ĊĊĠĠĠ Ġfun Ġvisit Error Call Expression ( expression : ĠIr Error Call Expression ) Ġ= Ġvisit Error Expression ( expression ) ĊĠĠĠ Ġoverride Ġfun Ġvisit Error Call Expression ( expression : ĠIr Error Call Expression , Ġdata : ĠNothing ?) Ġ= Ġvisit Error Call Expression ( expression ) Ċ } Ċ Ċ fun ĠIr Element . accept Void ( visitor : ĠIr Element Visitor Void ) Ġ{ ĊĠĠĠ Ġaccept ( visitor , Ġnull ) Ċ } Ċ Ċ fun ĠIr Element . accept Children Void ( visitor : ĠIr Element Visitor Void ) Ġ{ ĊĠĠĠ Ġaccept Children ( visitor , Ġnull ) Ċ }