anchor.diff:          ic.setVariable(v); }
         memberName
         { ic.getVariable().setIdentifier($memberName.identifier); }
  -      specifier
  -      { ic.getVariable().setSpecifierExpression($specifier.specifierExpression); }
  +      conditionSpecifier
  +      { ic.getVariable().setSpecifierExpression($conditionSpecifier.specifierExpression); }
       //-> ^(IS_CONDITION[$IS_OP] unionType ^(VARIABLE unionType memberName specifier))
  -    | booleanCondition
  -      { $condition=$booleanCondition.condition; }
  +    | //(NOT_OP? IS_OP type LIDENTIFIER (RPAREN|COMMA)) =>
  +      (n1=NOT_OP { not=true; })?
  +      i1=IS_OP
  +      { ic = new IsCondition($i1); 
  +        ic.setNot(not);
  +        $condition = ic; }
  +      t1=type
  +      { ic.setType($t1.type); }
  +      impliedVariable 
  +      { ic.setVariable($impliedVariable.variable); }
  +    //-> ^(IS_CONDITION[$IS_OP] unionType ^(VARIABLE SYNTHETIC_VARIABLE memberName ^(SPECIFIER_EXPRESSION ^(EXPRESSION ^(BASE_MEMBER_EXPRESSION memberName)))))
       ;
   
   satisfiesCondition returns [SatisfiesCondition condition]
  
positive.code:     : de1=disjunctionExpression
        { $term = $de1.term; }
        (
          thenElseOperator 
          { $thenElseOperator.operator.setLeftTerm($term);
            $term = $thenElseOperator.operator; }
          de2=disjunctionExpression
          { $thenElseOperator.operator.setRightTerm($de2.term); }
        )*
      ;
  
  thenElseOperator returns [BinaryOperatorExpression operator]
  
negative.code:       { $specifierExpression.setExpression($functionOrExpression.expression); }
      ;
  
  conditionSpecifier returns [SpecifierExpression specifierExpression]
      : SPECIFY
        { $specifierExpression = new SpecifierExpression($SPECIFY); }
        //disjunctionExpression
        entryRangeExpression
        { Expression e = new Expression(null);
          e.setTerm($entryRangeExpression.term);
          $specifierExpression.setExpression(e); }
      ;
  
  lazySpecifier returns [SpecifierExpression specifierExpression]
      : COMPUTE
        { $specifierExpression = new LazySpecifierExpression($COMPUTE); }
  