这次rule改的有点多，把每一个特殊规则都列了出来，原来CPP文件中的大部分函数都没用了，先传个头文件，方便大家调用，CPP改好之后再传。