package Ġdev . ss ch . mini java . compiler . symbol table Ċ Ċ import Ġdev . ss ch . mini java . compiler . DataType Ċ Ċ class ĠInitial izer Symbol Table Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠInitial izer Signature ( ĊĠĠĠĠĠĠĠ Ġval Ġparameter Types : ĠList < DataType > ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġclass ĠInitial izer Information ( ĊĠĠĠĠĠĠĠ Ġvar Ġaddress : ĠInt ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġinitial izers Ġ= Ġmutable Map Of < Initializer Signature , ĠInitial izer Information >() ĊĊĠĠĠ Ġfun Ġdeclare Initializer ( address : ĠInt , Ġparameters : ĠList < DataType >): ĠInitial izer Information Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= ĠInitial izer Signature ( parameters ) ĊĠĠĠĠĠĠĠ Ġval Ġinitializer Information Ġ= ĠInitial izer Information ( address ) ĊĠĠĠĠĠĠĠ Ġinitial izers [ signature ] Ġ= Ġinitializer Information ĊĠĠĠĠĠĠĠ Ġreturn Ġinitializer Information ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Declared ( parameters : ĠList < DataType >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinitial izers . contains ( Initializer Signature ( parameters )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis NotEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinitial izers . isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Initializer Information ( parameters : ĠList < DataType >): ĠInitial izer Information ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinitial izers [ Initializer Signature ( parameters )] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġaddress Of ( parameters : ĠList < DataType >): ĠInt Ġ= Ġfind Initializer Information ( parameters ) !!. address Ċ }