package Ġcom . github . ad ri ant od t . t art ar . api . lexer Ċ Ċ /** Ċ Ġ* ĠA Ġlex ing Ġcontext , Ġcreated Ġby Ġa Ġ[ Lexer . parse ] Ġcall , Ġwhich Ġexposes Ġan Ġinterface Ġfor Ġadvanced Ġlex ing . Ċ Ġ* Ċ Ġ* Ġ@ param ĠT ĠThe Ġtype Ġof Ġtokens Ġthe Ġlexer Ġgenerates . Ċ Ġ* Ġ@ author ĠAd rian Tod t Ċ Ġ*/ Ċ public Ġinterface ĠLex er Context < T > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġoriginal Ġsource Ġof Ġthis Ġcontext . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġsource : ĠSource ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġcontext ' Ġreader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġreader : ĠString Reader ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġcurrent Ġindex . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġindex : ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠP eek s Ġthe Ġnext Ġcharacter Ġof Ġthe Ġreader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġpeek (): ĠChar ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠP eek s Ġa Ġcharacter Ġa Ġdistance Ġfar Ġaway Ġof Ġthe Ġreader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġpeek ( distance : ĠInt ): ĠChar ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠP eek s Ġa Ġstring Ġwith Ġa Ġpredefined Ġlength Ġof Ġthe Ġreader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġpeek String ( length : ĠInt ): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠP eek s Ġthe Ġnext Ġcharacter Ġand , Ġif Ġequals Ġthe Ġexpected Ġcharacter , Ġconsume s Ġit . ĊĠĠĠĠ Ġ* ĠReturns Ġtrue Ġif Ġthe Ġpeek ed Ġcharacter Ġwere Ġequals Ġthe Ġexpected Ġconsumer Ġand Ġconsumed . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġmatch ( expect : ĠChar ): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġthere 's Ġmore Ġcharacters Ġahead . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġhas Next (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġnext Ġcharacter Ġof Ġthe Ġreader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġnext (): ĠChar ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġpredefined Ġlength Ġof Ġcharacters Ġof Ġthe Ġreader , Ġas Ġa ĠString . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġnext String ( length : ĠInt ): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalls Ġthe Ġ[ Lexer . parse ]' s Ġtoken Ġconsumer . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġprocess ( token : ĠT ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLex es Ġonce Ġand Ġreturn Ġthe Ġprocessed Ġtokens . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġparse Once (): ĠList < T > Ċ } Ċ