package Ġcom . had ih ari ri . mark code Ċ Ċ import Ġjava . io . File Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġif Ġ( args . size Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Usage : Ġ< doc _ directory > Ġ< examples Ġoutput Ġdirectory > Ġ[- o ]") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġwrite Expected Output Ġ= Ġargs . size Ġ> Ġ 2 Ġ&& Ġargs [ 2 ] Ġ== Ġ"- o " ĊĠĠĠ Ġval Ġchapter s Ġ= Ġmutable ListOf < Chapter >() ĊĠĠĠ ĠFile ( args [ 0 ]). list Files Ġ{ Ġ_, Ġname Ġ-> Ġname . endsWith (". adoc ") Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchapter Code Dir Ġ= ĠFile ( args [ 1 ], Ġit . name Without Extension Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġchapter Ġ= ĠChapter ( it , Ġchapter Code Dir ) ĊĠĠĠĠĠĠĠ Ġchapter s . add ( chapter ) ĊĠĠĠĠĠĠĠ Ġchapter . process ( write Expected Output ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( write Expected Output ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Verify All Samples ( chapter s , ĠFile ( args [ 1 ])) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( chapter s . any Ġ{ Ġit . has Errors Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . exit ( 1 ) ĊĠĠĠ Ġ} Ċ } ĊĊĊ