package Ġorg . de ce mb rist . parsers Ċ Ċ import Ġorg . de ce mb rist . parser . Kotlin Lexer Ċ import Ġorg . de ce mb rist . parser . Kotlin Parser Ċ import Ġorg . antlr . v 4 . runtime . Char Streams Ċ import Ġorg . antlr . v 4 . runtime . Common Token Stream Ċ import Ġorg . antlr . v 4 . runtime . tree . ParseTree Walker Ċ import Ġorg . de ce mb rist . domain . content . Kt FileContent Ċ import Ġjava . io . File Ċ Ċ open Ġclass ĠK t File Parser Ġprivate Ġconstructor ( private Ġval Ġkt File : ĠFile ) Ġ: ĠI Parser < Kt FileContent > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġparse (): ĠK t FileContent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Listener Ġ= ĠK t File Listener ( kt File . name ) ĊĠĠĠĠĠĠĠ Ġval Ġtree Ġ= Ġkt File . inputStream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠChar Streams . from Stream ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠKotlin Lexer ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠCommon Token Stream ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠKotlin Parser ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. kotlin File () ĊĠĠĠĠĠĠĠ ĠParse Tree Walker (). walk ( file Listener , Ġtree ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfile Listener . file Content ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġof ( kt File : ĠFile ) Ġ= ĠK t File Parser ( kt File ) ĊĊĠĠĠ Ġ} Ċ Ċ }