Each shader seems really different from each other, I did some research about how shaders classes are implemented to support in a scalable and flexible way new shaders yet to come and old shaders for old cards.
Basically what I found is this topic: http://www.gamedev.net/community/forums/topic.asp?topic_id=169710, in which it is considered the best option to code each shader separately derived from a class and to implement some functions (probably virtual functions derived from a base class).
But since the post is kinda old, I am wondering myself if this will be enough with all those passes and other things used in shaders nowadays. And if this is a reasonable thing for the future.