code: public SelectorNode parse() throws InvalidSelectorException
      {
          if (isEndOfExpression())
              return null;
          SelectorNode expr = parseExpression();
          if (!isEndOfExpression())
              throw new InvalidSelectorException("Unexpected token : "+currentToken);
          if (!(expr instanceof ConditionalExpression))    
              throw new InvalidSelectorException("Selector expression is not a boolean expression");
          
          return expr;
      }
docs: Parse the given message selector expression into a selector node tree