package Ġcom . pth ari ens fl ame . sy lv ia . ast . expressions Ċ Ċ import Ġcom . oracle . tr uffle . api . Compiler Assert s Ċ import Ġcom . oracle . tr uffle . api . Compiler Directives . LIKELY _ PROB ABILITY Ċ import Ġcom . oracle . tr uffle . api . Compiler Directives . Tr uffle Boundary Ċ import Ġcom . oracle . tr uffle . api . dsl . Generate Node Factory Ċ import Ġcom . oracle . tr uffle . api . dsl . Generate Un cached Ċ import Ġcom . oracle . tr uffle . api . dsl . Int rospect able Ċ import Ġcom . oracle . tr uffle . api . frame . Virtual Frame Ċ import Ġcom . oracle . tr uffle . api . nodes . Node Ċ import Ġcom . oracle . tr uffle . api . nodes . NodeInfo Ċ import Ġcom . oracle . tr uffle . api . source . Source Ċ import Ġcom . oracle . tr uffle . api . source . Source Section Ċ import Ġcom . pth ari ens fl ame . sy lv ia . parser . Source Span Ċ import Ġcom . pth ari ens fl ame . sy lv ia . util . Tr uffle Util Ċ import Ġcom . pth ari ens fl ame . sy lv ia . util . lock ing Ċ import Ġcom . pth ari ens fl ame . sy lv ia . util . run Atomic Ċ import Ġcom . pth ari ens fl ame . sy lv ia . values . Sy lv ia Val Ċ Ċ @ NodeInfo ( ĊĠĠĠ Ġshort Name Ġ= Ġ" cm nt - expr ", ĊĠĠĠ Ġdescription Ġ= Ġ" A Ġsemantic Ġcomment Ġin Ġexpression Ġposition " Ċ ) Ċ @ Generate Node Factory Ċ @ Generate Un cached ( inherit Ġ= Ġtrue ) Ċ @ Int rospect able Ċ open Ġclass ĠSemantic Comment Expression Node Ċ @ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġsrc Span : ĠSource Span ? Ġ= Ġnull , Ċ ) Ġ: ĠExpression Node ( src Span ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMSG : ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Semantic Ġcomment Ġexpression ; Ġshould Ġnever Ġbe Ġevaluated " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ field : Node . Child ĊĠĠĠ Ġprivate Ġvar Ġ_ inner : ĠExpression Node ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġinner : ĠExpression Node ĊĠĠĠ Ġget () Ġ= Ġ_ inner !! ĊĠĠĠ Ġset ( new Inner ) Ġ= Ġrun Atomic Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Tr uffle Util . inject Branch Probability ( LIKELY _ PROB ABILITY , Ġ_ inner Ġ== Ġnull )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ inner Ġ= Ġinsert ( new Inner ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Inserted ( new Inner ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ inner !!. replace ( new Inner ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Instrument able (): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġexecute Val ( frame : ĠVirtual Frame ): ĠSy lv ia Val Ġ{ ĊĠĠĠĠĠĠĠ ĠCompiler Assert s . never Part Of Compilation ( MSG ) ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException ( MSG ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Tr uffle Boundary ĊĠĠĠ Ġoverride Ġfun Ġget Source Section (): ĠSource Section ? Ġ= ĊĠĠĠĠĠĠĠ Ġencaps ulating Source Section ?. source ?. let Ġ{ Ġsrc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Span ?. as Section Of ( src ) Ġ?: Ġsrc . create Unavailable Section () ĊĠĠĠĠĠĠĠ Ġ} Ċ }