package Ġorg . jetbrains . research . k fg . ir . value . instruction Ċ Ċ import Ġorg . jetbrains . research . k fg . ir . value . Name Ċ import Ġorg . jetbrains . research . k fg . ir . value . Usage Context Ċ import Ġorg . jetbrains . research . k fg . ir . value . Value Ċ import Ġorg . jetbrains . research . k fg . type . Type Ċ Ċ enum Ġclass ĠUnary Opcode Ġ{ ĊĠĠĠ ĠNE G , ĊĠĠĠ ĠLEN GTH Ċ } Ċ Ċ class ĠUnary Inst Ġinternal Ġconstructor ( name : ĠName , Ġtype : ĠType , Ġval Ġopcode : ĠUnary Opcode , Ġobj : ĠValue , Ġctx : ĠUsage Context ) Ġ: ĊĠĠĠ ĠInstruction ( name , Ġtype , ĠarrayOf ( obj ), Ġctx ) Ġ{ ĊĊĠĠĠ Ġval Ġoperand : ĠValue ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġops [ 0 ] ĊĊĠĠĠ Ġoverride Ġfun Ġprint () Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġappend ("$ name Ġ= Ġ") ĊĠĠĠĠĠĠĠ Ġappend ( if Ġ( opcode Ġ== ĠUnary Opcode . LENGTH ) Ġ"$ operand . length " Ġelse Ġ"- $ operand ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclone ( ctx : ĠUsage Context ): ĠInstruction Ġ= ĠUnary Inst ( name . clone (), Ġtype , Ġopcode , Ġoperand , Ġctx ) Ċ }