package Ġcom . an ata wa 1 2 . auto Visitor . compiler . common Ċ Ċ import Ġcom . an ata wa 1 2 . auto Visitor . compiler . common . Auto Visitor Annotation Errors .* Ċ import Ġorg . jetbrains . kotlin . diagnostics . rendering . Context Dependent Renderer Ċ import Ġorg . jetbrains . kotlin . diagnostics . rendering . Default Error Messages Ċ import Ġorg . jetbrains . kotlin . diagnostics . rendering . Diagnostic Factory To Renderer Map Ċ import Ġorg . jetbrains . kotlin . diagnostics . rendering . Render ers Ċ import Ġorg . jetbrains . kotlin . resolve . constants . K Class Value Ċ Ċ object ĠAuto Visitor Annotation Errors Rendering Ġ: ĠDefault Error Messages . Extension Ġ{ ĊĠĠĠ Ġprivate Ġval ĠMAP Ġ= ĠDiagnostic Factory To Renderer Map (" Auto Visitor ") ĊĠĠĠ Ġprivate Ġval ĠK Class Value Value Renderer Ġ= ĠContext Dependent Renderer < K Class Value . Value > Ġ{ Ġit , Ġctx Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠK Class Value . Value . Normal Class Ġ-> Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( it . array Dimensions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" Array < ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( it . class Id . relative ClassName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( it . array Dimensions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("> ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠK Class Value . Value . Local Class Ġ-> ĠRender ers . RENDER _ TYPE . render ( it . type , Ġctx ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ@ Generate Visitor ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGENER ATE _ VIS ITOR _ FOR _ NON _ AB STR ACT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ Generate Visitor Ġcan Ġonly Ġbe Ġapplied Ġfor Ġabstract Ġclass ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ MUST _ HAVE _ NO _ ARG _ CON STRUCTOR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Visitor Ġmust Ġhave Ġno - arg Ġconstructor ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ CAN NOT _ HAVE _ AB STR ACT S , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Visitor Ġclass Ġmust Ġnot Ġhave Ġabstract Ġmember ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMIS SING _ VISIT _ METHOD , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" missing Ġvisit Ġmethod Ġof Ġ{ 0 }", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRender ers . RENDER _ TYPE , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS IT _ MUST _ BE _ OPEN , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" visit Ġfunction Ġfor Ġchild Ġclasses Ġmust Ġbe Ġopen Ġ{ 0 }", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS IT _ MUST _ BE _ OPEN _ OR _ AB STR ACT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" visit Ġfunction Ġfor Ġroot Ġclass Ġmust Ġbe Ġopen Ġor Ġabstract Ġ{ 0 }", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ OF _ NON _ CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Visitor Ġclass Ġof Ġnon Ġclass Ġdeclaration Ġis Ġnot Ġsupported ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTARGET _ CLASS _ DO ES NT _ HAVE _ VIS ITOR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġtarget Ġtype Ġof Ġthe Ġvisitor Ġisn 't Ġannotated Ġwith Ġ@ Has Visitor ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ OF _ TARGET _ IS _ NOT _ THIS _ CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġvisitor Ġtype Ġof Ġ'' { 0 } '' Ġis Ġnot Ġ'' { 1 } '' ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRender ers . RENDER _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRender ers . RENDER _ TYPE , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġ@ Has Visitor ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ TYPE _ IS _ NOT _ AB STR ACT _ CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" This Ġvisitor Ġtype Ġis Ġnot Ġa Ġabstract Ġclass ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINVALID _ SUB CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" '' { 0 } '' Ġis Ġinvalid Ġfor Ġsubclass ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Class Value Value Renderer , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNO _ HAS _ ACCEPT _ AT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" '' { 1 } '' Ġdoes Ġnot Ġhave Ġ@ Has Accept Ġfor Ġ'' { 0 } '' ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRender ers . RENDER _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRender ers . RENDER _ TYPE , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC CEPT _ FUNCTION _ NOT _ FOUND , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" accept Ġfunction Ġis Ġnot Ġfound " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġ@ Generate Accept ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGENER ATE _ ACCEPT _ NEED S _ HAS _ VIS ITOR _ AN NOT ATION , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ Generate Accept Ġneeds Ġ@ Has Visitor ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġcommon : ĠVisitor Ġclass ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ HAS _ INVALID _ COUNT _ OF _ TYPE _ PARAM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġvisitor Ġtype Ġhas Ġinvalid Ġcount Ġof Ġtype Ġparameters , Ġexpected Ġ{ 0 }", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRender ers . TO _ STRING , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ RETURN _ TYPE _ IS _ IN _ TYPE _ VARIABLE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġtype Ġvariable Ġfor Ġreturn Ġtype Ġis Ġdeclared Ġas Ġ' in '", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ DATA _ PARAM _ IS _ OUT _ TYPE _ VARIABLE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġtype Ġvariable Ġfor Ġdata Ġparam Ġis Ġdeclared Ġas Ġ' out '", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVIS ITOR _ TYPE _ VARIABLE _ MUST _ NOT _ HAVE _ BOUN DS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġtype Ġvariable Ġof Ġvisitor Ġcannot Ġhave Ġbounds " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġ@ Has Annotation ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINVALID _ ROOT _ CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" invalid Ġroot Ġclass : Ġ'' { 0 } '' ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Class Value Value Renderer , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNO _ HAS _ VIS ITOR _ AT _ ROOT _ CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" NO Ġ@ Has Accept Ġat Ġroot Class : Ġ'' { 0 } '' ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Class Value Value Renderer , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMAP . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTHIS _ IS _ NOT _ SUB CLASS _ OF , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" This Ġclass Ġis Ġnot Ġsubclass Ġof Ġroot Class , Ġ'' { 0 } '' ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Class Value Value Renderer , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Map (): ĠDiagnostic Factory To Renderer Map Ġ= ĠMAP Ċ } Ċ