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.
next prev parent 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).