Add "Preceding rule" and "Following rule" validation.

For a directive: "abc [def ghi] jkl", we will validate the following three parts according to the directive name "def":
* Preceding: "abc " should match with the defined syntax.
* Content: " ghi" should match with the defined syntax.
* Following: " jkl" should match with the defined syntax.

With the extension, we are able to validate the '>' character in the directive "> [WACOM.INCLUDE \[azure\](azure.html)]". And will prompt the error message when not matched.