RuleNode is a struct, declare it accordingly
!= operator has no side effects, replace it with |=
VS: disable warning 4355
VS: disable warning 4200
VS: enable Level 2 warnings