package Ġcom . github . ad ri ant od t . lin . ast . node Ċ Ċ import Ġcom . github . ad ri ant od t . lin . ast . visitor . Node Map Visitor Ċ import Ġcom . github . ad ri ant od t . lin . ast . visitor . Node Visitor Ċ import Ġcom . github . ad ri ant od t . lin . ast . visitor . Node Visitor 1 Ċ import Ġcom . github . ad ri ant od t . lin . ast . visitor . Node Visitor R Ċ import Ġcom . github . ad ri ant od t . t art ar . api . lexer . Section Ċ Ċ public Ġdata Ġclass ĠInvalid Node ( override Ġval Ġsection : ĠSection ?, Ġval Ġchildren : ĠList < Node >, Ġval Ġerrors : ĠList < Exception >) Ġ: ĊĠĠĠ ĠExpr Ġ{ ĊĊĠĠĠ Ġpublic Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġvar Ġsection : ĠSection ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġpublic Ġval Ġchildren : ĠMutable List < Node > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġpublic Ġval Ġerrors : ĠMutable List < Exception > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġsection ( value : ĠSection ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġchild ( var arg Ġvalues : ĠNode ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġvalues . filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchildren Ġ+= Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Ġ== Ġnull Ġ&& Ġlist . isNotEmpty ()) Ġsection Ġ= Ġlist . first (). section ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġerror ( var arg Ġvalues : ĠException ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerrors Ġ+= Ġvalues ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ@ automation ( ast . impl ĠInvalid Node , Expr )- start Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠNode Visitor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvisitor . visit Invalid Node ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠNode Map Visitor ): ĠExpr Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvisitor . visit Invalid Node ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< R > Ġaccept ( visitor : ĠNode Visitor R < R >): ĠR Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvisitor . visit Invalid Node ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġaccept ( visitor : ĠNode Visitor 1 < T >, Ġparam 0 : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvisitor . visit Invalid Node ( this , Ġparam 0 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/* Ġ@ automation - end Ġ*/ ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġoperator Ġfun Ġinvoke ( block : ĠBuilder . () Ġ-> ĠUnit ): ĠInvalid Node Ġ= ĠBuilder (). apply ( block ). build () ĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠBuilder . build () Ġ= ĠInvalid Node ( section , Ġchildren , Ġerrors ) ĊĠĠĠ Ġ} Ċ } Ċ