logstash-core/lib/logstash/compiler/lscl/lscl_grammar.rb [2676:2703]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    else
      i9, s9 = index, []
      if (match_len = has_terminal?("!", false, index))
        r10 = true
        @index += match_len
      else
        terminal_parse_failure('"!"')
        r10 = nil
      end
      s9 << r10
      if r10
        r11 = _nt_cs
        s9 << r11
        if r11
          r12 = _nt_selector
          s9 << r12
        end
      end
      if s9.last
        r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
        r9.extend(NegativeExpression1)
      else
        @index = i9
        r9 = nil
      end
      if r9
        r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
        r0 = r9
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



logstash-core/lib/logstash/config/grammar.rb [2700:2727]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    else
      i9, s9 = index, []
      if (match_len = has_terminal?("!", false, index))
        r10 = true
        @index += match_len
      else
        terminal_parse_failure('"!"')
        r10 = nil
      end
      s9 << r10
      if r10
        r11 = _nt_cs
        s9 << r11
        if r11
          r12 = _nt_selector
          s9 << r12
        end
      end
      if s9.last
        r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
        r9.extend(NegativeExpression1)
      else
        @index = i9
        r9 = nil
      end
      if r9
        r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
        r0 = r9
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



