public abstract void GenerateProgram(ProgramNode program);
public override void GenerateProgram(ProgramNode program) { throw new NotImplementedException(); }