package Ġme . mat tst ud ios . msg . extensions Ċ Ċ import Ġme . mat tst ud ios . msg . base . internal . nodes . Text Node Ċ import Ġme . mat tst ud ios . msg . base . internal . renderer . Node Renderer Ċ import Ġme . mat tst ud ios . msg . common mark . internal . inline . Parsed Inline Ċ import Ġme . mat tst ud ios . msg . common mark . internal . inline . Scanner Ċ import Ġme . mat tst ud ios . msg . common mark . internal . inline . tri ump h . Trigger Processor Ċ import Ġme . mat tst ud ios . msg . common mark . node . Custom Node Ċ import Ġme . mat tst ud ios . msg . common mark . parser . Parser Ċ import Ġme . mat tst ud ios . msg . common mark . parser . Parser Extension ĊĊ Ċ class ĠBr acket Extension Ġ: ĠParser Extension , ĠNode Renderer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġextend ( builder : ĠParser . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . custom Trigger Processor ( Processor Test ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( node : ĠCustom Node ): ĠText Node Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( node ) ĊĠĠĠĠĠĠĠ Ġreturn ĠText Node (" ping ed ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Parser Node (): ĠClass < out ĠCustom Node > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPing Node :: class . java ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠProcessor Test Ġ: ĠTrigger Processor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Trigger Character () Ġ= Ġ'@ ' ĊĊĠĠĠ Ġoverride Ġfun Ġparse ( scanner : ĠScanner ): ĠParsed Inline ? Ġ{ ĊĠĠĠĠĠĠĠ Ġscanner . next () ĊĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġscanner . position () ĊĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( scanner . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscanner . next () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scanner . peek () Ġ== Ġ' Ġ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġliteral Ġ= Ġscanner . text Between ( start , Ġscanner . position ()). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠParsed Inline . of ( Ping Node ( literal ), Ġscanner . position ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ> Ġ 1 0 ) Ġbreak ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠParsed Inline . none () ĊĠĠĠ Ġ} Ċ Ċ }