- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1
How to add a rule
        Stan B edited this page Apr 28, 2014 
        ·
        4 revisions
      
    Create a new visitor-derived class
For example
public class TopRowFilterVisitor : Visitor
{
  private int _leftParethesisCount;
  private int _rightParethesisCount;      
  public bool HasParenthesis { get { return _leftParethesisCount == 1 && _rightParethesisCount == 1; }
  public override void ExplicitVisit(TopRowFilter node)
  {
    WasVisited = true;
    SqlFragment = node;
    for (int i = node.FirstTokenIndex; i <= node.LastTokenIndex; i++)
    {
      TSqlParserToken token = node.ScriptTokenStream[i];
      if (token.TokenType == TSqlTokenType.LeftParenthesis) _leftParethesisCount++;
      if (token.TokenType == TSqlTokenType.RightParenthesis) _rightParethesisCount++;
    }        
  }
}
Create a rule class that uses this or any other visitors