package Ġedu . corn ell . cs . apl . vi ad uct . errors Ċ Ċ import Ġedu . corn ell . cs . apl . pretty printing . Document Ċ import Ġedu . corn ell . cs . apl . pretty printing . div Ċ import Ġedu . corn ell . cs . apl . pretty printing . joined Ċ import Ġedu . corn ell . cs . apl . vi ad uct . syntax . Source Location Ċ import Ġkotlinx . collections . immutable . ImmutableList Ċ import Ġkotlinx . collections . immutable . to Persistent List Ċ Ċ /** Ċ Ġ* ĠThrow n Ġwhen Ġthe Ġparser Ġruns Ġinto Ġan Ġunexpected Ġtoken . Ċ Ġ* Ċ Ġ* Ġ@ param Ġlocation ĠSource Ġlocation Ġof Ġthe Ġunexpected Ġtoken . Ċ Ġ* Ġ@ param Ġactual Token ĠToken Ġthat Ġwas Ġencountered . Ċ Ġ* Ġ@ param Ġexpected Tokens ĠTokens Ġthat Ġwould Ġhave Ġbeen Ġvalid . Ċ Ġ*/ Ċ class ĠParsing Error ( ĊĠĠĠ Ġprivate Ġval Ġlocation : ĠSource Location , ĊĠĠĠ Ġprivate Ġval Ġactual Token : ĠString , ĊĠĠĠ Ġexpected Tokens : ĠList < String > Ċ ) Ġ: ĠCompilation Error () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġexpected Tokens : ĠImmutableList < String > Ġ= Ġexpected Tokens . to Persistent List () ĊĊĠĠĠ Ġoverride Ġval Ġcategory : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Parse ĠError " ĊĊĠĠĠ Ġoverride Ġval Ġsource : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlocation . source Path ĊĊĠĠĠ Ġoverride Ġval Ġdescription : ĠDocument ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġexpected Tokens . map Ġ{ ĠDocument ( it ) Ġ}. joined () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDocument (" I Ġran Ġinto Ġan Ġissue Ġwhile Ġparsing Ġthis Ġfile .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Source ( location ) Ġ/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDocument (" I Ġwas Ġexpecting Ġone Ġof Ġthese :") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Data ( expected ) Ġ/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDocument (" Instead , ĠI Ġfound :") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Data ( Document ( actual Token )) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ