structs State and OutputFile forward declared as class. classes Range, RegExp and RuleOp forward declared as struct. These cause warnings in MS C++