git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthias Lederhofer <matled@gmx.net>
To: Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-grep: --and to combine patterns with and instead of or
Date: Fri, 30 Jun 2006 09:46:53 +0200	[thread overview]
Message-ID: <E1FwDiI-0007Xp-2s@moooo.ath.cx> (raw)
In-Reply-To: <7v7j2zmgbu.fsf@assigned-by-dhcp.cox.net>

(Junio: please reply to this one, forgot the Cc in the first one :/)

Junio C Hamano wrote:
> Matthias Lederhofer <matled@gmx.net> writes:
> 
> > OR and AND have precedence, so there are two possibilities, I'd take
> > the first one.
> > 1. OR, AND:
> >     This will make it easier to read because OR can be skipped:
> >       pat1 pat2 AND pat3 pat4
> >     = pat1 OR pat2 AND pat3 OR pat4
> >     = (pat1 OR pat2) AND (pat3 OR pat4)
> > 2. AND, OR:
> >     This is a bit more logic if you think of AND as * and OR as +.
> 
> > ... FOO should not be named --and imo but I don't have any idea
> > for a good name atm.
> 
> I personally feel FOO should not even exist.  An option that
> covers the entire expression to make operator precedence in it
> sounds quite evil.  
> 
> I would say make --and bind tighter than --or and use parentheses as
> needed.
Ok, perhaps changing operator precedence is a bit much. What do you
think of that then:
Operator precedence AND, OR. The FOO options changes the default
operator to AND. This also seems quite natural if you think of
AND as * and OR as +:
A B + C D = A * B + C * D = (A * B) + (C * D)

A few examples to get an impression how the command line could look
like:
A OR B OR (C AND D)    => A B C AND D
(A OR B OR C) AND D    => (A B C) AND D
A AND B AND (C OR D)   => -FOO A B (C OR D)
(A AND B AND C) OR D   => -FOO A B C OR D

Perhaps we even could use options which are similar to * and +, for
example:
 - -* and -+ (-* should not be expanded often but is annoying anyway)
 - -. and -+
 - -t and -p (A -t B is A times B, A -p B is A plus B)

> Making --or optional sounds fine as that
> would make the default "multiple -e" case similar to what GNU
> grep does without any --and nor --or.
That's exactly what I was thinking about: make extended expressions
compatible to current grep options. This will confuse less people and
there is no need for an extra option to activate this.

  reply	other threads:[~2006-06-30  7:47 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-25 15:38 [PATCH] git-grep: allow patterns starting with - Matthias Lederhofer
2006-06-25 15:47 ` Timo Hirvonen
2006-06-25 16:07   ` [PATCH] correct documentation for git grep Matthias Lederhofer
2006-06-25 23:10     ` Johannes Schindelin
2006-06-25 23:39       ` Matthias Lederhofer
2006-06-26  0:06         ` Matthias Lederhofer
2006-06-26  6:59           ` Johannes Schindelin
2006-06-26  0:02       ` [PATCH] git-grep: --and to combine patterns with and instead of or Matthias Lederhofer
2006-06-29 22:20         ` Thomas Glanzmann
2006-06-29 22:44           ` Junio C Hamano
2006-06-30  2:25             ` Matthias Lederhofer
2006-06-30  4:13               ` Junio C Hamano
2006-06-30  7:46                 ` Matthias Lederhofer [this message]
2006-06-30  7:56                   ` Junio C Hamano
2006-06-30 10:08                     ` [PATCH] git-grep: boolean expression on pattern matching Junio C Hamano
2006-06-30 10:24                       ` Jakub Narebski
2006-06-30 10:29                         ` Junio C Hamano
2006-06-30 15:11                       ` Matthias Lederhofer
2006-06-30 10:57                     ` [PATCH] git-grep: --and to combine patterns with and instead of or Matthias Lederhofer
2006-06-30 15:57                       ` Junio C Hamano
2006-06-30 17:04                         ` Matthias Lederhofer
2006-06-30 17:18                           ` Junio C Hamano
2006-06-30 17:33                             ` Jakub Narebski
2006-06-30 17:49                               ` Matthias Lederhofer
2006-06-30 17:58                                 ` Junio C Hamano
2006-06-30 18:20                                   ` Matthias Lederhofer
2006-06-30 18:03                                 ` Jakub Narebski
2006-06-30 18:16                                   ` Junio C Hamano
2006-06-30 19:11                                     ` Jakub Narebski
2006-06-30 20:26                                       ` Junio C Hamano
2006-07-03  7:54                         ` Andreas Ericsson
2006-06-25 16:18   ` [PATCH] git-grep: allow patterns starting with - Matthias Lederhofer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1FwDiI-0007Xp-2s@moooo.ath.cx \
    --to=matled@gmx.net \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).