import Ġjava . nio . file . Files Ċ import Ġjava . util . Properties Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" org . jetbrains . kotlin . jvm "). version (" 1 . 3 . 5 0 ") ĊĊĠĠĠ Ġapplication ĊĊĠĠĠ Ġdistribution ĊĊĠĠĠ Ġantlr Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġj center () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation (" ch . qos . log back : log back - classic : 1 . 2 . 3 ") ĊĊĠĠĠ Ġimplementation (" org . jetbrains . kotlin : kotlin - stdlib - jdk 8 ") ĊĊĠĠĠ Ġimplementation (" org . apache . commons : commons - csv : 1 . 6 ") ĊĊĠĠĠ Ġimplementation (" commons - codec : commons - codec : 1 . 1 2 ") ĊĊĠĠĠ Ġimplementation (" org . l mdb java : l mdb java : 0 . 7 . 0 ") ĊĊĠĠĠ Ġimplementation (" com . jak ew h art on . f li pt ables : f li pt ables : 1 . 0 . 2 ") ĊĊĠĠĠ Ġimplementation (" org . slf 4 j : slf 4 j - api : 1 . 7 . 2 6 ") ĊĊĠĠĠ Ġimplementation (" org . j line : j line : 3 . 1 1 . 0 ") ĊĊĠĠĠ Ġimplementation (" org . fuse source . j ansi : j ansi : 1 . 1 8 ") ĊĊĠĠĠ Ġimplementation (" com . github . aj alt : cli kt : 2 . 0 . 0 ") ĊĊĠĠĠ Ġimplementation (" org . antlr : antlr 4 - runtime : 4 . 7 . 2 ") ĊĊĠĠĠ Ġtest Implementation (" org . jetbrains . kotlin : kotlin - test ") ĊĊĠĠĠ Ġtest Implementation (" org . jetbrains . kotlin : kotlin - test - junit ") ĊĊĠĠĠ Ġtest Implementation (" io . mock k : mock k : 1 . 9 . 3 ") ĊĊĠĠĠ Ġantlr (" org . antlr : antlr 4 : 4 . 7 . 2 ") Ċ } Ċ Ċ configurations Ġ{ ĊĠĠĠ Ġcompile Ġ{ ĊĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" org . antlr ", Ġmodule Ġ= Ġ" antlr 4 ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . compile Kotlin Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} Ċ } Ċ Ċ application Ġ{ ĊĠĠĠ Ġmain ClassName Ġ= Ġ" com . github . ray m ank 2 6 . csv sh . App Kt " ĊĠĠĠ Ġapplication Default Jvm Args Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX :+ Ignore Unrecognized VM Options ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- add - opens = java . base / java . nio = ALL - UN NAMED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- add - opens = java . base / sun . nio . ch = ALL - UN NAMED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- D log back . configuration File = MY _ APP _ HOME / config / log back . xml ") Ċ } Ċ Ċ tasks . start Scripts Ġ{ ĊĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠ Ġunix Script . write Text ( unix Script . read Text (). replace (" MY _ APP _ HOME ", Ġ"\ $ APP _ HOME ")) ĊĠĠĠĠĠĠĠ Ġwindows Script . write Text ( windows Script . read Text (). replace (" MY _ APP _ HOME ", Ġ"% ~ dp 0 .. ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . generate Grammar Source Ġ{ ĊĠĠĠ Ġarguments Ġ= Ġarguments Ġ+ ĠlistOf ("- visitor ", Ġ"- long - messages ", Ġ"- package ", Ġ" com . github . ray m ank 2 6 . csv sh . sql ") Ċ } Ċ Ċ version Ġ= Ġ" 0 . 0 . 2 " Ċ Ċ val Ġcopy Version To Resources Ġ= Ġtasks . create (" copy Version To Resources ") Ġ{ ĊĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġres Dir Ġ= Ġproject Dir . to Path (). resolve (" src "). resolve (" main "). resolve (" resources ") ĊĠĠĠĠĠĠĠ ĠFiles . create Directories ( res Dir ) ĊĊĠĠĠĠĠĠĠ Ġres Dir . resolve (" build . properties "). to File () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Stream (). use Ġ{ Ġos Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperties (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setProperty (" version ", Ġversion . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. store ( os , Ġ" Aut ogenerated ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . compile Kotlin . get (). depends On ( project . tasks . generate Grammar Source , Ġcopy Version To Resources ) Ċ