package Ġm ary k . yaml Ċ Ċ import Ġm ary k . json . Exception While Reading Json Ċ import Ġm ary k . json . Json Token Ċ import Ġm ary k . json . TokenType Ċ import Ġm ary k . lib . extensions . is Line Break Ċ import Ġm ary k . yaml . Plain Style Mode . FLOW _ MAP Ċ import Ġm ary k . yaml . Plain Style Mode . FLOW _ SEQUENCE Ċ Ċ internal Ġenum Ġclass ĠPlain Style Mode Ġ{ ĊĠĠĠ ĠNORMAL , ĠF LOW _ SEQUENCE , ĠF LOW _ MAP Ċ } Ċ Ċ /** Ċ Ġ* ĠReads Ġa Ġplain ĠString Ċ Ġ* ĠSet Ġ[ start With ] Ġto Ġset Ġfirst Ġcharacters Ċ Ġ* ĠPass Ġ[ tag ] Ġto Ġset Ġtype Ġon ĠValue . Ċ Ġ* ĠPass Ġ[ extra Indent ] Ġto Ġset Ġat Ġhow Ġmany Ġindent s Ġwhere Ġpresent Ġbefore Ġplain Ġstring Ġso Ġit Ġcan Ġbe Ġadded Ġas Ġmap Ġstart Ġvalues Ċ Ġ* Ġ[ flow Mode ] Ġdetermines Ġwhich Ġcharacters Ġcan Ġstop Ġthe Ġreader Ċ Ġ* Ġ[ json Token Creator ] Ġcreates Ġthe Ġright Ġjson Token . ĠCould Ġbe Ġfield Ġname Ġor Ġvalue . Ċ Ġ*/ Ċ internal Ġfun ĠIs Yaml Char With Ind ents Reader . plain String Reader ( ĊĠĠĠ Ġstart With : ĠString , ĊĠĠĠ Ġtag : ĠTokenType ?, ĊĠĠĠ Ġflow Mode : ĠPlain Style Mode , ĊĠĠĠ Ġextra Indent : ĠInt , ĊĠĠĠ Ġjson Token Creator : ĠJson Token Creator Ċ ): ĠJson Token Ġ{ ĊĠĠĠ Ġvar Ġstored Value : ĠString Ġ= Ġstart With ĊĊĠĠĠ Ġfun Ġstore Char And Pro ceed () Ġ{ ĊĠĠĠĠĠĠĠ Ġstored Value Ġ+= Ġlast Char ĊĠĠĠĠĠĠĠ Ġread () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Token (): ĠJson Token Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjson Token Creator ( stored Value . trim (), Ġtrue , Ġtag , Ġextra Indent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġloop @ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this . last Char ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\ n ', Ġ'\ r ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstored Value Ġ= Ġstored Value . trim End () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Indent Count Ġ= Ġthis . yaml Reader . skip Empty Lines And Comments And Count Ind ents () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Indent Count Ġ= Ġthis . indent Count () Ġ+ Ġextra Indent Ġ+ Ġif Ġ( this Ġis ĠMap Items Reader <* >) Ġ 1 Ġelse Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Indent Count Ġ< Ġreader Indent Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . end Indent Level ( current Indent Count , Ġtag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Token () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstored Value Ġ+= Ġ' Ġ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ':' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . last Char . is Whitespace ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOnly Ġoverride Ġtoken Ġcre ators Ġwith Ġnon Ġflow Ġmaps ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( flow Mode Ġ!= ĠF LOW _ MAP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . last Char . is Line Break ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġnew Ġmap Ġreturn ĠObject ĠStart Ġand Ġpush Ġnew Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . found Map ( tag , Ġextra Indent )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . yaml Reader . push Token ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( this . current Reader Ġas ĠIs Yaml Char With Ind ents Reader ). check And Create FieldName ( stored Value . trim (), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . check And Create FieldName ( stored Value . trim (), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠElse Ġreturn Ġspecific Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Token () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstored Value Ġ+= Ġ": $ last Char " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'#' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( stored Value . last () Ġ== Ġ' Ġ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . comment Reader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . read Until Token ( 0 , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Char And Pro ceed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( flow Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF LOW _ SEQUENCE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . last Char Ġ== Ġ',' Ġ|| Ġthis . last Char Ġ== Ġ' ]') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Token () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF LOW _ MAP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . last Char Ġ== Ġ',' Ġ|| Ġthis . last Char Ġ== Ġ' }') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Token () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Char And Pro ceed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException While Reading Json ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . yaml Reader . has Exception Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate Token () ĊĠĠĠ Ġ} Ċ } Ċ