make abstract class from astnode containing default accept() and toString()