package Ġcad enza . syntax Ċ Ċ import Ġcom . oracle . tr uffle . api . source . Source Ċ import Ġorg . int elligence . parser . Parse Ċ Ċ class ĠSource Parse ( val Ġsource : ĠSource ) Ġ: ĠParse ( source . characters ) Ċ Ċ type alias ĠSource Parser < T > Ġ= ĠSource Parse . () Ġ-> ĠT Ċ Ċ fun Ġ< T > ĠSource . parse ( parser : ĠSource Parser < T >) Ġ: ĠResult < T > Ġ= ĊĠ ĠSource Parse ( this ). let Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ ĠSuccess ( parser ( it )) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠParse . Error ) Ġ{ ĊĠĠĠĠĠ ĠFailure ( this , Ġit . pos , Ġe . message , Ġit . expected ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ val ĠSource Parse . name : ĠString Ġget () Ġ= Ġsource . name Ċ val ĠSource Parse . path : ĠString Ġget () Ġ= Ġsource . path Ċ val ĠSource Parse . line : ĠInt Ġget () Ġ= Ġsource . get LineNumber ( pos ) Ċ val ĠSource Parse . col : ĠInt Ġget () Ġ= Ġsource . getColumn Number ( pos )