<commit_before>parser grammar FlatJuniper_bgp;

import FlatJuniper_common;

options {
   tokenVocab = FlatJuniperLexer;
}

apsendt_path_count
:
   PATH_COUNT count = DEC
;

apsendt_prefix_policy
:
   PREFIX_POLICY policy = variable
;

bfi6t_null
:
   LABELED_UNICAST s_null_filler
;

bfi6t_unicast
:
   UNICAST bfi6t_unicast_tail
;

bfi6t_unicast_tail
:
//intentional blank

   | bfi6ut_prefix_limit
;

bfi6ut_prefix_limit
:
   PREFIX_LIMIT s_null_filler
;

bfit_flow
:
   FLOW s_null_filler
;

bfit_labeled_unicast
:
   LABELED_UNICAST s_null_filler
;

bfit_multicast
:
   MULTICAST s_null_filler
;

bfit_unicast
:
   UNICAST bfit_unicast_tail
;

bfit_unicast_tail
:
//intentional blank

   | bfiut_add_path
   | bfiut_prefix_limit
   | bfiut_rib_group
;

bfiuapt_receive
:
   RECEIVE
;

bfiuapt_send
:
   SEND bfiuapt_send_tail
;

bfiuapt_send_tail
:
   apsendt_path_count
   | apsendt_prefix_policy
;

bfiut_add_path
:
   ADD_PATH bfiut_add_path_tail
;

bfiut_add_path_tail
:
   bfiuapt_receive
   | bfiuapt_send
;

bfiut_prefix_limit
:
   PREFIX_LIMIT s_null_filler
;

bfiut_rib_group
:
   RIB_GROUP name = variable
;

bft_inet
:
   INET bft_inet_tail
;

bft_inet_tail
:
   bfit_flow
   | bfit_labeled_unicast
   | bfit_multicast
   | bfit_unicast
;

bft_inet6
:
   INET6 bft_inet6_tail
;

bft_inet6_tail
:
   bfi6t_null
   | bfi6t_unicast
;

bft_null
:
   (
      INET_VPN
      | INET6_VPN
   ) s_null_filler
;

bmt_no_nexthop_change
:
   NO_NEXTHOP_CHANGE
;

bmt_ttl
:
   TTL DEC
;

bpast_as
:
   as = DEC
;

bt_advertise_inactive
:
   ADVERTISE_INACTIVE
;

bt_advertise_peer_as
:
   ADVERTISE_PEER_AS
;

bt_apply_groups
:
   s_apply_groups
;

bt_as_override
:
   AS_OVERRIDE
;

bt_cluster
:
   CLUSTER IP_ADDRESS
;

bt_common
:
   bt_advertise_inactive
   | bt_advertise_peer_as
   | bt_apply_groups
   | bt_as_override
   | bt_cluster
   | bt_damping
   | bt_description
   | bt_disable_4byte_as
   | bt_export
   | bt_family
   | bt_import
   | bt_local_address
   | bt_local_as
   | bt_multihop
   | bt_multipath
   | bt_no_client_reflect
   | bt_null
   | bt_path_selection
   | bt_peer_as
   | bt_remove_private
   | bt_tcp_mss
   | bt_type
;

bt_damping
:
   DAMPING
;

bt_description
:
   s_description
;

bt_disable_4byte_as
:
   DISABLE_4BYTE_AS
;

bt_enable
:
   ENABLE
;

bt_export
:
   EXPORT expr = policy_expression
;

bt_family
:
   FAMILY bt_family_tail
;

bt_family_tail
:
   bft_inet
   | bft_inet6
   | bft_null
;

bt_group
:
   GROUP
   (
      name = variable
      | WILDCARD
   ) bt_group_tail
;

bt_group_tail
:
// intentional blank

   | bt_common
   | bt_neighbor
;

bt_import
:
   IMPORT expr = policy_expression
;

bt_local_address
:
   LOCAL_ADDRESS
   (
      IP_ADDRESS
      | IPV6_ADDRESS
   )
;

bt_local_as
:
   LOCAL_AS bt_local_as_tail
;

bt_local_as_tail
:
   last_number? last_common*
;

bt_multihop
:
   MULTIHOP bt_multihop_tail
;

bt_multihop_tail
:
// intentional blank

   | bmt_no_nexthop_change
   | bmt_ttl
;

bt_multipath
:
   MULTIPATH MULTIPLE_AS?
;

bt_neighbor
:
   NEIGHBOR
   (
      IP_ADDRESS
      | IPV6_ADDRESS
   ) bt_neighbor_tail
;

bt_neighbor_tail
:
// intentional blank

   | bt_common
;

bt_no_client_reflect
:
   NO_CLIENT_REFLECT
;

bt_null
:
   (
      AUTHENTICATION_KEY
      | BFD_LIVENESS_DETECTION
      | HOLD_TIME
      | LOG_UPDOWN
      | OUT_DELAY
      | TRACEOPTIONS
   ) s_null_filler
;<commit_msg>juniper allow bgp neighbor WILDCARD<commit_after>parser grammar FlatJuniper_bgp;

import FlatJuniper_common;

options {
   tokenVocab = FlatJuniperLexer;
}

apsendt_path_count
:
   PATH_COUNT count = DEC
;

apsendt_prefix_policy
:
   PREFIX_POLICY policy = variable
;

bfi6t_null
:
   LABELED_UNICAST s_null_filler
;

bfi6t_unicast
:
   UNICAST bfi6t_unicast_tail
;

bfi6t_unicast_tail
:
//intentional blank

   | bfi6ut_prefix_limit
;

bfi6ut_prefix_limit
:
   PREFIX_LIMIT s_null_filler
;

bfit_flow
:
   FLOW s_null_filler
;

bfit_labeled_unicast
:
   LABELED_UNICAST s_null_filler
;

bfit_multicast
:
   MULTICAST s_null_filler
;

bfit_unicast
:
   UNICAST bfit_unicast_tail
;

bfit_unicast_tail
:
//intentional blank

   | bfiut_add_path
   | bfiut_prefix_limit
   | bfiut_rib_group
;

bfiuapt_receive
:
   RECEIVE
;

bfiuapt_send
:
   SEND bfiuapt_send_tail
;

bfiuapt_send_tail
:
   apsendt_path_count
   | apsendt_prefix_policy
;

bfiut_add_path
:
   ADD_PATH bfiut_add_path_tail
;

bfiut_add_path_tail
:
   bfiuapt_receive
   | bfiuapt_send
;

bfiut_prefix_limit
:
   PREFIX_LIMIT s_null_filler
;

bfiut_rib_group
:
   RIB_GROUP name = variable
;

bft_inet
:
   INET bft_inet_tail
;

bft_inet_tail
:
   bfit_flow
   | bfit_labeled_unicast
   | bfit_multicast
   | bfit_unicast
;

bft_inet6
:
   INET6 bft_inet6_tail
;

bft_inet6_tail
:
   bfi6t_null
   | bfi6t_unicast
;

bft_null
:
   (
      INET_VPN
      | INET6_VPN
   ) s_null_filler
;

bmt_no_nexthop_change
:
   NO_NEXTHOP_CHANGE
;

bmt_ttl
:
   TTL DEC
;

bpast_as
:
   as = DEC
;

bt_advertise_inactive
:
   ADVERTISE_INACTIVE
;

bt_advertise_peer_as
:
   ADVERTISE_PEER_AS
;

bt_apply_groups
:
   s_apply_groups
;

bt_as_override
:
   AS_OVERRIDE
;

bt_cluster
:
   CLUSTER IP_ADDRESS
;

bt_common
:
   bt_advertise_inactive
   | bt_advertise_peer_as
   | bt_apply_groups
   | bt_as_override
   | bt_cluster
   | bt_damping
   | bt_description
   | bt_disable_4byte_as
   | bt_export
   | bt_family
   | bt_import
   | bt_local_address
   | bt_local_as
   | bt_multihop
   | bt_multipath
   | bt_no_client_reflect
   | bt_null
   | bt_path_selection
   | bt_peer_as
   | bt_remove_private
   | bt_tcp_mss
   | bt_type
;

bt_damping
:
   DAMPING
;

bt_description
:
   s_description
;

bt_disable_4byte_as
:
   DISABLE_4BYTE_AS
;

bt_enable
:
   ENABLE
;

bt_export
:
   EXPORT expr = policy_expression
;

bt_family
:
   FAMILY bt_family_tail
;

bt_family_tail
:
   bft_inet
   | bft_inet6
   | bft_null
;

bt_group
:
   GROUP
   (
      name = variable
      | WILDCARD
   ) bt_group_tail
;

bt_group_tail
:
// intentional blank

   | bt_common
   | bt_neighbor
;

bt_import
:
   IMPORT expr = policy_expression
;

bt_local_address
:
   LOCAL_ADDRESS
   (
      IP_ADDRESS
      | IPV6_ADDRESS
   )
;

bt_local_as
:
   LOCAL_AS bt_local_as_tail
;

bt_local_as_tail
:
   last_number? last_common*
;

bt_multihop
:
   MULTIHOP bt_multihop_tail
;

bt_multihop_tail
:
// intentional blank

   | bmt_no_nexthop_change
   | bmt_ttl
;

bt_multipath
:
   MULTIPATH MULTIPLE_AS?
;

bt_neighbor
:
   NEIGHBOR
   (
      IP_ADDRESS
      | IPV6_ADDRESS
      | WILDCARD
   ) bt_neighbor_tail
;

bt_neighbor_tail
:
// intentional blank

   | bt_common
;

bt_no_client_reflect
:
   NO_CLIENT_REFLECT
;

bt_null
:
   (
      AUTHENTICATION_KEY
      | BFD_LIVENESS_DETECTION
      | HOLD_TIME
      | LOG_UPDOWN
      | OUT_DELAY
      | TRACEOPTIONS
   ) s_null_filler
;
{'fraction_non_alphanumeric': 0.05590608950843727, 'fraction_numerical': 0.005575935436537051, 'mean_word_length': 3.1739130434782608, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4265609', 'n_tokens_mistral': 3204, 'n_tokens_neox': 3142, 'n_words': 409}