package Ġcom . github . t 1 . yaml . parser Ċ Ċ import Ġcom . github . t 1 . yaml . model . Collection . Style . FLOW Ċ import Ġcom . github . t 1 . yaml . model . Mapping Ċ import Ġcom . github . t 1 . yaml . model . Mapping . Entry Ċ import Ġcom . github . t 1 . yaml . model . Node Ċ import Ġcom . github . t 1 . yaml . model . Scalar Ċ import Ġcom . github . t 1 . yaml . model . Sequence Ċ import Ġcom . github . t 1 . yaml . model . Sequence . Item Ċ import Ġcom . github . t 1 . yaml . parser . Scalar Parser . Mode . KEY Ċ import Ġcom . github . t 1 . yaml . parser . Scalar Parser . Mode . VALUE Ċ import Ġcom . github . t 1 . yaml . tools . symbol Ċ import Ġcom . github . t 1 . yaml . tools . whitespace Ċ Ċ internal Ġclass ĠNode Parser ( private Ġval Ġnext : ĠYaml Scanner ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnesting Ġ= ĠN esting ( this . next ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" Node Parser Ġ$ next Ġnesting : Ġ$ nest ing " ĊĊĠĠĠ Ġfun Ġnode (): ĠNode Ġ{ ĊĠĠĠĠĠĠĠ Ġnesting . expect () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . peek (` c - sequence - start `) Ġ-> Ġflow Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . peek ( BLOCK _ SEQUENCE _ START ) Ġ-> Ġblock Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . peek (` c - mapping - start `) Ġ-> Ġflow Mapping () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . peek ( BLOCK _ MAPPING _ START ) Ġ-> Ġblock Mapping () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġscalar () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflow Sequence (): ĠNode Ġ{ ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - sequence - start `) ĊĠĠĠĠĠĠĠ Ġval Ġsequence Ġ= ĠSequence ( style Ġ= ĠF LOW ) ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsequence . item ( flow Sequence Item ()) ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( next . more () Ġ&& Ġnext . accept (` c - collect - entry ` )) ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - sequence - end `) ĊĠĠĠĠĠĠĠ Ġnext . skip ( whitespace ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsequence ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflow Sequence Item (): ĠItem Ġ{ ĊĠĠĠĠĠĠĠ Ġnext . skip (` s - space `) ĊĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġnext . read Until ( symbol (',' ). or ( symbol (' ]' ))) Ġ// ĠTODO Ġthis Ġmust Ġbe Ġa Ġcall Ġto Ġnode () ! ĊĠĠĠĠĠĠĠ Ġnext . skip (` s - space `) ĊĠĠĠĠĠĠĠ Ġreturn ĠItem ( node Ġ= ĠScalar (). line ( line )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblock Sequence (): ĠSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsequence Ġ= ĠSequence () ĊĠĠĠĠĠĠĠ Ġdo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsequence . item ( block Sequence Item ()) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( next . more () Ġ&& Ġnesting . accept ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġsequence ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblock Sequence Item (): ĠItem Ġ{ ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - sequence - entry `) ĊĠĠĠĠĠĠĠ Ġval Ġnl Item Ġ= Ġnext . accept (` b - break `) ĊĠĠĠĠĠĠĠ Ġif Ġ(! nl Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . expect (` s - space `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnesting . skip Next ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnesting . up () ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem ( nl Ġ= Ġnl Item , Ġnode Ġ= Ġnode ()) ĊĠĠĠĠĠĠĠ Ġnesting . down () ĊĠĠĠĠĠĠĠ Ġreturn Ġitem ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblock Mapping (): ĠMapping Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmapping Ġ= ĠMapping () ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping . entry ( block Mapping Entry ()) ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( next . more () Ġ&& Ġnesting . accept ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġmapping ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblock Mapping Entry (): ĠEntry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= ĠEntry () ĊĠĠĠĠĠĠĠ Ġblock Mapping Key ( entry ) ĊĠĠĠĠĠĠĠ Ġblock Mapping Value ( entry ) ĊĠĠĠĠĠĠĠ Ġreturn Ġentry ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblock Mapping Key ( entry : ĠEntry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġentry . has Marked Key Ġ= Ġnext . accept (` c - mapping - key `) ĊĠĠĠĠĠĠĠ Ġif Ġ( entry . has Marked Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . expect (` s - space `) ĊĠĠĠĠĠĠĠ Ġentry . key Ġ= Ġscalar () Ġ// ĠTODO Ġkey Ġnode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblock Mapping Value ( entry : ĠEntry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - mapping - value `) ĊĠĠĠĠĠĠĠ Ġentry . has Nl After Key Ġ= Ġnext . accept (` b - break `) ĊĠĠĠĠĠĠĠ Ġif Ġ(! entry . has Nl After Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . expect (` s - space `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnesting . skip Next ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnesting . up () ĊĠĠĠĠĠĠĠ Ġentry . value Ġ= Ġnode () ĊĠĠĠĠĠĠĠ Ġnesting . down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflow Mapping (): ĠMapping Ġ{ ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - mapping - start `) ĊĠĠĠĠĠĠĠ Ġval Ġmapping Ġ= ĠMapping ( style Ġ= ĠF LOW ) ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping . entry ( flow Mapping Entry ()) ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( next . more () Ġ&& Ġnext . accept (` c - collect - entry ` )) ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - mapping - end `) ĊĠĠĠĠĠĠĠ Ġreturn Ġmapping ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflow Mapping Entry (): ĠEntry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= ĠEntry () ĊĠĠĠĠĠĠĠ Ġflow Mapping Key ( entry ) ĊĠĠĠĠĠĠĠ Ġflow Mapping Value ( entry ) ĊĠĠĠĠĠĠĠ Ġreturn Ġentry ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflow Mapping Key ( entry : ĠEntry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġentry . has Marked Key Ġ= Ġnext . accept (` c - mapping - key `) ĊĠĠĠĠĠĠĠ Ġif Ġ( entry . has Marked Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . expect (` s - space `) ĊĠĠĠĠĠĠĠ Ġentry . key Ġ= ĠScalar Parser . of ( next , Ġnesting , Ġmode Ġ= ĠKEY ). scalar () ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġkey Ġnode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġflow Mapping Value ( entry : ĠEntry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnext . expect (` c - mapping - value `) ĊĠĠĠĠĠĠĠ Ġentry . has Nl After Key Ġ= Ġnext . accept (` b - break `) ĊĠĠĠĠĠĠĠ Ġif Ġ(! entry . has Nl After Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext . expect (` s - space `) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnesting . skip Next ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnesting . up () ĊĠĠĠĠĠĠĠ Ġentry . value Ġ= ĠScalar Parser . of ( next , Ġnesting , Ġmode Ġ= ĠVALUE ). scalar () ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġvalue Ġnode () ĊĠĠĠĠĠĠĠ Ġnesting . down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġscalar (): ĠScalar Ġ= ĠScalar Parser . of ( next , Ġnesting ). scalar () Ċ } Ċ