anchor.diff:     )
   ;
   
  -null_po_stanza
  -:
  -   removed_stanza
  -;
  -
  -anon_term_ps_po_stanza
  -:
  -   subterm_ps_po_stanza
  -;
  -
  -inactive_term_ps_po_stanza
  -:
  -   INACTIVE COLON term_ps_po_stanza
  +protocol_from_t_ps_stanza
  +:
  +   PROTOCOL
  +   (
  +      (
  +      )
  +      |
  +      (
  +         l = protocol_list
  +      )
  +   ) SEMICOLON
  +;
  +
  +reject_then_t_ps_stanza
  +:
  +   REJECT SEMICOLON
  +;
  +
  +rib_from_t_ps_stanza
  +:
  +   rib_common_stanza
  +;
  +
  +rib_to_t_ps_stanza
  +:
  +   rib_common_stanza
  +;
  +
  +route_filter_from_t_ps_stanza
  +:
  +   ROUTE_FILTER
  +   (
  +      IP_ADDRESS_WITH_MASK
  +      | IPV6_ADDRESS_WITH_MASK
  +   ) match_type = match_type_filter_from_t_ps_stanza?
  +   (
  +      SEMICOLON
  +      | prefix_action += action_filter_from_t_ps_stanza
  +      |
  +      (
  +         OPEN_BRACE
  +         (
  +            prefix_action += action_filter_from_t_ps_stanza
  +         )* CLOSE_BRACE
  +      )
  +   )
  +;
  +
  +source_address_filter_from_t_ps_stanza
  +:
  +   SOURCE_ADDRESS_FILTER
  +   (
  +      IP_ADDRESS_WITH_MASK
  +      | IPV6_ADDRESS_WITH_MASK
  +   ) match_type = match_type_filter_from_t_ps_stanza?
  +   (
  +      SEMICOLON
  +      | prefix_action += action_filter_from_t_ps_stanza
  +      |
  +      (
  +         OPEN_BRACE
  +         (
  +            prefix_action += action_filter_from_t_ps_stanza
  +         )* CLOSE_BRACE
  +      )
  +   )
  +;
  +
  +subterm_ps_po_stanza
  +:
  +   (
  +      (
  +         FROM
  +         (
  +            from_t_ps_stanza
  +            | inactive_from_t_ps_stanza
  +            |
  +            (
  +               OPEN_BRACE from_t_ps_stanza_list CLOSE_BRACE
  +            )
  +         )
  +      )
  +      |
  +      (
  +         TO
  +         (
  +            inactive_to_t_ps_stanza
  +            |
  +            (
  +               OPEN_BRACE to_t_ps_stanza_list CLOSE_BRACE
  +            )
  +            | to_t_ps_stanza
  +         )
  +      )
  +      |
  +      (
  +         THEN
  +         (
  +            inactive_then_t_ps_stanza
  +            |
  +            (
  +               OPEN_BRACE then_t_ps_stanza_list CLOSE_BRACE
  +            )
  +            | then_t_ps_stanza
  +         )
  +      )
  +   )+
  +;
  +
  +tag_from_t_ps_stanza
  +:
  +   TAG DEC SEMICOLON
   ;
   
   term_ps_po_stanza
  
positive.code:    | null_then_t_ps_stanza
  ;
  
  to_t_ps_stanza_list
  :
     (
  
negative.code:          | term_ps_po_stanza
        )* anon_term_ps_po_stanza?
     ) CLOSE_BRACE
  ;
  
  prefix_list_filter_from_t_ps_stanza
  :
     (
        PREFIX_LIST_FILTER name = VARIABLE
     ) match_type = match_type_filter_from_t_ps_stanza?
     (
        SEMICOLON
        | prefix_action += action_filter_from_t_ps_stanza
        |
        (
           OPEN_BRACE
           (
              prefix_action += action_filter_from_t_ps_stanza
           )* CLOSE_BRACE
        )
     )
  ;
  
  prefix_list_from_t_ps_stanza
  :
     PREFIX_LIST name = VARIABLE SEMICOLON
  ;
  
  prefix_list_po_stanza
  