anchor.diff:      | pattern_source within_time?
       ;
   
  +absent_pattern_source_chain
  +    : EVERY? '('absent_pattern_source_chain')' within_time?
  +    | every_absent_pattern_source
  +    | left_absent_pattern_source
  +    | right_absent_pattern_source
  +    ;
  +
  +left_absent_pattern_source
  +    : EVERY? '('left_absent_pattern_source')' within_time?
  +    | every_absent_pattern_source '->' every_pattern_source_chain
  +    | left_absent_pattern_source '->' left_absent_pattern_source
  +    | left_absent_pattern_source '->' every_absent_pattern_source
  +    | every_pattern_source_chain '->' left_absent_pattern_source
  +    ;
  +
  +right_absent_pattern_source
  +    : EVERY? '('right_absent_pattern_source')' within_time?
  +    | every_pattern_source_chain '->' every_absent_pattern_source
  +    | right_absent_pattern_source '->' right_absent_pattern_source
  +    | every_absent_pattern_source '->' right_absent_pattern_source
  +    | right_absent_pattern_source '->' every_pattern_source_chain
  +    ;
  +
   pattern_source
  -    :logical_stateful_source|pattern_collection_stateful_source|standard_stateful_source
  +    :logical_stateful_source|pattern_collection_stateful_source|standard_stateful_source|logical_absent_stateful_source
       ;
   
   logical_stateful_source
  -    :NOT standard_stateful_source (AND standard_stateful_source) ?
  -    |standard_stateful_source AND standard_stateful_source
  +    :standard_stateful_source AND standard_stateful_source
       |standard_stateful_source OR standard_stateful_source
  +    ;
  +
  +logical_absent_stateful_source
  +    : '(' logical_absent_stateful_source ')'
  +    | standard_stateful_source AND NOT basic_source
  +    | NOT basic_source AND standard_stateful_source
  +    | standard_stateful_source AND basic_absent_pattern_source
  +    | basic_absent_pattern_source AND standard_stateful_source
  +    | basic_absent_pattern_source AND basic_absent_pattern_source
  +    | standard_stateful_source OR basic_absent_pattern_source
  +    | basic_absent_pattern_source OR standard_stateful_source
  +    | basic_absent_pattern_source OR basic_absent_pattern_source
  +    ;
  +
  +every_absent_pattern_source
  +    : EVERY? basic_absent_pattern_source
  +    ;
  +
  +basic_absent_pattern_source
  +    : NOT basic_source for_time
       ;
   
   pattern_collection_stateful_source
  
positive.code: OPEN_PAR : '(';
  CLOSE_PAR : ')';
  OPEN_SQUARE_BRACKETS : '[';
  CLOSE_SQUARE_BRACKETS : ']'; //TODO: update the original file
  COMMA : ',';
  ASSIGN : '=';
  STAR : '*';
  
negative.code:     ;
  
  sequence_source
      :logical_stateful_source|sequence_collection_stateful_source|standard_stateful_source|logical_absent_stateful_source
      ;
  
  sequence_collection_stateful_source
  